C# 獲取PDF文件的字型資訊及指定文字的座標,寬度和高度
阿新 • • 發佈:2019-02-17
在本篇文章中我將分享如何使用C#程式設計的方法來獲取PDF文件中文字的字型資訊(字型名稱,大小,型別等)及指定文字的座標(X,Y),寬度和高度。這個方法使用了一個免費PDF元件Free Spire.PDF。
Free Spire.PDF簡單介紹
Free Spire.PDF是Spire.PDF的免費版本。Spire.PDF是一款獨立 的PDF 控制元件,用於在.NET 程式中建立、讀取、寫入、編輯和操作PDF 文件且無需系統安裝Adobe Acrobat。它支援的功能也很全面,例如文件安全性設定(電子簽名),提取文字、圖片,PDF文件合併和拆分及列印,插入圖片、建立表格和匯入資料等等。除此以外,還支援將TXT、圖片、HTML等格式轉換為PDF格式。
Free Spire.PDF元件下載和安裝
如下圖:
安裝完成後,接下來就使用它來獲取一個PDF文件的字型資訊及指定文字的座標,寬度和高度。
獲取字型資訊
步驟解析:
- 建立一個C#控制檯應用程式,新增Spire.Pdf.dll作為引用,然後新增名稱空間
- 載入PDF文件
- 獲取當前文件的所有字型並將其儲存到陣列
- 遍歷陣列,獲取每一個字型的資訊如字型名稱,字型大小,字型型別等
程式碼:
using System; using Spire.Pdf; using Spire.Pdf.Graphics.Fonts; namespace 獲取字型資訊 { class Program { static void Main(string[] args) { //載入文件 PdfDocument doc = new PdfDocument(); doc.LoadFromFile(@"E:\Program Files\示例.pdf"); //獲取當前文件的所有字型 PdfUsedFont[] usedfont = doc.UsedFonts; foreach (PdfUsedFont font in usedfont) { //列印每個字型的字型名稱、大小及型別 Console.WriteLine("{0}, {1}, {2}", font.Name, font.Size, font.Type); } } } }
執行結果:
獲取指定文字的座標,寬度及高度
步驟解析:
- 建立專案,新增對dll的引用及名稱空間
- 載入PDF文件
- 遍歷PDF文件的所有頁,查詢指定的文字,並將查詢結果儲存到陣列,之後遍歷該陣列來獲取每一個查詢結果的寬度、高度和座標資訊
程式碼:
using System; using System.Drawing; using Spire.Pdf; using Spire.Pdf.General.Find; namespace 獲取指定文字的座標 { class Program { static void Main(string[] args) { //載入文件 PdfDocument doc = new PdfDocument(); doc.LoadFromFile(@"E:\ProgramFiles\PDF.pdf"); PdfTextFind[] result = null; foreach (PdfPageBase page in doc.Pages) { result = page.FindText("PDF").Finds; foreach (PdfTextFind text in result) { //獲取文字的座標,寬度和高度 PointF pf = text.Position; SizeF size = text.Size; Console.WriteLine(pf); Console.WriteLine(size + "\n"); } } } } }
執行結果:
感謝閱讀,希望本文能給您帶來一定的幫助!