画像の個数を取得PDFページ毎に画像エレメントの個数を取得して一覧にします。
指定したPDFを読み込み、各ページに含まれる画像エレメントの数を一覧にして表示します。
PtlPage.APIgetContent(): ページコンテントを取得
PtlContent.APIgetEditElements(int flag): flagで指定されたEditElementコンテナを取得
flagは次表のint型定数の論理和で指定します。
定数フィールド | 説明 |
---|---|
PtlContent.GET_ALL | 全てのエレメント |
PtlContent.GET_IMAGE | 画像 |
PtlContent.GET_PATH | パスデータ |
PtlContent.GET_SHADING | シェイディング |
PtlContent.GET_TEXT | テキスト |
PtlEditElements.APIgetCount():EditElement数を取得
package cookbook; import jp.co.antenna.ptl.*; public class CountImage { // そのクラスのusageを表示する関数 private static void printUsage() { System.out.println("usage: java CountImage in-pdf-file"); } /** * @param args the command line arguments */ public static void main(String[] args) { if (args.length < 1) { printUsage(); return; } try (PtlParamInput inputFile = new PtlParamInput(args[0]); PtlPDFDocument doc = new PtlPDFDocument()) { // PDFファイルをロードします。 doc.load(inputFile); try (PtlPages pages = doc.getPages()) { // ページコンテナの取得 // ページコンテナが空かどうか if (pages.isEmpty()) { System.out.println("ページコンテナが空"); return; } // ページ数を取得 int wholePageNum = doc.getPageCount(); System.out.println("このPDFに含まれる画像の数をページごとに表示します。"); // 各ページの取得(index番号は0が先頭のためi=0からスタートさせる) for(int i = 0; i < wholePageNum; i++){ try (PtlPage page = pages.get(i)) { // 画像抽出 countImage(page, i+1); } } } } ...【ExtractText.javaと同じ処理のため省略 ・エラーメッセージ処理と出力】... } public static void countImage(PtlPage page, int pageNum) throws PtlException, Exception, Error { // ページコンテント及びそのページコンテントの画像エレメントの取得 try (PtlContent content = page.getContent(); PtlEditElements elems = content.getEditElements(PtlContent.GET_IMAGE)) { System.out.printf("%4dページ目 … 画像の数:%3d個\n", pageNum, elems.getCount()); } } }
CountImage.java
C:\samples>java cookbook.CountImage usage: java CountImage in-pdf-file C:\samples>java cookbook.CountImage countImage.pdf このPDFに含まれる画像の数をページごとに表示します。 1ページ目 … 画像の数: 2個 2ページ目 … 画像の数: 2個 3ページ目 … 画像の数: 4個 -- 完了 --