C#提取PDF中指定文本與圖片坐標(biāo)的示例代碼
獲取PDF文件中文字或圖片的坐標(biāo)可以實現(xiàn)精確定位,這對于快速提取指定區(qū)域的元素,以及在PDF中添加注釋、標(biāo)記或自動蓋章等操作非常有用。本文將詳解如何使用國產(chǎn)PDF庫通過C# 提取PDF中指定文本或圖片的坐標(biāo)位置(X, Y軸)。
用于操作PDF文件的第三方庫為Spire.PDF for .NET??梢韵螺d產(chǎn)品包后手動安裝或者直接通用Nuget安裝。
開始前我們首先了解該庫關(guān)于PDF中坐標(biāo)系的一些信息:
Spire.PDF for .NET使用 PdfPageBase 類表示PDF頁面,由內(nèi)容區(qū)域和四周的頁邊距組成。頁面上坐標(biāo)系的原點位于內(nèi)容區(qū)域的左上角,x 軸從原點開始水平向右延伸,y 軸從原點開始垂直向下延伸 (如下圖所示)。

通過指定坐標(biāo)XY軸,我們可以在PDF頁面指定位置處繪制文本、圖片、表格等元素。當(dāng)然Spire.PDF for .NET也提供了相應(yīng)的接口來幫助大家獲取已有PDF文件中指定文本或圖片的坐標(biāo)信息。具體操作如下。
C# 獲取 PDF 中指定文本的坐標(biāo)
要指定文本的坐標(biāo),主要分為兩步實現(xiàn):
- 首先需要使用 PdfTextFinder.Find() 方法查找PDF文件中所有指定文本;
- 查找到文本后,再通過 PdfTextFragment.Positions 屬性進一步獲取其 (X, Y) 坐標(biāo)信息。
代碼:
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Drawing;
namespace GetCoordinatesOfText
{
class Program
{
static void Main(string[] args)
{
//創(chuàng)建PdfDocument對象
PdfDocument pdf = new PdfDocument();
//加載PDF文件
pdf.LoadFromFile("大數(shù)據(jù).pdf");
//遍歷所有頁面
foreach (PdfPageBase page in pdf.Pages)
{
//創(chuàng)建PdfTextFinder對象
PdfTextFinder finder = new PdfTextFinder(page);
//設(shè)置查找選項
PdfTextFindOptions options = new PdfTextFindOptions();
options.Parameter = TextFindParameter.IgnoreCase;
finder.Options = options;
//查找頁面中所有指定文本
List<PdfTextFragment> fragments = finder.Find("海量");
//遍歷所有查找的文本
foreach (PdfTextFragment fragment in fragments)
{
//獲取文本的坐標(biāo)信息
PointF found = fragment.Positions[0];
Console.WriteLine(found);
}
}
}
}
}C# 獲取 PDF 中指定圖片的坐標(biāo)
與獲取文字坐標(biāo)類似,獲取圖片坐標(biāo)主要也分為兩步:
- 首先使用 PdfImageHelper.GetImagesInfo() 方法獲取某個PDF頁面中所有圖片信息;
- 獲取圖片后,再通過 PdfImageInfo.Bounds 屬性獲取其 (X, Y) 坐標(biāo)信息。
代碼:
using Spire.Pdf;
using Spire.Pdf.Utilities;
using System;
namespace GetCoordinatesOfImage
{
class Program
{
static void Main(string[] args)
{
//創(chuàng)建PdfDocument對象
PdfDocument pdf = new PdfDocument();
//加載PDF文件
pdf.LoadFromFile("大數(shù)據(jù).pdf");
//獲取指定頁面
PdfPageBase page = pdf.Pages[0];
//創(chuàng)建PdfImageHelper對象
PdfImageHelper helper = new PdfImageHelper();
//獲取頁面中的圖片信息
PdfImageInfo[] images = helper.GetImagesInfo(page);
//獲取第一張圖片的 X、Y 坐標(biāo)
float xPos = images[0].Bounds.X;
float yPos = images[0].Bounds.Y;
Console.WriteLine("圖片坐標(biāo)為({0},{1})", xPos, yPos);
}
}
}加載的示例文檔:

獲取PDF中文字坐標(biāo)的返回結(jié)果:

獲取PDF中圖片坐標(biāo)的返回結(jié)果:

到此這篇關(guān)于C#提取PDF中指定文本與圖片坐標(biāo)的示例代碼的文章就介紹到這了,更多相關(guān)C#提取PDF文本與圖片坐標(biāo)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
c#使用linq把多列的List轉(zhuǎn)化為只有指定列的List
C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫

