これは簡単です。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)を参照してください。 –