mirror of https://github.com/apache/poi.git
[github-670] XWPFRun.getText should support delInstrText and noBreakHyphen. Thanks to fangd1997. This closes #670
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1919895 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6c56c2d00f
commit
33260d51ee
|
@ -1521,10 +1521,10 @@ public class XWPFRun implements ISDTContents, IRunElement, CharacterRun {
|
|||
|
||||
if (o instanceof CTText) {
|
||||
final Node node = o.getDomNode();
|
||||
// Field Codes (w:instrText, defined in spec sec. 17.16.23)
|
||||
// Field Codes (w:instrText, defined in spec sec. 17.16.23 and w:delInstrText, defined in spec sec. 17.16.13)
|
||||
// come up as instances of CTText, but we don't want them
|
||||
// in the normal text output
|
||||
if (!("instrText".equals(node.getLocalName()) && XSSFRelation.NS_WORDPROCESSINGML.equals(node.getNamespaceURI()))) {
|
||||
if (!(("instrText".equals(node.getLocalName()) || "delInstrText".equals(node.getLocalName())) && XSSFRelation.NS_WORDPROCESSINGML.equals(node.getNamespaceURI()))) {
|
||||
String textValue = ((CTText) o).getStringValue();
|
||||
if (textValue != null) {
|
||||
if (isCapitalized() || isSmallCaps()) {
|
||||
|
@ -1564,6 +1564,9 @@ public class XWPFRun implements ISDTContents, IRunElement, CharacterRun {
|
|||
final Node node = o.getDomNode();
|
||||
if (XSSFRelation.NS_WORDPROCESSINGML.equals(node.getNamespaceURI())) {
|
||||
switch (node.getLocalName()) {
|
||||
case "noBreakHyphen":
|
||||
text.append('‑');
|
||||
break;
|
||||
case "tab":
|
||||
text.append('\t');
|
||||
break;
|
||||
|
|
|
@ -99,6 +99,17 @@ class TestXWPFRun {
|
|||
//fail("Position wrong");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetTextWithNoBreakHyphen() {
|
||||
ctRun.addNewT().setStringValue("TEST STRING 1");
|
||||
ctRun.addNewInstrText().setStringValue("InstrText");
|
||||
ctRun.addNewNoBreakHyphen();
|
||||
ctRun.addNewDelInstrText().setStringValue("DelInstrText");
|
||||
ctRun.addNewT().setStringValue("1");
|
||||
XWPFRun run = new XWPFRun(ctRun, irb);
|
||||
assertEquals("TEST STRING 1‑1", run.text());
|
||||
}
|
||||
|
||||
/*
|
||||
* bug 59208
|
||||
* Purpose: test all valid boolean-like values
|
||||
|
|
Loading…
Reference in New Issue