private void replaceTextValue(WordprocessingMLPackage template, String name, String placeholder ) throws Exception{
List<Object> texts = getAllSdtElementFromObject(template.getMainDocumentPart());
for (Object text : texts) {
SdtElement textElement = (SdtElement) text; // SdtElement is an Interface, not a Class
List<Object> cList = textElement.getSdtContent().getContent();
SdtPr pr = textElement.getSdtPr();
List<Object> al = pr.getRPrOrAliasOrLock();
for (Object alias : al) { // go through all SdtPr objects
if ( alias.getClass().toString().contains("org.docx4j.wml.Tag")) {
String CTagVal = ((org.docx4j.wml.Tag) alias).getVal();
if (CTagVal.equalsIgnoreCase(placeholder)) {
ClassFinder finder = new ClassFinder(Text.class);
new TraversalUtil(cList, finder);
// taken from the TraveseFind example
// https://github.com/plutext/docx4j/blob/master/src/samples/docx4j/org/docx4j/samples/TraverseFind.java
for (Object o : finder.results) {
Object o2 = XmlUtils.unwrap(o);
if (o2 instanceof org.docx4j.wml.Text) {
org.docx4j.wml.Text txt = (org.docx4j.wml.Text)o2;
txt.setValue(name);
} else {
System.out.println( XmlUtils.marshaltoString(o, true, true));
}
}
}
}
}
}
}
以下是内容控件的XML
<w:sdt>
<w:sdtPr>
<w:alias w:val="Aufgabengebiet"/>
<w:id w:val="-996718060"/>
<w:placeholder>
<w:docPart w:val="DefaultPlaceholder_1082065158"/>
</w:placeholder>
<w:showingPlcHdr/>
<w:text/>
</w:sdtPr>
<w:sdtContent>
<w:p w:rsidRDefault="00A858B9" w:rsidR="00066661" w:rsidP="00A858B9">
<w:r w:rsidRPr="00FD7E66">
<w:rPr>
<w:rStyle w:val="Platzhaltertext"/>
</w:rPr>
<w:t>Klicken Sie hier, um Text einzugeben.</w:t>
</w:r>
</w:p>
</w:sdtContent>
</w:sdt>
可以使用run(rPr)格式化来格式化纯文本内容控件;参见http://webapp.docx4java.org/onlinedemo/ecma376/wordml/rpr_5.html
例如,Word发出:
<w:sdt>
<w:sdtPr>
<w:rPr>
<w:rStyle w:val="IntenseEmphasis"/>
</w:rPr>
<w:id w:val="-2141179504"/>
<w:placeholder>
<w:docPart w:val="DefaultPlaceholder_1082065158"/>
</w:placeholder>
<w:text/>
</w:sdtPr>
<w:sdtContent>
<w:p >
<w:pPr>
<w:rPr>
<w:rStyle w:val="IntenseEmphasis"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="00B61E2E">
<w:rPr>
<w:rStyle w:val="IntenseEmphasis"/>
</w:rPr>
<w:t>Klicken Sie hier, um Text einzugeben.</w:t>
</w:r>
</w:p>
</w:sdtContent>
</w:sdt>
富文本控件的内容还可以包括pPr格式(在给定上下文允许包含的任何P上)。
我有一个与XPages-docx4j类似的问题,用文本替换书签,但我想保留样式。我的书签不在文本上(因为它是由Google Docs创建的docx),我想保留书签后面的文本,以便将其包含在书签中并保持其样式。例如: 我找到了删除书签后文本的解决方案,我找到了在书签内添加文本的解决方法,但我无法保留样式。 我不是以英语为母语的人,所以如果我不清楚,请毫不犹豫地问我。
有什么方法可以指定在编组时对此实例使用不同的命名空间吗?
我试图在MS Word文档中用docx4j设置/取消设置复选框值。 使用本文中的代码:docx4j检查我从文档中收到的这个元素的XML后面的复选框: 如何取消设置此复选框的值? 谢谢!
了解如何在实时视图、代码视图中添加文本和设置其格式,或通过从 PSD 文件中提取文本和关联的属性来达到目的。 向文档添加文本 要向 Dreamweaver 文档添加文本,可直接在“文档”窗口中键入文本,也可剪切并粘贴文本。还可从其他文档导入文本。 当您将文本粘贴到 Dreamweaver 文档中时,可以使用“粘贴”或“选择性粘贴”命令。“选择性粘贴”命令允许您以不同的方式指定所粘贴文本的格式。例如
下面的示例将展示在将HTML String解析为Document对象之后使用方法来设置,预置或附加文本到dom元素。 语法 (Syntax) Document document = Jsoup.parse(html); Element div = document.getElementById("sampleDiv"); div.text("This is a sample conten
有没有办法将文件附加到MS Word文档中?我的意思与您将MS Excel文件拖放到MS Word中的方式相同。它显示MS Excel图标和文件名,双击打开附件。 我的情况来自以前的html文件,我导入使用XHTMLImporter.convert.现在超文本标记语言引用附件下载几个地方,并希望将这些文件附加到适当的MS Word文档。