ホームページ >バックエンド開発 >C++ >iTextSharp を使用して PDF から書式設定されたテキストを抽出する方法

iTextSharp を使用して PDF から書式設定されたテキストを抽出する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-11 10:46:41858ブラウズ

How to Extract Text with Formatting from PDFs Using iTextSharp?

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。