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

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

v2025.04

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

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

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

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

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

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

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

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

// オプション
ExtractStructuredTextProperties properties = new ExtractStructuredTextProperties();
properties.setFileOutputMode(OutputModes.EPUB); // 出力形式
properties.setEpubTitle("My EPUB");  // ePUB文書のタイトル        

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

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

サポートされているのはePUB 3.0のみです

ePUBでサポートされている画像ファイル形式はJPEGとPNGのみです

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

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

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

Javadocs

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