JAVA開発メモ
PDFBox の変更点
 

[リロード]   [新規|編集|差分|添付]   [トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]

サイトメニュー
最新の20件
2018-08-012018-02-222016-12-222015-06-242013-07-032013-02-262011-01-122010-06-082010-03-092010-03-032009-12-302009-10-302009-02-252009-02-242009-02-112008-09-242008-09-232008-09-16


  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • PDFBox へ行く。

  *概要
  [[PDFBox:http://www.pdfbox.org/]]はPDFファイルを操作するオープンソースのライブラリです。
  主な機能は以下の通りです。
  -PDFファイルからのテキストの抽出
  -PDFファイルの結合
  -PDFファイルの暗号・複合化
  -検索エンジン Lucene の組み込み
  -FDFデータの埋め込み
  -イメージをPDFに変換・PDFからのイメージ取得
  ライセンス:BSD license
  ライセンス:Apache License, Version 2.0
  *NEWS
  -2006/10/12 - Version 0.7.3リリース
  
  *情報源
  -[[公式サイト:http://pdfbox.apache.org/]]
  
  *サンプル
  **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();
       }
   }

添付ファイル: filetest.png 96件 [削除]   fileCubeFX.exe 378件 [削除]   file110003224650.pdf 2532件 [削除]   fileクラスタリング参考.pdf 8907件 [削除]
リロード   新規 編集 差分   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: Thu, 26 Mar 2020 13:27:17 JST (142d)
Link: FrontPage(1878d)

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.012 sec.