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

構造化コンテンツをYAMLとして抽出

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

構造化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から構造化コンテンツをYAMLとして抽出

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

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

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

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

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

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

Javadocs

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