diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java index a188fb2..3e9a98a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java @@ -393,7 +393,7 @@ CompletableFuture[] futuresArr = futures.toArray(new CompletableFuture[0]); //所有线程并发执行 CompletableFuture.allOf(futuresArr).join(); - String fileName = WordUtil.mergeDoc(localFileDir + rootFileName+File.separator, fileNames, null); + String fileName = WordUtil.passOnMergeDoc(localFileDir + rootFileName+File.separator, fileNames, null); fileName=localFileDir + rootFileName+File.separator+fileName; //默认转为docx,只需要进行docx的替换即可 String pdfNewUrl = fileName.replaceAll("docx", "pdf"); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java index a188fb2..3e9a98a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java @@ -393,7 +393,7 @@ CompletableFuture[] futuresArr = futures.toArray(new CompletableFuture[0]); //所有线程并发执行 CompletableFuture.allOf(futuresArr).join(); - String fileName = WordUtil.mergeDoc(localFileDir + rootFileName+File.separator, fileNames, null); + String fileName = WordUtil.passOnMergeDoc(localFileDir + rootFileName+File.separator, fileNames, null); fileName=localFileDir + rootFileName+File.separator+fileName; //默认转为docx,只需要进行docx的替换即可 String pdfNewUrl = fileName.replaceAll("docx", "pdf"); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java index 9a5bdf0..7afa38c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java @@ -164,6 +164,31 @@ } } + + /** + * 添加页脚 + * + * @param document + */ + public static void addFooter(Document document, String recordNo) { + int sectionCounts = document.getSections().getCount(); + for (int i = 0; i < sectionCounts; i++) { + HeaderFooter footer = document.getSections().get(i).getHeadersFooters().getFooter(); + Paragraph footerParagraph = footer.addParagraph(); + recordNo = StringUtils.isEmpty(recordNo) ? "" : recordNo; + if(StringUtils.isNotEmpty(recordNo)){ + footerParagraph.appendText(" 证书号:" + recordNo); + } + footerParagraph.appendText(" "); + footerParagraph.appendText(" 第 "); + footerParagraph.appendField("第 " + "page number" + "页", FieldType.Field_Page); + footerParagraph.appendText(" 页 共 "); + footerParagraph.appendField("number of pages", FieldType.Field_Num_Pages); + footerParagraph.appendText(" 页 "); + footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Right); + } + } + /** * 暂时只处理多图片的场景 * 根据表、行、列位置填充图片 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java index a188fb2..3e9a98a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessInterchangeInfoServiceImpl.java @@ -393,7 +393,7 @@ CompletableFuture[] futuresArr = futures.toArray(new CompletableFuture[0]); //所有线程并发执行 CompletableFuture.allOf(futuresArr).join(); - String fileName = WordUtil.mergeDoc(localFileDir + rootFileName+File.separator, fileNames, null); + String fileName = WordUtil.passOnMergeDoc(localFileDir + rootFileName+File.separator, fileNames, null); fileName=localFileDir + rootFileName+File.separator+fileName; //默认转为docx,只需要进行docx的替换即可 String pdfNewUrl = fileName.replaceAll("docx", "pdf"); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java index 9a5bdf0..7afa38c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java @@ -164,6 +164,31 @@ } } + + /** + * 添加页脚 + * + * @param document + */ + public static void addFooter(Document document, String recordNo) { + int sectionCounts = document.getSections().getCount(); + for (int i = 0; i < sectionCounts; i++) { + HeaderFooter footer = document.getSections().get(i).getHeadersFooters().getFooter(); + Paragraph footerParagraph = footer.addParagraph(); + recordNo = StringUtils.isEmpty(recordNo) ? "" : recordNo; + if(StringUtils.isNotEmpty(recordNo)){ + footerParagraph.appendText(" 证书号:" + recordNo); + } + footerParagraph.appendText(" "); + footerParagraph.appendText(" 第 "); + footerParagraph.appendField("第 " + "page number" + "页", FieldType.Field_Page); + footerParagraph.appendText(" 页 共 "); + footerParagraph.appendField("number of pages", FieldType.Field_Num_Pages); + footerParagraph.appendText(" 页 "); + footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Right); + } + } + /** * 暂时只处理多图片的场景 * 根据表、行、列位置填充图片 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/util/WordUtil.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/util/WordUtil.java index 8b6c710..9e6f16e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/util/WordUtil.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/util/WordUtil.java @@ -198,6 +198,33 @@ * @param fileNames * @return */ + public static String passOnMergeDoc(String localPathUrl, List fileNames, String recordNo) { + //doc合并 + if (CollectionUtils.isEmpty(fileNames)) { + return null; + } + if (fileNames.size() > 1) { + String word1Url = localPathUrl + fileNames.get(0); + Document mainDoc = new Document(word1Url); + for (int i = 1; i < fileNames.size(); ) { + String word2Url = localPathUrl + fileNames.get(i++); + mainDoc.insertTextFromFile(word2Url, FileFormat.Docx_2010); + } + DocPictureProvider.addFooter(mainDoc, recordNo); + //保存合并后的文档 + mainDoc.saveToFile(word1Url, FileFormat.Docx_2010); + } + return fileNames.get(0); + } + + + /** + * 多个docx文档合并功能,合并为第一个文档 + * + * @param localPathUrl + * @param fileNames + * @return + */ public static String mergeDoc(String localPathUrl, List fileNames) { //doc合并 if (CollectionUtils.isEmpty(fileNames)) {