我有一个包含64个嵌入式pdf文件的word文档。有没有简单的方法可以将所有这些文件提取到文件夹而无需手动提取每个文件?
答案 0 :(得分:1)
使用docx4j,尝试类似:
import java.io.File;
import java.util.Map;
import org.apache.commons.io.IOUtils;
import org.apache.poi.poifs.filesystem.DocumentInputStream;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.Part;
import org.docx4j.openpackaging.parts.PartName;
import org.docx4j.openpackaging.parts.WordprocessingML.OleObjectBinaryPart;
public class OLEExtractEmbeddedPDF {
public static void main(String[] args) throws Exception {
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File(System.getProperty("user.dir")
+ "/yourdocx.docx"));
for (Map.Entry<PartName,Part> entry : wordMLPackage.getParts().getParts().entrySet()) {
Part p = entry.getValue();
if (p instanceof OleObjectBinaryPart) {
OleObjectBinaryPart olePart = (OleObjectBinaryPart)p;
DocumentInputStream inputStream = olePart.getFs().createDocumentInputStream("CONTENTS");
byte[] pdfBytes = IOUtils.toByteArray(inputStream);
// Do something with it here...
System.out.println("Found " + p.getPartName().getName() );
}
}
}
}
答案 1 :(得分:1)
简单....将.docx重命名为.zip,解压缩拉链,打开拉链....它们都在那里。
答案 2 :(得分:0)
请在此处找到解决方案(转到以下信息)-如何提取Word文档中嵌入的所有“ pdf”文件并将其保存到文件夹中: Docx文件是一个压缩文件夹,但这还不够,因为嵌入式文件是二进制文件。
所以这是这样做的方法: How to extract embedded PDF from WORD document in Linux (Mac)