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 中国語 Web サイトの他の関連記事を参照してください。