วิธีลงนาม PDF ด้วย Java และ GroupDocs
บทนำ
หากคุณต้องการ how to sign pdf ไฟล์โดยอัตโนมัติในแอปพลิเคชัน Java คุณมาถูกที่แล้ว ลองนึกภาพระบบจัดการสัญญาองค์กรที่ต้องแนบลายเซ็นที่มีผลบังคับทางกฎหมายลงในทุก PDF ก่อนส่งให้ลูกค้า หากไม่มีโซลูชันการลงนามที่เชื่อถือได้ คุณจะเสี่ยงต่อการไม่เป็นไปตามข้อกำหนด การดัดแปลงข้อมูล และงานมือที่ไม่มีที่สิ้นสุด
ในบทแนะนำนี้คุณจะได้เรียนรู้วิธีเพิ่มลายเซ็นดิจิทัลลงในไฟล์ PDF ด้วย Java โดยใช้ GroupDocs.Signature เราจะครอบคลุมตั้งแต่การตั้งค่าสภาพแวดล้อมจนถึงการปรับแต่งลักษณะลายเซ็นที่มองเห็นได้ การจัดการเอกสารขนาดใหญ่ และการใช้แนวปฏิบัติด้านความปลอดภัยระดับการผลิต
เมื่อจบคู่มือคุณจะสามารถ:
- ติดตั้งและกำหนดค่า GroupDocs.Signature สำหรับ Java
- เริ่มต้นอ็อบเจกต์
Signatureและโหลด PDF - กำหนดค่า
DigitalSignOptionsด้วยใบรับรอง .pfx - ปรับแต่งลักษณะ ลำดับตำแหน่ง และขอบของลายเซ็น
- ลงนามเอกสาร ตรวจสอบผลลัพธ์ และจัดการกับข้อผิดพลาดทั่วไป
มาเริ่มกันและทำให้ PDF ของคุณปลอดภัยจากการดัดแปลงกันเถอะ
คำตอบสั้น ๆ
- ไลบรารีที่ใช้ลงนาม PDF ใน Java คืออะไร? GroupDocs.Signature for Java.
- รูปแบบใบรับรองที่ต้องการคืออะไร? ไฟล์ PKCS#12 (.pfx) ที่มีคีย์ส่วนตัว.
- สามารถลงนามทุกหน้าได้พร้อมกันหรือไม่? ได้—ตั้งค่า
allPages(true)ในตัวเลือก. - จะเพิ่ม timestamp อย่างไร? กำหนด
options.setTimestampOptions(...)พร้อม URL ของ TSA ที่เชื่อถือได้. - เวอร์ชัน Java ที่รองรับคืออะไร? JDK 8 หรือสูงกว่า; แนะนำ JDK 11 สำหรับการผลิต.
“how to sign pdf” คืออะไร?
how to sign pdf หมายถึงกระบวนการใส่ลายเซ็นดิจิทัลที่เข้ารหัสอย่างปลอดภัยลงในเอกสาร PDF เพื่อให้สามารถตรวจสอบความสมบูรณ์และผู้เขียนได้ GroupDocs.Signature ปฏิบัติตามมาตรฐาน PDF ISO 32000‑1 ทำให้ลายเซ็นได้รับการยอมรับจาก Adobe Acrobat และโปรแกรมอ่านอื่น ๆ
ทำไมต้องใช้ GroupDocs.Signature สำหรับ Java?
GroupDocs.Signature รองรับ 50+ รูปแบบไฟล์เข้าและออก สามารถประมวลผล PDF ที่มี 500+ หน้า โดยไม่ต้องโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ และมีฟีเจอร์ timestamp ในตัว API ช่วยให้คุณสร้างบล็อกลายเซ็นที่ดูเป็นมืออาชีพด้วยเพียงไม่กี่บรรทัดโค้ด ลดความพยายามในการพัฒนาอย่างมากเมื่อเทียบกับไลบรารี PDF ระดับล่าง
ข้อกำหนดเบื้องต้น
- ความรู้ Java – ความคุ้นเคยพื้นฐานกับคลาส, อ็อบเจกต์, และ Maven/Gradle
- IDE – IntelliJ IDEA, Eclipse หรือเครื่องมือแก้ไขที่รองรับ Java ใด ๆ
- เครื่องมือสร้าง – Maven หรือ Gradle (ครอบคลุมทั้งสอง)
- ใบรับรองดิจิทัล – ไฟล์ .pfx (self‑signed สำหรับการทดสอบ, CA‑issued สำหรับการผลิต)
- JDK – เวอร์ชัน 8 หรือใหม่กว่า; แนะนำ JDK 11 หรือสูงกว่าเพื่อประสิทธิภาพที่ดีที่สุด
เกี่ยวกับใบรับรองดิจิทัล
ใบรับรองดิจิทัลคือบัตรประจำตัวอิเล็กทรอนิกส์ของคุณ สำหรับการใช้งานในสภาพแวดล้อมการผลิตให้รับจากผู้ให้บริการใบรับรองที่เชื่อถือได้ (CA) เช่น DigiCert หรือ GlobalSign สำหรับการพัฒนา คุณสามารถสร้างใบรับรอง self‑signed ด้วย keytool (ดูส่วน “การพัฒนา/ทดสอบ” ด้านล่าง)
การตั้งค่า GroupDocs.Signature สำหรับ Java
การติดตั้งด้วย Maven
เพิ่ม dependency ต่อไปนี้ในไฟล์ pom.xml ของคุณ:
<!-- ```xml
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
``` -->
ทำไมต้องเวอร์ชัน 23.12? เป็นรุ่นที่เสถียรและรวมฟีเจอร์การลงนาม PDF ทั้งหมดไว้แล้ว และผ่านการทดสอบในสภาพแวดล้อมองค์กร เวอร์ชันที่ใหม่กว่าจะเข้ากันได้ต่อไป แต่ 23.12 รับประกัน API ที่ใช้ในบทแนะนำนี้
การติดตั้งด้วย Gradle
หากคุณใช้ Gradle ให้เพิ่มบรรทัดต่อไปนี้ใน build.gradle:
// ```gradle
implementation 'com.groupdocs:groupdocs-signature:23.12'
แก้ไขไฟล์แล้วให้ซิงค์โปรเจกต์เพื่อดาวน์โหลดไลบรารี—การข้ามขั้นตอนนี้เป็นสาเหตุทั่วไปของข้อผิดพลาด “class not found”
การจัดการไลเซนส์
GroupDocs.Signature เป็นผลิตภัณฑ์เชิงพาณิชย์ เลือกตัวเลือกที่เหมาะกับไทม์ไลน์ของคุณ:
- Free trial – เหมาะสำหรับการประเมินผล Grab it here
- Temporary license – ระยะเวลาประเมินที่ต่ออายุได้ Request one
- Full license – พร้อมใช้งานในสภาพแวดล้อมการผลิต Purchase here
Free trial เพียงพอสำหรับทำตามบทแนะนำนี้
วิธีลงนาม PDF ด้วย Java อย่างเป็นโปรแกรม: การทำงานแบบขั้นตอนต่อขั้นตอน
ต่อไปนี้เราจะแบ่งการทำงานออกเป็นส่วนย่อย ๆ แบบคำถาม‑ตอบ แต่ละส่วนเริ่มด้วยคำตอบสั้น ๆ (40‑70 คำ) ตามด้วยคำอธิบายและโค้ดตัวอย่าง
จะเริ่มต้นอ็อบเจกต์ Signature อย่างไร?
สร้างอินสแตนซ์ Signature ที่ห่อไฟล์ PDF เป้าหมาย; การทำเช่นนี้จะโหลดเอกสารเข้าสู่หน่วยความจำและเตรียมพร้อมสำหรับการลงนาม
// ```java
Signature signature = new Signature("YOUR_DOCUMENT_DIRECTORY/samplePdf.pdf");
Definition anchor: คลาส Signature เป็นจุดเริ่มต้นของ GroupDocs.Signature สำหรับการโหลด, แก้ไข, และบันทึกไฟล์ PDF
จะกำหนดค่า digital sign options อย่างไร?
ตั้งค่าที่อยู่ของใบรับรอง, รหัสผ่าน, เหตุผล, และตำแหน่ง ค่าต่าง ๆ นี้จะเป็นส่วนหนึ่งของลายเซ็นเชิงเข้ารหัสและจะแสดงในโปรแกรมอ่าน PDF
// ```java
DigitalSignOptions options = new DigitalSignOptions("YOUR_DOCUMENT_DIRECTORY/certificate.pfx");
options.setPassword("1234567890"); // รหัสผ่านของใบรับรองของคุณ
options.setReason("Approved"); // เหตุผลการลงนาม (ปรากฏในเมตาดาต้า PDF)
options.setLocation("New York"); // สถานที่ที่ทำการลงนาม
Definition anchor: DigitalSignOptions รวมพารามิเตอร์ทั้งหมดที่จำเป็นสำหรับลายเซ็นดิจิทัล รวมถึงการแสดงผลและการตั้งค่าการเข้ารหัส
จะปรับแต่งลักษณะของลายเซ็นอย่างไร?
ปรับ label, สัญลักษณ์, สีพื้นหลัง, และฟอนต์ให้สอดคล้องกับแบรนด์หรือแนวทางการปฏิบัติตาม
// ```java
PdfDigitalSignatureAppearance appearance = new PdfDigitalSignatureAppearance();
appearance.setContactInfoLabel("");
appearance.setReasonLabel("R:");
appearance.setLocationLabel("@⇒");
appearance.setDigitalSignedLabel("By:");
appearance.setDateSignedAtLabel("On");
appearance.setBackground(java.awt.Color.red);
appearance.setFontFamilyName("Courier");
appearance.setFontSize(8);
options.setAppearance(appearance);
Definition anchor: SignatureAppearance กำหนดการแสดงผลของบล็อกลายเซ็นที่ผู้ใช้เห็นใน PDF
จะกำหนดตำแหน่งและขนาดของบล็อกลายเซ็นอย่างไร?
ระบุหน้าที่จะลงนาม, มิติ, การจัดแนว, และระยะขอบเพื่อควบคุมตำแหน่งที่ลายเซ็นปรากฏอย่างแม่นยำ
// ```java
options.setAllPages(true); // ลงนามทุกหน้า
options.setWidth(160); // ความกว้างเป็นพิกเซล
options.setHeight(80); // ความสูงเป็นพิกเซล
options.setVerticalAlignment(VerticalAlignment.Center);
options.setHorizontalAlignment(HorizontalAlignment.Left);
options.setMargin(new Padding(0, 10, 0, 10)); // ระยะขอบบน, ขวา, ล่าง, ซ้าย
Definition anchor: SignatureOptions (หรือ subclass) ควบคุมการวางตำแหน่ง, ขนาด, และขอบเขตของลายเซ็นที่มองเห็นได้
จะเพิ่มขอบกรอบให้ลายเซ็นอย่างไร?
ขอบกรอบทำให้ลายเซ็นโดดเด่นและบ่งบอกให้ผู้ตรวจสอบเห็นพื้นที่ลงนาม
// ```java
Border border = new Border();
border.setVisible(true);
border.setColor(java.awt.Color.red);
border.setDashStyle(DashStyle.DashDot);
border.setWeight(2); // ความหนาเป็นพิกเซล
options.setBorder(border);
Definition anchor: Border กำหนดสไตล์เส้น, ความหนา, และการมองเห็นของกรอบลายเซ็น
จะลงนามเอกสารและบันทึกผลลัพธ์อย่างไร?
เรียก sign พร้อมตัวเลือกที่กำหนด; เมธอดจะคืนค่า SignResult ที่บ่งบอกความสำเร็จและคำเตือนใด ๆ
// ```java
SignResult signResult = signature.sign("YOUR_OUTPUT_DIRECTORY/digitallySignedPdfAppearance.pdf", options);
Definition anchor: SignResult ให้รายละเอียดเกี่ยวกับการดำเนินการลงนาม รวมถึงจำนวนหน้าที่ลงนามสำเร็จ
จะตรวจสอบว่าการลงนามสำเร็จหรือไม่อย่างไร?
ตรวจสอบอ็อบเจกต์ SignResult; หาก isSuccessful() คืนค่า true แสดงว่า PDF มีลายเซ็นดิจิทัลที่ถูกต้องแล้ว
// ```java
if (signResult.getSucceeded().size() > 0) {
System.out.println("Document signed successfully!");
} else {
System.err.println("Signing failed: " + signResult.getFailed());
}
ปัญหาที่พบบ่อยและวิธีหลีกเลี่ยง
ปัญหา 1: ข้อผิดพลาด “Certificate Not Found”
คำตอบโดยตรง: ตรวจสอบให้แน่ใจว่าเส้นทางไฟล์ .pfx เป็นแบบ absolute ระหว่างการพัฒนาและเก็บใบรับรองอยู่นอกโฟลเดอร์แอปพลิเคชันในสภาพการผลิต โดยอ้างอิงผ่านตัวแปรสภาพแวดล้อม
// ```java
String certPath = System.getenv("CERTIFICATE_PATH");
DigitalSignOptions options = new DigitalSignOptions(certPath);
ปัญหา 2: ข้อยกเว้น Invalid Password
คำตอบโดยตรง: ยืนยันว่ารหัสผ่านตรงกับที่ใช้สร้างใบรับรอง; รหัสผ่านแยกตัวพิมพ์ใหญ่‑เล็กและควรดึงจากคลังความลับแทนการเขียนตรงในโค้ด
// ```java
// Good practice
DigitalSignOptions options = new DigitalSignOptions("cert.pfx");
signature.sign("output.pdf", options);
// Later, for a different document
DigitalSignOptions newOptions = new DigitalSignOptions("cert.pfx"); // Fresh object
signature.sign("output2.pdf", newOptions);
ปัญหา 3: ลายเซ็นปรากฏบนหน้าไม่ถูกต้อง
คำตอบโดยตรง: สร้างอ็อบเจกต์ DigitalSignOptions ใหม่สำหรับแต่ละการลงนาม; การใช้เดียวกันหลายครั้งอาจทำให้การตั้งค่าหน้าเก่าถูกคงไว้
// ```java
options.setWidth(320); // แทน 160
options.setHeight(160); // แทน 80
ปัญหา 4: ลายเซ็นแสดงเป็นภาพเบลอ
คำตอบโดยตรง: เพิ่มมิติพิกเซลของบล็อกลายเซ็น (เช่น ความกว้าง = 320, ความสูง = 160) เพื่อให้ได้การเรนเดอร์ 300 DPI ที่เหมาะกับการพิมพ์
// ```bash
java -Xmx2G -jar your-application.jar
ปัญหา 5: OutOfMemoryError กับ PDF ขนาดใหญ่
คำตอบโดยตรง: เพิ่ม heap memory (-Xmx2g) และปิดอ็อบเจกต์ Signature หลังการใช้งาน; มัน implements AutoCloseable เพื่อปล่อยทรัพยากร native
// ```java
try (Signature signature = new Signature("document.pdf")) {
signature.sign("signed.pdf", options);
} // Automatically releases resources
แนวปฏิบัติด้านความปลอดภัยสำหรับการผลิต
อย่าใส่รหัสผ่านใบรับรองลงในโค้ด
เก็บรหัสผ่านใน secret manager (AWS Secrets Manager, Azure Key Vault, HashiCorp Vault) แล้วโหลดใน runtime
// ```java
// BAD - Don't do this
options.setPassword("1234567890");
// GOOD - Load from environment or vault
String password = System.getenv("CERT_PASSWORD");
options.setPassword(password);
จำกัดสิทธิ์การเข้าถึงไฟล์ใบรับรอง
บน Linux ตั้งสิทธิ์เป็น 400 (อ่าน‑อย่างเดียวสำหรับเจ้าของ) เพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
// ```bash
chmod 400 /secure/certificates/signing-cert.pfx
ใช้ timestamping เพื่อความคงทนระยะยาว
เพิ่มเซิร์ฟเวอร์ Timestamp Authority (TSA) ที่เชื่อถือได้เพื่อให้ลายเซ็นยังคงมีผลหลังใบรับรองหมดอายุ
// ```java
options.setTimestampUrl("http://timestamp.digicert.com");
ตรวจสอบลายเซ็นหลังการลงนาม
ทำการตรวจสอบเพิ่มเติมเพื่อให้แน่ใจว่าลายเซ็นถูกฝังอย่างถูกต้องและอ่านได้โดยโปรแกรมอ่าน PDF
// ```java
SignResult result = signature.sign("output.pdf", options);
if (result.getSucceeded().size() > 0) {
// Verify the signature
VerifyResult verifyResult = signature.verify();
if (!verifyResult.isValid()) {
throw new SecurityException("Signature verification failed!");
}
}
บันทึกการลงนามทุกครั้ง
เก็บ audit trail ที่มีรายละเอียด เช่น user ID, document ID, timestamp, และ thumbprint ของใบรับรอง
// ```java
logger.info("Document signed: {}, User: {}, Timestamp: {}",
documentName, currentUser, LocalDateTime.now());
การเลือกใบรับรองที่เหมาะกับกรณีการใช้งานของคุณ
Development / Testing – Self‑Signed
สร้างอย่างรวดเร็วด้วย keytool ของ Java; เหมาะสำหรับการสาธิตภายในองค์กร แต่ ไม่ เหมาะกับเอกสารที่ต้องการบังคับทางกฎหมาย
// ```bash
keytool -genkeypair -alias testcert -keyalg RSA -keysize 2048 \
-keystore test.pfx -storetype PKCS12 -validity 365
Production – Commercial CA
ซื้อ Document Signing Certificate (DigiCert, GlobalSign) ราคา $70‑$400 ต่อปี ใบรับรองเหล่านี้ได้รับการยอมรับจากโปรแกรมอ่าน PDF ทุกตัว
Enterprise – Internal CA
จัดตั้ง Certificate Authority ขององค์กรเองเพื่อออกใบรับรองไม่จำกัดจำนวนภายในองค์กร จำไว้ว่า CA ภายในจะไม่ถูกเชื่อถือจากภายนอกองค์กร
กรณีการใช้งานจริงและการนำไปใช้
ระบบจัดการสัญญา
- เป้าหมาย: ลงนามทุกหน้าของ NDA หลายหน้า
- การนำไปใช้:
allPages(true), วางตำแหน่งด้านล่าง‑ขวา, ใช้ timestamp server, บันทึก audit log - เคล็ดลับประสิทธิภาพ: ประมวลผลสัญญาเป็นชุดแบบขนานโดยใช้ thread pool ขนาดคงที่
ระบบอัตโนมัติใบแจ้งหนี้
- เป้าหมาย: เพิ่มลายเซ็นแบบลับบนหน้าแรกของใบแจ้งหนี้
- การนำไปใช้:
allPages(false), ลักษณะการแสดงผลน้อยที่สุด, ไม่มีขอบ, ใช้โลโก้บริษัทเป็นภาพพื้นหลัง
ระบบบันทึกการแพทย์ (HIPAA)
- เป้าหมาย: ยืนยันว่าบันทึกการจำหน่ายผู้ป่วยลงนามโดยแพทย์ผู้ดูแล
- การนำไปใช้: ใส่ข้อมูลผู้แพทย์ในลักษณะลายเซ็น, ใช้ใบรับรอง CA ระดับสูง, คีย์ส่วนตัวต้องได้รับการปกป้องด้วยสองปัจจัย
การประมวลผลเอกสารของรัฐบาล
- เป้าหมาย: ใช้ลำดับการอนุมัติหลายขั้นตอน (หลายลายเซ็น) บนแบบฟอร์มภาครัฐ
- การนำไปใช้: เรียก
signอย่างต่อเนื่องด้วยDigitalSignOptionsที่แตกต่างกัน, แต่ละอันมีใบรับรองและ timestamp ของตนเอง
เคล็ดลับการเพิ่มประสิทธิภาพ
ใช้อ็อบเจกต์ Signature ซ้ำสำหรับงานแบช
// ```java
try (Signature signature = new Signature("template.pdf")) {
for (Document doc : documents) {
signature.sign(doc.getOutputPath(), getOptionsForDoc(doc));
}
}
แคชใบรับรองที่โหลดแล้ว
// ```java
// Load certificate once
DigitalSignOptions baseOptions = new DigitalSignOptions("cert.pfx");
baseOptions.setPassword(certPassword);
// Clone for each document
for (Document doc : documents) {
DigitalSignOptions options = baseOptions.clone();
options.setReason(doc.getReason());
signature.sign(doc.getPath(), options);
}
ปรับจูน JVM สำหรับ throughput สูง
// ```bash
java -Xmx4G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar app.jar
ลงนามเอกสารแบบอะซิงโครนัส
// ```java
CompletableFuture.supplyAsync(() -> {
signature.sign(outputPath, options);
return "Success";
}).thenAccept(result -> notifyUser(result));
คู่มือแก้ไขปัญหา
| ปัญหา | ตรวจสอบอย่างรวดเร็ว | วิธีแก้ |
|---|---|---|
| ลายเซ็นไม่ปรากฏ | border.setVisible(true)? ความกว้าง/ความสูง > 0? พิกัดอยู่นอกหน้า? | ตั้งค่าพื้นหลังสีสว่างชั่วคราวเพื่อหาตำแหน่งบล็อก |
| “Invalid Certificate” | ตรวจสอบวันหมดอายุ (keytool -list -v -keystore cert.pfx). | ใช้ใบรับรองที่ยังไม่หมดอายุ; แปลงเป็น PKCS#12 หากจำเป็น |
| PDF ที่ลงนามไม่เปิดได้ | พื้นที่ดิสก์? สิทธิ์ไฟล์? ความเข้ากันได้ของเวอร์ชัน PDF? | อย่าแก้ไขไฟล์ต้นฉบับ; เขียน PDF ที่ลงนามไปยังเส้นทางใหม่ |
คำถามที่พบบ่อย
ถาม: สามารถใช้ GroupDocs.Signature ฟรีในสภาพการผลิตได้หรือไม่?
ตอบ: ไม่ได้ การทดลองใช้ฟรีมีไว้เพื่อประเมินเท่านั้น การใช้งานในสภาพการผลิตต้องซื้อไลเซนส์
ถาม: ความแตกต่างระหว่าง digital signature กับ electronic signature คืออะไร?
ตอบ: Digital signature ใช้ใบรับรองเข้ารหัสเพื่อรับประกันความถูกต้องและตรวจจับการดัดแปลง ส่วน electronic signature เป็นเพียงการแสดงผลดิจิทัลของลายเซ็นมือเขียน
ถาม: สามารถลงนาม PDF ที่มีการป้องกันด้วยรหัสผ่านได้หรือไม่?
ตอบ: ได้—ให้รหัสผ่านของ PDF เมื่อเปิดไฟล์
// ```java
LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("pdfPassword");
Signature signature = new Signature("protected.pdf", loadOptions);
คุณสามารถดาวน์โหลดไลบรารีเวอร์ชันล่าสุดจากหน้าอย่างเป็นทางการ: Grab it here.
สำหรับไลเซนส์การประเมินชั่วคราว ใช้แบบฟอร์มขอ: Request one.
เมื่อพร้อมสำหรับการผลิต ให้ซื้อไลเซนส์เต็มรูปแบบ: Purchase here หรือ purchase a license.
ถาม: จะใส่หลายลายเซ็นใน PDF เดียวอย่างไร?
ตอบ: เรียก sign ซ้ำหลายครั้งด้วย DigitalSignOptions ที่ต่างกัน หรือส่งอาร์เรย์ของตัวเลือกเพื่อทำการลงนามต่อเนื่อง
ถาม: ลายเซ็นจะทำงานบนโปรแกรมอ่าน PDF บนมือถือหรือไม่?
ตอบ: แน่นอน GroupDocs.Signature สร้างลายเซ็นตามมาตรฐาน ISO ที่แสดงผลถูกต้องใน Adobe Reader, iOS Preview, และ Android PDF viewers
ถาม: การลงนาม PDF ปกติใช้เวลาเท่าไหร่?
ตอบ: ไฟล์ 10‑หน้าใช้เวลาประมาณ ~200‑500 ms บน CPU สมัยใหม่; ไฟล์ 100‑หน้า พร้อม timestamp อาจใช้ 1‑3 วินาที
ถาม: จะเกิดอะไรขึ้นหากใบรับรองหมดอายุหลังการลงนาม?
ตอบ: หากใช้เซิร์ฟเวอร์ timestamp, ลายเซ็นจะยังคงเป็นที่เชื่อถือได้ เพราะ TSA ยืนยันว่าการลงนามเกิดขึ้นในช่วงที่ใบรับรองยังเป็นที่เชื่อถือ
ขั้นตอนต่อไปและการเรียนรู้เพิ่มเติม
- การตรวจสอบลายเซ็น – เรียนรู้วิธีตรวจสอบลายเซ็นที่มีอยู่โดยโปรแกรม
- การลงนามแบบแบช – ขยายขนาดการทำงานเป็นพันเอกสารด้วยรูปแบบขนานที่แสดงด้านบน
- ลายเซ็นแบบ QR‑code – ฝังโค้ดที่สแกนได้เพื่อการตรวจสอบอย่างรวดเร็ว
- การบูรณาการ – เชื่อมต่อบริการลงนามกับ SharePoint, Alfresco หรือ REST API ของคุณเอง
แหล่งข้อมูลที่เป็นประโยชน์
- เอกสาร: GroupDocs.Signature Java Docs – อ้างอิง API ฉบับเต็ม
- API Reference: Java API Reference – รายละเอียดเมธอดและตัวอย่าง
อัปเดตล่าสุด: 2026-06-26
ทดสอบกับ: GroupDocs.Signature 23.12 for Java
ผู้เขียน: GroupDocs