From 782023525839e20e8fdd9ad1f5836e67bbb2c0ff Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Tue, 9 Nov 2021 17:44:47 +0200 Subject: [PATCH] Improve html type field exports --- .../logic/utilities/documents/word/HtmlToWorldBuilder.java | 7 +++++++ .../eudat/logic/utilities/documents/word/WordBuilder.java | 7 +++++-- 2 files changed, 12 insertions(+), 2 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 5739fa482..063ce4deb 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 @@ -205,7 +205,14 @@ public class HtmlToWorldBuilder implements NodeVisitor { ctLvl.addNewNumFmt().setVal(format); ctLvl.addNewStart().setVal(BigInteger.ONE); if (format == STNumberFormat.BULLET) { + ctLvl.addNewLvlJc().setVal(STJc.LEFT); ctLvl.addNewLvlText().setVal("\u2022"); + ctLvl.addNewRPr(); //Set the Symbol font + CTFonts f = ctLvl.getRPr().addNewRFonts(); + f.setAscii("Symbol"); + f.setHAnsi("Symbol"); + f.setCs("Symbol"); + f.setHint(STHint.DEFAULT); } else { ctLvl.addNewLvlText().setVal("%1."); } 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 1bfc85b2a..96df37a51 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 @@ -34,10 +34,12 @@ public class WordBuilder { private Map> options = new HashMap<>(); private CTAbstractNum cTAbstractNum; private BigInteger numId; + private Integer indent; public WordBuilder() { this.cTAbstractNum = CTAbstractNum.Factory.newInstance(); this.cTAbstractNum.setAbstractNumId(BigInteger.valueOf(1)); + this.indent = 0; this.buildOptions(); } @@ -52,7 +54,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.8F); + HtmlToWorldBuilder htmlToWorldBuilder = HtmlToWorldBuilder.convert(mainDocumentPart, htmlDoc, indent > 0 ? (indent/2.0F) * 0.8F : 0.8F); return htmlToWorldBuilder.getParagraph(); }); this.options.put(ParagraphStyle.TITLE, (mainDocumentPart, item) -> { @@ -221,7 +223,8 @@ public class WordBuilder { if (!createListing) { try { if (field.getValue() != null && !field.getValue().toString().isEmpty()) { - XWPFParagraph paragraph = addParagraphContent(this.formatter(field), mainDocumentPart, ParagraphStyle.TEXT, numId); + this.indent = indent; + XWPFParagraph paragraph = addParagraphContent(this.formatter(field), mainDocumentPart, field.getViewStyle().getRenderStyle().equals("richTextarea") ? ParagraphStyle.HTML : ParagraphStyle.TEXT, numId); if (paragraph != null) { CTDecimalNumber number = paragraph.getCTP().getPPr().getNumPr().addNewIlvl(); number.setVal(BigInteger.valueOf(indent));