Author: fanningpj
Date: Wed Aug 14 17:38:32 2024
New Revision: 1919895
URL: http://svn.apache.org/viewvc?rev=1919895&view=rev
Log:
[github-670] XWPFRun.getText should support delInstrText and noBreakHyphen.
Thanks to fangd1997. This closes #670
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java?rev=1919895&r1=1919894&r2=1919895&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
Wed Aug 14 17:38:32 2024
@@ -1521,10 +1521,10 @@ public class XWPFRun implements ISDTCont
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 ISDTCont
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;
Modified:
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java?rev=1919895&r1=1919894&r2=1919895&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
(original)
+++
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
Wed Aug 14 17:38:32 2024
@@ -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
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]