1
我在DOCX中有一個變量,我想用值替換它。首先,該變量不是放在行的開頭,而是放在一些製表符之後。我的價值是一個郵政地址,我想用相同的縮進在不同的行中設置街道和郵政編碼(+城市)。街道替換變量在他的線,郵政編碼是在一個新行這樣的:DOCX4J插入換行符
4 Privet Drive
Little Whinging
這是該變量的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>$address$</w:t>
</w:r>
</w:p>
我可以替換變量,並把郵政編碼和城市在新的符合(我用getJAXBNodesViaXPath()
找回我的變量)
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);
它替換街上varibale並創建拉鍊一個新行。這條街是在這個好地方(左邊),但是這個城市在新線的開始。
在新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>
所以我不知道如何將第二行設置爲第一的相同位置?