2017-08-08 15 views
1

友達、私はPDFBox 2.0.6を使用しています。私はpdfファイルから画像を抽出するのに成功していますが、今は1つのpdfページの画像を作成しています。しかし、問題は何もないことができるということです。 pdfページ内の画像のうち、それぞれの埋め込み画像を1つの画像として抽出する必要があります。ここでPDFBoxを使用して1つのPDFページから複数の埋め込み画像を抽出する

はコードで、

import java.awt.image.BufferedImage; 
import java.io.File; 
import javax.imageio.ImageIO; 
import org.apache.pdfbox.pdmodel.PDDocument; 
import org.apache.pdfbox.rendering.PDFRenderer; 

public class DemoPdf { 

    public static void main(String args[]) throws Exception { 
     //Loading an existing PDF document 
     File file = new File("C:/Users/ADMIN/Downloads/Vehicle_Photographs.pdf"); 
     PDDocument document = PDDocument.load(file); 
     //Instantiating the PDFRenderer class 
     PDFRenderer renderer = new PDFRenderer(document); 
     File imageFolder = new File("C:/Users/ADMIN/Desktop/image"); 

     for (int page = 0; page < document.getNumberOfPages(); ++page) { 
      //Rendering an image from the PDF document 
      BufferedImage image = renderer.renderImage(page); 
      //Writing the image to a file 
      ImageIO.write(image, "JPEG", new File(imageFolder+"/" + page +".jpg")); 
      System.out.println("Image created"+ page); 
     } 
     //Closing the document 
     document.close(); 
    } 

} 

は、それがはいおかげ

+1

https://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java?view=markup –

+0

2.0.7がリリースされました。 –

答えて

2

、私は別々の画像としてすべての埋め込み画像を抽出できることをPDFBoxで可能です。 pdfのすべてのページからすべてのイメージを抽出することが可能です。

このリンクはextract images from pdf using PDFBoxです。

ここでの基本的な考え方は、PDFStreamEngineでクラスを拡張し、processOperatorメソッドをオーバーライドすることです。すべてのページについて、PDFStreamEngine.processPageを呼び出します。また、processOperatorに渡されたオブジェクトがImage Objectの場合は、そのオブジェクトからBufferedImageを取得して保存します。

+0

ありがとう、Malikarjun.Itすべて説明しました –

+0

例がうまく書かれていて、答えが良いのですが、正式なツールの機能はありません(他のコメントのリンクを参照)。公式のツールは重複を避け、インラインイメージを検出し、jpgファイルとしてjpgファイル1:1を保存することもできます。 –

関連する問題