当我们想要将 xml 数据添加到 .docx(模板)并获取新的 .docx 文件时,docx4j 的 .docx 中新内容容器的格式是什么?
Whats the format for a new content container in the .docx for docx4j when we want to add xml data into the .docx (Template) and get a new .docx file?
对于本文中使用的doc文件class
public class ContentControlBindingExtensions {
public static JAXBContext context = org.docx4j.jaxb.Context.jc;
static String filepathprefix;
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// String input_DOCX = System.getProperty("user.dir") + "/sample-docs/word/databinding/CountryRegions.xml";
String input_DOCX = System.getProperty("user.dir") + "/sample-docs/word/databinding/invoice.docx";
String input_XML = System.getProperty("user.dir") + "/sample-docs/word/databinding/invoice-data.xml";
// resulting docx
String OUTPUT_DOCX = System.getProperty("user.dir") + "/OUT_ContentControlsMergeXML.docx";
// Load input_template.docx
WordprocessingMLPackage wordMLPackage = Docx4J.load(new File(input_DOCX));
// Open the xml stream
FileInputStream xmlStream = new FileInputStream(new File(input_XML));
Docx4J.bind(wordMLPackage, xmlStream, Docx4J.FLAG_BIND_INSERT_XML | Docx4J.FLAG_BIND_BIND_XML);
//Save the document
Docx4J.save(wordMLPackage, new File(OUTPUT_DOCX), Docx4J.FLAG_NONE);
System.out.println("Saved: " + OUTPUT_DOCX);
}
}
我下载了此文件中使用的 invoice.docx。我尝试添加一个新的内容容器,文本为 "randomText",标签为 "od:condition=c7",因为之前的内容容器标签为 "od:condition=c6",并尝试通过 XML 隐藏容器。但我做不到。我可以知道格式或如何创建容器并通过 XML.
访问它吗
有关其幕后工作原理,请参阅 opendope_conventions_v2.3.html
中的 od:condition 标记部分
要创作合适的模板,最简单的方法是使用 Word 的 OpenDoPE 创作插件之一。这会为您设置数据结构。
对于本文中使用的doc文件class
public class ContentControlBindingExtensions {
public static JAXBContext context = org.docx4j.jaxb.Context.jc;
static String filepathprefix;
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// String input_DOCX = System.getProperty("user.dir") + "/sample-docs/word/databinding/CountryRegions.xml";
String input_DOCX = System.getProperty("user.dir") + "/sample-docs/word/databinding/invoice.docx";
String input_XML = System.getProperty("user.dir") + "/sample-docs/word/databinding/invoice-data.xml";
// resulting docx
String OUTPUT_DOCX = System.getProperty("user.dir") + "/OUT_ContentControlsMergeXML.docx";
// Load input_template.docx
WordprocessingMLPackage wordMLPackage = Docx4J.load(new File(input_DOCX));
// Open the xml stream
FileInputStream xmlStream = new FileInputStream(new File(input_XML));
Docx4J.bind(wordMLPackage, xmlStream, Docx4J.FLAG_BIND_INSERT_XML | Docx4J.FLAG_BIND_BIND_XML);
//Save the document
Docx4J.save(wordMLPackage, new File(OUTPUT_DOCX), Docx4J.FLAG_NONE);
System.out.println("Saved: " + OUTPUT_DOCX);
}
}
我下载了此文件中使用的 invoice.docx。我尝试添加一个新的内容容器,文本为 "randomText",标签为 "od:condition=c7",因为之前的内容容器标签为 "od:condition=c6",并尝试通过 XML 隐藏容器。但我做不到。我可以知道格式或如何创建容器并通过 XML.
访问它吗有关其幕后工作原理,请参阅 opendope_conventions_v2.3.html
中的 od:condition 标记部分要创作合适的模板,最简单的方法是使用 Word 的 OpenDoPE 创作插件之一。这会为您设置数据结构。