C#提取PDF中指定文本與圖片坐標(biāo)的示例代碼
獲取PDF文件中文字或圖片的坐標(biāo)可以實(shí)現(xiàn)精確定位,這對(duì)于快速提取指定區(qū)域的元素,以及在PDF中添加注釋、標(biāo)記或自動(dòng)蓋章等操作非常有用。本文將詳解如何使用國(guó)產(chǎn)PDF庫(kù)通過C# 提取PDF中指定文本或圖片的坐標(biāo)位置(X, Y軸)。
用于操作PDF文件的第三方庫(kù)為Spire.PDF for .NET。可以下載產(chǎn)品包后手動(dòng)安裝或者直接通用Nuget安裝。
開始前我們首先了解該庫(kù)關(guān)于PDF中坐標(biāo)系的一些信息:
Spire.PDF for .NET使用 PdfPageBase 類表示PDF頁(yè)面,由內(nèi)容區(qū)域和四周的頁(yè)邊距組成。頁(yè)面上坐標(biāo)系的原點(diǎn)位于內(nèi)容區(qū)域的左上角,x 軸從原點(diǎn)開始水平向右延伸,y 軸從原點(diǎn)開始垂直向下延伸 (如下圖所示)。
通過指定坐標(biāo)XY軸,我們可以在PDF頁(yè)面指定位置處繪制文本、圖片、表格等元素。當(dāng)然Spire.PDF for .NET也提供了相應(yīng)的接口來(lái)幫助大家獲取已有PDF文件中指定文本或圖片的坐標(biāo)信息。具體操作如下。
C# 獲取 PDF 中指定文本的坐標(biāo)
要指定文本的坐標(biāo),主要分為兩步實(shí)現(xiàn):
- 首先需要使用 PdfTextFinder.Find() 方法查找PDF文件中所有指定文本;
- 查找到文本后,再通過 PdfTextFragment.Positions 屬性進(jìn)一步獲取其 (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對(duì)象 PdfDocument pdf = new PdfDocument(); //加載PDF文件 pdf.LoadFromFile("大數(shù)據(jù).pdf"); //遍歷所有頁(yè)面 foreach (PdfPageBase page in pdf.Pages) { //創(chuàng)建PdfTextFinder對(duì)象 PdfTextFinder finder = new PdfTextFinder(page); //設(shè)置查找選項(xiàng) PdfTextFindOptions options = new PdfTextFindOptions(); options.Parameter = TextFindParameter.IgnoreCase; finder.Options = options; //查找頁(yè)面中所有指定文本 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() 方法獲取某個(gè)PDF頁(yè)面中所有圖片信息;
- 獲取圖片后,再通過 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對(duì)象 PdfDocument pdf = new PdfDocument(); //加載PDF文件 pdf.LoadFromFile("大數(shù)據(jù).pdf"); //獲取指定頁(yè)面 PdfPageBase page = pdf.Pages[0]; //創(chuàng)建PdfImageHelper對(duì)象 PdfImageHelper helper = new PdfImageHelper(); //獲取頁(yè)面中的圖片信息 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章

C#實(shí)現(xiàn)壓縮圖片為可控制的JPEG格式

c#使用linq把多列的List轉(zhuǎn)化為只有指定列的List

C#實(shí)現(xiàn)TCP連接信息統(tǒng)計(jì)的方法

基于C#實(shí)現(xiàn)簡(jiǎn)單的二維碼和條形碼的生成工具

C#實(shí)現(xiàn)將程序運(yùn)行信息寫入日志的方法

C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫(kù)