docx4j从一个.docx导出样式,并在另一个.docx中使用它 [英] Docx4j export style from one .docx and use it in another .docx
本文介绍了docx4j从一个.docx导出样式,并在另一个.docx中使用它的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用以下代码创建新的Word文档:
I am creating new Word document with the code below:
Tidy tidy = new Tidy();
tidy.setShowWarnings(true);
tidy.setInputEncoding("UTF-8");
tidy.setOutputEncoding("UTF-8");
tidy.setXHTML(true);
tidy.setMakeClean(true);
tidy.setQuoteNbsp(false);
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
for (Value v : res.getRules()) {
System.out.println(v.toString());
ByteArrayOutputStream ou = new ByteArrayOutputStream();
tidy.parse(new ByteArrayInputStream(v.toString().getBytes(StandardCharsets.UTF_8)), ou);
wordMLPackage.getMainDocumentPart().getContent().clear();
wordMLPackage.getMainDocumentPart().getContent().addAll(XHTMLImporter.convert(new String(ou.toByteArray()), null));
}
wordMLPackage.save(new java.io.File(System.getProperty("user.dir") + "/report.docx"));
我想要做的是使用其他.docx中的样式并将其附加到我保存的输出的特定部分.有任何想法吗 ?我已经花了很多时间来寻找解决方案,但是我还没有发现任何有用的东西.
What I want to do, is to use style from other .docx and append it to specific part of output that I save. Any ideas ? I've spent a lot of time on finding solution, but I haven't found anything useful.
推荐答案
第一个文档.我们要从中导入样式.
First document. We want to import styles from it.
WordprocessingMLPackage wordMLPackage2 = WordprocessingMLPackage
.load(new java.io.File(System.getProperty("user.dir") + "/template.docx"));
第二个文档
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
我们从第一个文档中导入样式并将其附加到第二个文档中
We import styles from first document and append them to the second document
MainDocumentPart tempDocPart = wordMLPackage2.getMainDocumentPart();
StyleDefinitionsPart sdp = tempDocPart.getStyleDefinitionsPart();
Styles tempStyle = sdp.getJaxbElement();
wordMLPackage.getMainDocumentPart().getStyleDefinitionsPart().setJaxbElement(tempStyle);
我们可以使用其ID来使用特定样式
And we can use specific style using its id
wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Heading1", "Example");
这篇关于docx4j从一个.docx导出样式,并在另一个.docx中使用它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文