0
希望這很簡單。如何將提取的圖像從pdf寫入文件
我正在使用pdfbox從pdf中提取圖像。我想將圖像寫入文件夾。我似乎沒有得到任何輸出(該文件夾具有讀寫權限)。
我可能不會正確書寫輸出流,我認爲。
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;
public final class JavaImgExtactor
{
public static void main(String[] args) throws IOException{
Stuff();
}
@SuppressWarnings("resource")
public static void Stuff() throws IOException{
File inFile = new File("/Users/sebastianzeki/Documents/Images Captured with Proc Data Audit.pdf");
PDDocument document = new PDDocument();
//document=null;
try {
document = PDDocument.load(inFile);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
List pages = document.getDocumentCatalog().getAllPages();
Iterator iter = pages.iterator();
while (iter.hasNext()) {
PDPage page = (PDPage) iter.next();
System.out.println("page"+page);
PDResources resources = page.getResources();
Map pageImages = resources.getImages();
if (pageImages != null) {
Iterator imageIter = pageImages.keySet().iterator();
System.out.println("Success"+imageIter);
while (imageIter.hasNext()) {
String key = (String) imageIter.next();
PDXObjectImage image = (PDXObjectImage) pageImages.get(key);
FileOutputStream out = new FileOutputStream("/Users/sebastianzeki/Documents/ImgPDF.jpg");
try {
image.write2OutputStream(out);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
我認爲它比這更基礎,因爲while(imageIter.hasNext())後我沒有得到任何System.out.println結果。我是不是將圖像添加到集合中? –
@ SebastianZeki也許圖像不在這個層面,或者是內嵌圖像 - 你應該分享PDF。更好:使用當前版本2.0.6,並使用源代碼下載中的ExtractImages.java源代碼。 –
請參閱[ExtractImages](https://pdfbox.apache.org/1.8/commandline.html) –