我正在尝试保存从a中提取的图像。临时文件夹中的doc文件。 我能够创建它的文件夹以及提取的图像,但我不知道如何将它们保存在文件夹中。 你能帮忙吗?
这是迄今为止所做的:
private static void documentImagesCapture(HWPFDocument doc) {
PicturesTable picturesTable = doc.getPicturesTable();
List<Picture> allPictures = picturesTable.getAllPictures();
System.out.println("Number of pictures in the document: "+allPictures.size());
if (allPictures.size()>0){
final Path folderPath = Paths.get("src/test/resources/test-documents/");
final Path tmpDir;
try {
// Create tmp folder
tmpDir = Files.createTempDirectory(folderPath, null);
System.out.println("This is a temporary folder: " + tmpDir);
// Extract a Picture file
for (Picture pic : allPictures){
System.out.println("this is the picture that I want to save : " + pic);
//Save pic in tmpDir???????
}
} catch (IOException e) {
System.err.println(">>>>>>>>> ERROR >>>>>>>>> WordDocSplitter.documentImagesCapture()");
e.printStackTrace();
}
}
}
由于
谢谢大卫!!!! 我这样解决了:
for (Picture pic : allPictures){
File newFilePic = new File(pic.suggestFullFileName());
pic.writeImageContent(new DataOutputStream(new FileOutputStream(newFilePic)));
FileUtils.copyFileToDirectory(newFilePic, new File(tmpDir.toString()));
FileUtils.forceDelete(newFilePic);
}
答案 0 :(得分:1)
对Picture对象使用writeImageContent方法。文档here。
writeImageContent
public void writeImageContent(java.io.OutputStream out) 抛出java.io.IOException
将图片的内容字节写入指定的OutputStream。在有需要时很有用 将图片字节直接写入流,省略其表示 在内存中作为不同的字节数组。参数:out - 要写入的流 抛出:java.io.IOException - 如果发生了一些异常 写入指定的