From db4d1006c6ad905f868d5231198bddd486f8472d Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Tue, 2 Nov 2021 18:06:00 +0200 Subject: [PATCH] Fix various issues with word/PDF export --- .../documents/word/HtmlToWorldBuilder.java | 2 +- .../utilities/documents/word/WordBuilder.java | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/HtmlToWorldBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/HtmlToWorldBuilder.java index b1a66e9e5..5739fa482 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/HtmlToWorldBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/HtmlToWorldBuilder.java @@ -171,7 +171,7 @@ public class HtmlToWorldBuilder implements NodeVisitor { break; case "br": if (stringBooleanEntry.getValue()) { - this.run.addCarriageReturn(); + this.run.addBreak(); } break; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java index f5d78ba40..1bfc85b2a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java @@ -52,8 +52,7 @@ public class WordBuilder { }); this.options.put(ParagraphStyle.HTML, (mainDocumentPart, item) -> { Document htmlDoc = Jsoup.parse(item.replaceAll("\n", "
")); - HtmlToWorldBuilder htmlToWorldBuilder = HtmlToWorldBuilder.convert(mainDocumentPart, htmlDoc, 0.5F); - htmlToWorldBuilder.getParagraph().setIndentationLeft(0); + HtmlToWorldBuilder htmlToWorldBuilder = HtmlToWorldBuilder.convert(mainDocumentPart, htmlDoc, 0.8F); return htmlToWorldBuilder.getParagraph(); }); this.options.put(ParagraphStyle.TITLE, (mainDocumentPart, item) -> { @@ -132,8 +131,16 @@ public class WordBuilder { public XWPFDocument build(XWPFDocument document, PagedDatasetProfile pagedDatasetProfile, VisibilityRuleService visibilityRuleService) throws IOException { createPages(pagedDatasetProfile.getPages(), document, true, visibilityRuleService); - XWPFAbstractNum abstractNum = new XWPFAbstractNum(cTAbstractNum); XWPFNumbering numbering = document.createNumbering(); + BigInteger tempNumId = BigInteger.ONE; + boolean found = false; + while (!found) { + Object o = numbering.getAbstractNum(tempNumId); + found = (o == null); + if (!found) tempNumId = tempNumId.add(BigInteger.ONE); + } + cTAbstractNum.setAbstractNumId(tempNumId); + XWPFAbstractNum abstractNum = new XWPFAbstractNum(cTAbstractNum); BigInteger abstractNumID = numbering.addAbstractNum(abstractNum); this.numId = numbering.addNum(abstractNumID); createPages(pagedDatasetProfile.getPages(), document, false, visibilityRuleService); @@ -252,13 +259,16 @@ public class WordBuilder { } if (question) { cTLvl.addNewNumFmt().setVal(STNumberFormat.DECIMAL); + cTLvl.addNewLvlText().setVal(""); cTLvl.setIlvl(BigInteger.valueOf(indent)); } else if (!question && hasIndication) { cTLvl.addNewNumFmt().setVal(STNumberFormat.DECIMAL); + cTLvl.addNewLvlText().setVal(""); cTLvl.setIlvl(BigInteger.valueOf(indent)); } if (!question && !hasIndication) { cTLvl.addNewNumFmt().setVal(STNumberFormat.NONE); + cTLvl.addNewLvlText().setVal(""); cTLvl.setIlvl(BigInteger.valueOf(indent)); } } @@ -337,7 +347,9 @@ public class WordBuilder { return data.getLabel(); case "freetext": case "datepicker": + case "datePicker": case "textarea": + case "richTextarea": return field.getValue() != null ? field.getValue().toString(): ""; case "datasetIdentifier": case "validation":