首頁 >後端開發 >C++ >如何使用 iTextSharp 擷取文字格式資訊(字型、大小等)?

如何使用 iTextSharp 擷取文字格式資訊(字型、大小等)?

Barbara Streisand
Barbara Streisand原創
2025-01-11 09:42:46128瀏覽

How Can I Extract Text Formatting Information (Font, Size, etc.) Using iTextSharp?

利用iTextSharp擷取PDF文字格式資訊(字型、大小等)

iTextSharp函式庫能夠擷取PDF文字及其格式訊息,例如字型和字號。以下是如何使用TextWithFontExtractionStrategy實現此功能的範例:

<code class="language-csharp">PdfReader reader = new PdfReader(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Document.pdf"));
TextWithFontExtractionStrategy strategy = new TextWithFontExtractionStrategy();
string text = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader, 1, strategy);
Console.WriteLine(text);</code>

TextWithFontExtractionStrategy利用TextRenderInfo物件從PDF內容中擷取文字格式資訊。 TextRenderInfo物件包含諸如GetFontGetFontNameGetFontSizeGetBaselineGetAscentLine等屬性。

您可以使用這些屬性來取得文字的字型系列、字號和基線位置。以下是如何使用這些屬性來提取文字格式資訊的範例:

<code class="language-csharp">// 获取字体系列
string fontFamily = renderInfo.GetFont().PostscriptFontName;

// 获取字号
float fontSize = renderInfo.GetBaseline().GetEndPoint()[Vector.I2] - renderInfo.GetBaseline().GetStartPoint()[Vector.I2];

// 获取基线位置
Vector baseline = renderInfo.GetBaseline().GetStartPoint();</code>

請注意,renderInfo物件需要在處理TextWithFontExtractionStrategy傳回的文字過程中取得。 完整的程式碼需要包含處理TextRenderInfo物件的循環,以便從每一行或每一個文字片段中提取格式資訊。 上述範例僅展示如何存取TextRenderInfo物件的屬性。

以上是如何使用 iTextSharp 擷取文字格式資訊(字型、大小等)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn