From ca734d69ab3937bac864b4361317a49dd15a7882 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 08 七月 2024 17:14:43 +0800 Subject: [PATCH] 骑缝章完成 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java | 33 ++++++++++++++++++++------------- 1 files changed, 20 insertions(+), 13 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java index 7033aec..f238926 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java @@ -189,9 +189,9 @@ put("seal1", Pictures.ofLocal(imgUrl + "/" + sealUrl).create()); put("seal2", Pictures.ofLocal(imgUrl + "/" + sealUrl).create()); }}, finalUrl); - wordToPdf(finalUrl); + wordToPdf(finalUrl,sealUrl); - String replace = finalUrl.replace(".docx", ".pdf"); + /* String replace = finalUrl.replace(".docx", ".pdf"); CompletableFuture.supplyAsync(() -> { try { stamperCheckMarkPDF(replace,replace,sealUrl); @@ -203,7 +203,7 @@ }).exceptionally(e -> { e.printStackTrace(); return null; - }); + });*/ InsOrder insOrder = new InsOrder(); insOrder.setId(insReportMapper.selectById(id).getInsOrderId()); @@ -224,10 +224,10 @@ } @Override - public void wordToPdf(String path) { + public void wordToPdf(String path,String sealUrl) { CompletableFuture.supplyAsync(() -> { try { - wordToPdf(path, path.replace(".docx", ".pdf")); + wordToPdf(path, path.replace(".docx", ".pdf"),sealUrl); return null; } catch (Exception e) { throw new ErrorException("杞崲澶辫触"); @@ -239,7 +239,7 @@ }); } - public String wordToPdf(String wordPath, String pdfPath) { + public String wordToPdf(String wordPath, String pdfPath,String sealUrl) { FileOutputStream os = null; try { //鍑瘉 涓嶇劧鍒囨崲鍚庢湁姘村嵃 @@ -264,11 +264,16 @@ return null; } //鐢熸垚涓�涓┖鐨凱DF鏂囦欢 - File file = new File(pdfPath); + File file = new File(pdfPath.replace(".pdf","-1.pdf")); os = new FileOutputStream(file); //瑕佽浆鎹㈢殑word鏂囦欢 com.aspose.words.Document doc = new com.aspose.words.Document(wordPath); doc.save(os, SaveFormat.PDF); + + //娣诲姞楠戠紳绔� + stamperCheckMarkPDF(pdfPath.replace(".pdf","-1.pdf"),pdfPath,imgUrl + "/" +sealUrl); + + } catch (Exception e) { e.printStackTrace(); } finally { @@ -290,8 +295,8 @@ */ public static com.itextpdf.text.Image[] slicingImages(String Path, int n) throws IOException, BadElementException { com.itextpdf.text.Image[] nImage = new com.itextpdf.text.Image[n]; - ByteArrayOutputStream out = new ByteArrayOutputStream(); BufferedImage img = ImageIO.read(new File(Path)); + int h = img.getHeight(); int w = img.getWidth(); @@ -303,11 +308,10 @@ }else {//鍓峮-1鍧楀潎鍖�鍒� subImg = img.getSubimage(i * sw, 0, sw, h); } - + ByteArrayOutputStream out = new ByteArrayOutputStream(); ImageIO.write(subImg,Path.substring(Path.lastIndexOf('.')+1),out); nImage[i] = com.itextpdf.text.Image.getInstance(out.toByteArray()); - out.flush(); - out.reset(); + } return nImage; } @@ -322,6 +326,7 @@ PdfReader reader = new PdfReader(infilePath);//閫夋嫨闇�瑕佸嵃绔犵殑pdf PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outFilePath));//鍔犲畬鍗扮珷鍚庣殑pdf + com.itextpdf.text.Rectangle pageSize = reader.getPageSize(1);//鑾峰緱绗竴椤� float height = pageSize.getHeight(); float width = pageSize.getWidth(); @@ -329,11 +334,13 @@ int nums = reader.getNumberOfPages(); com.itextpdf.text.Image[] nImage = slicingImages(picPath,nums);//鐢熸垚楠戠紳绔犲垏鍓插浘鐗� - for(int n=1;n<=nums;n++){ PdfContentByte over = stamp.getOverContent(n);//璁剧疆鍦ㄧ鍑犻〉鎵撳嵃鍗扮珷 com.itextpdf.text.Image img = nImage[n-1];//閫夋嫨鍥剧墖 - img.setAbsolutePosition(width-img.getWidth(),height/2-img.getHeight()/2);//鎺у埗鍥剧墖浣嶇疆 + float newHeight = 100f; + float newWidth = img.getWidth()/(img.getHeight()/100); + img.scaleAbsolute(newWidth,newHeight);//鎺у埗鍥剧墖澶у皬 + img.setAbsolutePosition(width-newWidth,height/2-newHeight/2);//鎺у埗鍥剧墖浣嶇疆 over.addImage(img); } stamp.close(); -- Gitblit v1.9.3