使用iTextSharp擷取帶格式文字
簡介:
iTextSharp是一個強大的函式庫,用於操作和產生PDF文檔,但有時難以提取具有所需格式的文字。本文提供了一種使用iTextSharp從PDF中提取文字和格式資訊的方法。
自訂擷取策略:
要提取帶格式的文本,您可以建立一個自訂的ITextExtractionStrategy實作。此策略定義如何處理文字渲染資訊。
程式碼片段:
以下程式碼定義了一個自訂策略,該策略追蹤基線、字體名稱和字體大小的變化,並產生具有適當樣式的HTML:
<code>public class TextWithFontExtractionStategy : iTextSharp.text.pdf.parser.ITextExtractionStrategy { // ... (此处省略) public void RenderText(iTextSharp.text.pdf.parser.TextRenderInfo renderInfo) { // 确定字体属性 string curFont = renderInfo.GetFont().PostscriptFontName; if (renderInfo.GetTextRenderMode() == (int)TextRenderMode.FillThenStrokeText) { curFont += "-Bold"; } // 检查基线、字体或字体大小的变化 Vector curBaseline = renderInfo.GetBaseline().GetStartPoint(); Single curFontSize = renderInfo.GetAscentLine().GetEndPoint()[Vector.I2] - curBaseline[Vector.I2]; if ((this.lastBaseLine == null) || (curBaseline[Vector.I2] != lastBaseLine[Vector.I2]) || (curFontSize != lastFontSize) || (curFont != lastFont)) { // 生成带有更新样式的HTML span result.AppendFormat("</code>
使用方法:
要使用自訂策略,您可以在擷取文字時指定它:
<code>PdfReader reader = new PdfReader("MyDocument.pdf"); TextWithFontExtractionStategy strategy = new TextWithFontExtractionStategy(); string textWithFormatting = PdfTextExtractor.GetTextFromPage(reader, 1, strategy);</code>
輸出:
textWithFormatting變數將包含提取的文本,其中包含反映格式資訊的HTML標籤,包括字體和字體大小。
結論:
此自訂擷取策略可讓您擷取具有所需格式的PDF文字。這是一個強大的工具,可用於準確地再現PDF文件中的文字和樣式。
以上是如何使用 iTextSharp 從 PDF 中提取帶格式的文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!