PDFBox サンプルプログラム
目次
- 空白ページが1ページあるだけのPDFを作成する
- 空白ページが2ページあるだけのPDFを作成する
- ページサイズを指定して空白1ページのPDFを作成する
- BleedBox(塗り足しを含むサイズ),TrimBox(仕上がりサイズ)を指定して1ページのPDFを作成する
- JPEGファイルをPDFに出力する
- JPEGファイルをPDFの複数ページに参照方式で出力する
- JPEGファイルをPDFの複数ページに物理方式に出力する
- PDFからJPEGファイルを抽出する
- PDFからJPEGデータをBufferedImageとして取得する
- PDFに文字列を一つ出力する
- PDFに文字列を二つ出力する
- PDFに日本語を含む文字列を一つ出力する
- PDFから文字列を抽出してテキストファイルへ出力する
- PDFから文字列を抽出して標準出力へ出力する
- PDFから画像の解像度を取得する
- PDFから1ページの画像を取得する
- PDFから全ページの画像を取得する
- PDFファイルを無圧縮で出力してPDFのファイル形式を確認する
PDFからページの画像を取得する
ソフトマスクのあるページで取得したJPEGがそのまま使えなかったので、こちらからページのイメージを取得する.
try {
//PDFドキュメントをロード
PDDocument document = PDDocument.load("hogehoge.pdf");
//ページのリストから最初の1ページを取得する
PDPage page = (PDPage) document.getDocumentCatalog().getAllPages().get(0);
//ページからリソースを取得し、全てのイメージを取得する。
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);
PDRectangle cropBox = page.findCropBox();
if (cropBox != null) {
//dpiの算出(pdfのデフォルトdpiは72)
int dpi = Math.round(image.getHeight() * 72 / cropBox.getHeight());
//dpiのサイズに変換しつつイメージ取得
BufferedImage bufferedImage = page.convertToImage(BufferedImage.TYPE_3BYTE_BGR, dpi);
File outputfile = new File(System.currentTimeMillis() + "_hoge.jpg");
ImageIO.write(bufferedImage, "jpg", outputfile);
}
}
}
document.close();
} catch (IOException e) {
e.printStackTrace();
}