Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

構造化コンテンツをXMLとして抽出する

JPedalは構造化されたPDFファイルからコンテンツをXMLとして抽出することをサポートしています。

構造化PDFファイルと非構造化PDFファイル

PDFファイルは、タグ付けされている場合、構造化テキストを含む場合、またはマークされたコンテンツを含む場合があります。これらの用語はしばしば同じ意味で使用されますが、実際にはページ構造とその要素に関する情報を含むPDFファイルを指します。この記事では、これらを「構造化」PDFファイルと呼びます。

構造化PDFファイルには、PDF内のテキストコンテンツの構造を保持するためのメタデータタグ(HTMLに類似)が含まれています。PDFは構造化または非構造化として作成されるため、通常、非構造化PDFファイルを構造化PDFファイルに変換することは現実的ではありません。

構造化PDFファイルの利点は、コンテンツを抽出して他の形式に変換できることです。JPedalは現在、このコンテンツをEPUBHTMLJSONMarkdownXML 、またはYAML として出力することをサポートしています。

JPedalはPDFファイル内に存在するすべての構造化テキストを抽出できます。構造化テキストが存在しない場合、出力ファイルにはコンテンツが利用できなかったことを説明する簡単なメッセージが含まれます。

PDFファイルには、構造化コンテンツに画像が含まれる場合もあり、これらは図と呼ばれます。図にalt textまたはactualtextがある場合、これらも出力に含まれます。Java APIメソッドを使用している場合は、画像のスケーリング値を指定できます。

JavaでPDFから構造化コンテンツをXMLとして抽出する

// オプション
ExtractStructuredTextProperties properties = new ExtractStructuredTextProperties();
properties.setFileOutputMode(OutputModes.XML); // 出力形式        

// 構造化テキストをXMLとして抽出
ExtractStructuredText.writeAllStructuredTextOutlinesToDir(
        "inputFileOrFolder", // 単一のPDFまたはPDFを含むフォルダ
        "password",          // パスワード、不要な場合はnull
        "outputFolder",      // XMLの出力フォルダ
        null,                // エラーコールバック
        properties           // 設定オブジェクト
);

// 構造化テキストと画像をXMLとして抽出
ExtractStructuredText.writeAllStructuredTextOutlinesAndFiguresToDir(
        "inputFileOrFolder", // 単一のPDFまたはPDFを含むフォルダ
        "password",          // パスワード、不要な場合はnull
        "outputFolder",      // XMLの出力フォルダ
        null,                // エラーコールバック
        properties           // 設定オブジェクト
        "figuresFolder",     // 画像の出力フォルダ
        "imageFormat",       // 画像の形式
        1.0f                 // 画像のスケーリング
);

コマンドラインまたは他の言語からPDFの構造化コンテンツをXMLとして抽出する

java --module-path . --add-modules com.idrsolutions.jpedal org/jpedal/examples/text/ExtractStructuredText 
"inputFileOrFolder" "outputFolder" "xml"

モジュールの使用を推奨しますが、必要に応じてクラスパスを使用する こともできます。

Javadoc

この例ではJPedalのExtractStructuredText クラスを使用しています。