4 Privet Drive
Little Whinging
<w:p>
<w:pPr>
<w:tabs>
<w:tab w:val="left" w:pos="6120"/>
</w:tabs>
<w:ind w:firstLine="6300"/>
<w:rPr>
<w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/>
<w:b/>
<w:sz w:val="22"/>
<w:szCs w:val="20"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/>
<w:b/>
<w:sz w:val="22"/>
<w:szCs w:val="20"/>
</w:rPr>
<w:t>$address$</w:t>
</w:r>
</w:p>
r.clear(); //r contains the variable it's <w:r> </w:r> in my XML exemple, it's a list
org.docx4j.wml.Text text = factory.createText(); //For the street
r.add(k, text);
org.docx4j.wml.Br br = factory.createBr();
r.add(k, br);
org.docx4j.wml.Text text2 = factory.createText();
r.add(k, text2);
text.setValue(zip);
text2.setValue(street);
在新的DOCX中,我的XML如下所示:
<w:p>
<w:pPr>
<w:tabs>
<w:tab w:val="left" w:pos="6120"/>
</w:tabs>
<w:ind w:firstLine="6300"/>
<w:rPr>
<w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/>
<w:b/>
<w:sz w:val="22"/>
<w:szCs w:val="20"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/>
<w:b/>
<w:sz w:val="22"/>
<w:szCs w:val="20"/>
</w:rPr>
<w:t>4 Privet Drive</w:t>
<:br/>
<w:t>Little Whinging</w:t>
</w:r>
</w:p>
所以我不知道如何将第二行设置到第一行的相同位置?
有两种方法可以做到这一点。
首先是使用选项卡:
<w:p>
<w:r>
<w:tab/>
<w:t>4 Privet Drive</w:t>
<w:br/>
<w:tab/>
<w:t>Little Whinging</w:t>
</w:r>
</w:p>
对应代码,假设P P:
// Create object for r
R r = wmlObjectFactory.createR();
p.getContent().add( r);
// Create object for tab (wrapped in JAXBElement)
R.Tab rtab = wmlObjectFactory.createRTab();
JAXBElement<org.docx4j.wml.R.Tab> rtabWrapped = wmlObjectFactory.createRTab(rtab);
r.getContent().add( rtabWrapped);
// Create object for t (wrapped in JAXBElement)
Text text = wmlObjectFactory.createText();
JAXBElement<org.docx4j.wml.Text> textWrapped = wmlObjectFactory.createRT(text);
r.getContent().add( textWrapped);
text.setValue( "4 Privet Drive");
// Create object for br
Br br = wmlObjectFactory.createBr();
r.getContent().add( br);
// Create object for tab (wrapped in JAXBElement)
R.Tab rtab2 = wmlObjectFactory.createRTab();
JAXBElement<org.docx4j.wml.R.Tab> rtabWrapped2 = wmlObjectFactory.createRTab(rtab2);
r.getContent().add( rtabWrapped2);
// Create object for t (wrapped in JAXBElement)
Text text2 = wmlObjectFactory.createText();
JAXBElement<org.docx4j.wml.Text> textWrapped2 = wmlObjectFactory.createRT(text2);
r3.getContent().add( textWrapped2);
text2.setValue( "Little Whinging");
<w:p>
<w:pPr>
<w:ind w:left="720"/>
</w:pPr>
<w:r>
<w:t>4 Privet Drive</w:t>
<w:br/>
<w:t>Little Whinging</w:t>
</w:r>
</w:p>
// Create object for ind
PPrBase.Ind pprbaseind = wmlObjectFactory.createPPrBaseInd();
ppr.setInd(pprbaseind);
pprbaseind.setLeft( BigInteger.valueOf( 720) );
我一直试图填充一个word模板(.docx)文件,其中有需要替换的占位符。 我能够重写模板,但是文本没有换行符,我知道回车或新行(\r\n)在.docx文件中不起作用。我使用VariableReplace方法进行转换,但是在使用变量replace时无法放置br或factory.createbr()。 任何建议都会很有帮助。下面是我尝试的一段代码
这就是我现在的代码,我试着放入“\n”、“ ”和“ ”,但都不起作用,现在我放入“\n”只是为了明确我想在哪里换行: 我的返回值放在mappingDocsVariable中,然后用以下代码生成docx文件:
我有一个.docx文档,顶部有一些表格。它们包含需要替换的文本占位符,这很好。但是,这些表中的一个需要重复,并用不同的值填充。我能够深度复制表并将其添加到文档的末尾,但我不知道如何将其插入适当的位置。我尝试在模板表的索引处添加副本,但在LibreOffice中会出现“未知的图形格式”错误,即使删除了原件: 我不知道如何最好地处理这件事。
问题内容: 所以我的代码看起来像这样: 我在行上得到了正确的输出形式,但是当我以后想要写它所显示的内容时,由于代码中没有代码,所以无需换行就可以写入文件。 问题答案: 只是打电话。 将为您的平台(无论是Windows还是Unix风格)提供行分隔符。
问题内容: 我必须用表格制作PDF。到目前为止,它工作正常,但现在我想添加包装功能。所以我需要插入换行符。 我想在“插入”之前添加“”。我尝试了“ ”,这是换行的十六进制值,但是Eclipse显示了一个错误。 是否可以使用drawString添加换行符? 问题答案: pdf格式不知道换行符。您必须使用moveTextPositionByAmount拆分字符串并将文本位置移至下一行。 这不是特殊的“