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 678979628..b533fb9bd 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 @@ -59,12 +59,15 @@ public class WordBuilder { private CTAbstractNum cTAbstractNum; private BigInteger numId; private Integer indent; - private static final ObjectMapper mapper = new ObjectMapper(); + private final ObjectMapper mapper; + private Integer imageCount; public WordBuilder(Environment environment) { this.cTAbstractNum = CTAbstractNum.Factory.newInstance(); this.cTAbstractNum.setAbstractNumId(BigInteger.valueOf(1)); this.indent = 0; + this.imageCount = 0; + this.mapper = new ObjectMapper(); this.buildOptions(environment); } @@ -157,6 +160,8 @@ public class WordBuilder { this.options.put(ParagraphStyle.IMAGE, (mainDocumentPart, item) -> { XWPFParagraph paragraph = mainDocumentPart.createParagraph(); paragraph.setPageBreak(true); + paragraph.setSpacingAfter(0); + paragraph.setAlignment(ParagraphAlignment.CENTER); //GK: Center the image if it is too small XWPFRun run = paragraph.createRun(); String imageId = ((Map)item).get("id"); String fileName = ((Map)item).get("name"); @@ -198,8 +203,15 @@ public class WordBuilder { width = Math.round(height/ratio); } - run.addPicture(image, format, fileName, Units.toEMU(width), Units.toEMU(height)); + XWPFPicture picture = run.addPicture(image, format, fileName, Units.toEMU(width), Units.toEMU(height)); paragraph.setPageBreak(false); + imageCount++; + XWPFParagraph captionParagraph = mainDocumentPart.createParagraph(); + captionParagraph.setAlignment(ParagraphAlignment.CENTER); + captionParagraph.setSpacingBefore(0); + XWPFRun captionRun = captionParagraph.createRun(); + captionRun.setText("Image " + imageCount); + } } catch (IOException | InvalidFormatException e){ logger.error(e.getMessage(), e);