aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2025-09-09 09:56:57 +0100
committerMichael Williamson <mike@zwobble.org>2025-09-09 09:57:13 +0100
commit7d96c9aee67b7de9f8acd5139f34bfdb9f01f798 (patch)
treea913d9ecdff125f01c1cf4131fafffbe13d2b9fe /src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
parent900b7d9f2bcd8c1f898f45b2eef3180dc4a88cde (diff)
Test reading of table rows when non-rows are present
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
index 436d5d9..649a47b 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
@@ -500,6 +500,7 @@ class StatefulBodyXmlReader {
private ReadResult calculateRowspans(List<DocumentElement> rows) {
Optional<String> error = checkTableRows(rows);
if (error.isPresent()) {
+ rows = removeUnmergedTableCells(rows);
return ReadResult.withWarning(rows, error.get());
}
@@ -561,6 +562,16 @@ class StatefulBodyXmlReader {
return Optional.empty();
}
+ private List<DocumentElement> removeUnmergedTableCells(List<DocumentElement> rows) {
+ return Lists.eagerMap(
+ rows,
+ transformElementsOfType(
+ UnmergedTableCell.class,
+ cell -> new TableCell(1, cell.colspan, cell.children)
+ )
+ );
+ }
+
private ReadResult readTableRow(XmlElement element) {
XmlElementLike properties = element.findChildOrEmpty("w:trPr");