JAVA開発メモ
PDFBox のバックアップ(No.5)
 

[トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]


概要

PDFBoxはPDFファイルを操作するオープンソースのライブラリです。 主な機能は以下の通りです。

ライセンス:BSD license

NEWS

情報源

サンプル

PDFファイルの読み込み

 String readFile = "xxx.pdf";
 PDDocument pdf = null; // ドキュメントオブジェクト
 FileInputStream pdfStream = null;
 try {
     pdfStream = new FileInputStream(readFile);
     PDFParser pdfParser = new PDFParser(pdfStream);
     pdfParser.parse(); // 分析
     pdf = pdfParser.getPDDocument();
 } catch (Exception e) {
     e.printStackTrace();
 } finally {
     if (pdfStream != null) {
         pdfStream.close();
     }
 }

PDFファイルの書き込み

 String writeFile = "xxx.pdf";
 COSWriter writer = null;
 FileOutputStream stream = null;
 try {
     stream = new FileOutputStream(writeFile);
     writer = new COSWriter(stream);
     writer.write(pdf); // ドキュメントオブジェクトの出力
 } catch (Exception e) {
     e.printStackTrace();
 } finally {
     if (stream != null) {
         stream.close();
     }
     if (writer != null) {
         writer.close();
     }
 }

フィールドの埋め込み

 String name = "title"; フィールドの名前
 String value = "タイトルです"; // フィールドに埋め込む文字列
 PDDocumentCatalog docCatalog = pdf.getDocumentCatalog();
 PDAcroForm acroForm = docCatalog.getAcroForm();
 PDField field = acroForm.getField(name); // フィールド取得
 if (field != null) {
     field.setValue(value); // フィールドに埋め込み
 } else {
     System.err.println("フィールドが見つかりません。:" + name);
 }

PDFからイメージを抽出

 String readFile = "C:\\tmp\\Antenna_Data_Sheet.pdf";
 PDDocument pdf = null; // ドキュメントオブジェクト
 FileInputStream pdfStream = null;
 try {
     pdfStream = new FileInputStream(readFile);
     PDFParser pdfParser = new PDFParser(pdfStream);
     pdfParser.parse(); // 分析
     pdf = pdfParser.getPDDocument();
     int imageCounter = 1;
     List pages = pdf.getDocumentCatalog().getAllPages();
     Iterator iter = pages.iterator();
     while (iter.hasNext()) { // 全ページからイメージを抽出
         PDPage page = (PDPage) iter.next();
         PDResources resources = page.getResources();
         Map images = resources.getImages();
         if (images != null) {
             Iterator imageIter = images.keySet().iterator();
             while (imageIter.hasNext()) {
                 String key = (String) imageIter.next();
                 PDXObjectImage image = (PDXObjectImage) images.get(key);
                 String name = key + "-" + imageCounter;
                 imageCounter++;
                 System.out.println("Writing image:" + name);
                 image.write2file(name); // ファイル出力
             }
         }
     }
 } catch (Exception e) {
     e.printStackTrace();
 } finally {
     if (pdfStream != null) {
         pdfStream.close();
     }
 }

トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Modified by MT22(Moriwaki Takashi)

"PukiWiki" 1.3.7 Copyright © 2001,2002,2003 PukiWiki Developers Team. License is GNU/GPL.
Based on "PukiWiki" 1.3 by sng
Powered by PHP 5.3.29

HTML convert time to 0.011 sec.