docx4j拆分word
现在需要做个题库系统,用户上传word的试卷,系统拆分成一个一个的题目,要求格式保持基本不失真,所以考虑用docx4j把试卷拆分成一个一个的题目,每个题目一个word,再分别提取word的内容,但是拆分 之后,图片不能复制到拆分之后的word中。怎么做才能把图片也拆分到word中。下面是我的代码:
public class SplitUsingDocx4j { /** * @param args * @throws Docx4JException * @throws FileNotFoundException */ public static void main(String[] args) throws Docx4JException, FileNotFoundException { File dir = new File(PropertyUtils.getProperty("INPUT_DIR")); String[] files = dir.list(); File file = null; if (files.length == 0) { System.out.println("The directory is empty"); } else { for (String aFile : files) { System.out.println(aFile); file = new File(PropertyUtils.getProperty("INPUT_DIR") + aFile + "/" + aFile + ".docx"); } } // Creating new documents WordprocessingMLPackage doc1 = WordprocessingMLPackage.createPackage(); WordprocessingMLPackage doc2 = WordprocessingMLPackage.createPackage(); // loading existing document WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage .load(new java.io.File(file.getPath())); MainDocumentPart tempDocPart = wordMLPackage.getMainDocumentPart(); List<Object> obj = wordMLPackage.getMainDocumentPart().getContent(); // for copying styles from existing doc to new docs StyleDefinitionsPart sdp = tempDocPart.getStyleDefinitionsPart(); Styles tempStyle = sdp.getJaxbElement(); doc1.getMainDocumentPart().getStyleDefinitionsPart() .setJaxbElement(tempStyle); doc2.getMainDocumentPart().getStyleDefinitionsPart() .setJaxbElement(tempStyle); boolean flag = false; for (Object object : obj) { if (!flag) { if (object.toString().equalsIgnoreCase("CONSTRUCTION DETAILS:")) { flag = true; } doc1.getMainDocumentPart().addObject(object); } else { doc2.getMainDocumentPart().addObject(object); } } String fileName = file.getName().toString().replace(".docx", ""); doc1.save(new File(fileName + "-1.docx")); doc2.save(new File(fileName + "-2.docx")); }}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这个是用啥子实现的,谢谢,转换成html
回复
用poi就行
谢谢
你这代码就main