Skip to content

Commit 36211dd

Browse files
authored
TIKA-4683 -- hyphens in ooxml (#2799)
1 parent ddaebd0 commit 36211dd

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLWordAndPowerPointTextHandler.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ public class OOXMLWordAndPowerPointTextHandler extends DefaultHandler {
6969
private final static String STRIKE = "strike";
7070
private final static String NUM_PR = "numPr";
7171
private final static String BR = "br";
72+
private final static String NO_BREAK_HYPHEN = "noBreakHyphen";
73+
private final static String SOFT_HYPHEN = "softHyphen";
7274
private final static String HYPERLINK = "hyperlink";
7375
private final static String HLINK_CLICK = "hlinkClick"; //pptx hlink
7476
private final static String TBL = "tbl";
@@ -305,6 +307,12 @@ public void startElement(String uri, String localName, String qName, Attributes
305307
}
306308
} else if (BR.equals(localName)) {
307309
runBuffer.append(NEWLINE);
310+
} else if (NO_BREAK_HYPHEN.equals(localName)) {
311+
// <w:noBreakHyphen/> — emit U+2011 NON-BREAKING HYPHEN
312+
runBuffer.append('\u2011');
313+
} else if (SOFT_HYPHEN.equals(localName)) {
314+
// <w:softHyphen/> — emit U+00AD SOFT HYPHEN (invisible hyphenation hint)
315+
runBuffer.append('\u00AD');
308316
} else if (BOOKMARK_START.equals(localName)) {
309317
String name = atts.getValue(W_NS, "name");
310318
String id = atts.getValue(W_NS, "id");

0 commit comments

Comments
 (0)