From e24ad0ae76c0b1efb37e0838ba747b74d9675379 Mon Sep 17 00:00:00 2001 From: szy Date: Mon, 15 Jun 2026 13:05:09 +0800 Subject: [PATCH] =?UTF-8?q?CA=E5=8A=A0=E7=AD=BE=E6=B5=8B=E8=AF=95=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../print/core/sign/strategy/SignByCA.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/micro-modules/micro-print/src/main/java/com/sinosoft/print/core/sign/strategy/SignByCA.java b/micro-modules/micro-print/src/main/java/com/sinosoft/print/core/sign/strategy/SignByCA.java index 8b13522..d8e920f 100644 --- a/micro-modules/micro-print/src/main/java/com/sinosoft/print/core/sign/strategy/SignByCA.java +++ b/micro-modules/micro-print/src/main/java/com/sinosoft/print/core/sign/strategy/SignByCA.java @@ -9,6 +9,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.io.File; +import java.io.FileOutputStream; +import java.nio.file.Files; +import java.util.HashMap; import java.util.Map; @Component @@ -36,6 +39,49 @@ public class SignByCA implements SignInterface { // return new byte[0]; } + public static void main(String[] args) throws Exception { + + // ================== 1. 读取本地 PDF ================== + File inputPdf = new File("C:\\Users\\szy\\Desktop\\FZ接口\\a.pdf"); + if (!inputPdf.exists()) { + throw new RuntimeException("PDF 文件不存在"); + } + + byte[] pdfBytes = Files.readAllBytes(inputPdf.toPath()); + + // ================== 2. 构造签章参数 ================== + String signNumber = "5CF6F98B6E5B2689"; + String fileName = "input.pdf"; + + SignServiceConfigVo configVo = new SignServiceConfigVo(); + configVo.setIp("10.0.2.71"); + configVo.setPort(8888L); + configVo.setConnectTimeout(30000L); + configVo.setReadTimeout(30000L); + + Map signParams = new HashMap<>(); + + // ================== 3. 调用签章方法 ================== + SignByCA signService = new SignByCA(); + + byte[] signedBytes = signService.sign( + pdfBytes, + signNumber, + configVo, + fileName, + signParams + ); + + // ================== 4. 保存签章后的 PDF ================== + File outputPdf = new File("C:\\Users\\szy\\Desktop\\FZ接口\\signed_output.pdf"); + try (FileOutputStream fos = new FileOutputStream(outputPdf)) { + fos.write(signedBytes); + } + + System.out.println("✅ 签章完成"); + System.out.println("📄 签章后文件:" + outputPdf.getAbsolutePath()); + } + @Override public byte[] sign(File signFile, String signNumber,SignServiceConfigVo configVo,String fileName, Map signParams) { //预留,暂不实现