1. 程式人生 > >C# 獲取PDF文件的字型資訊及指定文字的座標,寬度和高度

C# 獲取PDF文件的字型資訊及指定文字的座標,寬度和高度

在本篇文章中我將分享如何使用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元件下載和安裝

  1. 官網下載
  2. Nuget下載
  3. 在VS中直接使用NuGet Package Manager 搜尋FreeSpire.PDF

如下圖:


安裝完成後,接下來就使用它來獲取一個PDF文件的字型資訊及指定文字的座標,寬度和高度。

獲取字型資訊

步驟解析:

  1. 建立一個C#控制檯應用程式,新增Spire.Pdf.dll作為引用,然後新增名稱空間
  2. 載入PDF文件
  3. 獲取當前文件的所有字型並將其儲存到陣列
  4. 遍歷陣列,獲取每一個字型的資訊如字型名稱,字型大小,字型型別等

程式碼:

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);
            }
        }
    }
}

執行結果:


獲取指定文字的座標,寬度及高度

步驟解析:

  1. 建立專案,新增對dll的引用及名稱空間
  2. 載入PDF文件
  3. 遍歷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");
                }
            }
        }
    }
}

執行結果:


感謝閱讀,希望本文能給您帶來一定的幫助!