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はPDFファイルを操作するオープンソースのライブラリです。 主な機能は以下の通りです。

  • PDFファイルからのテキストの抽出
  • PDFファイルの結合
  • PDFファイルの暗号・複合化
  • 検索エンジン Lucene の組み込み
  • FDFデータの埋め込み
  • イメージをPDFに変換・PDFからのイメージ取得

ライセンス:Apache License, Version 2.0

情報源

サンプル

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();
     }
 }

添付ファイル: fileCubeFX.exe 182件 [削除]   file110003224650.pdf 2310件 [削除]   fileクラスタリング参考.pdf 7837件 [削除]
リロード   新規 編集 差分   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: Wed, 01 Aug 2018 20:20:57 JST (412d)
Link: FrontPage(1545d)

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