วิธีลงนาม 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 เป็นผลิตภัณฑ์เชิงพาณิชย์ เลือกตัวเลือกที่เหมาะกับไทม์ไลน์ของคุณ:

  1. Free trial – เหมาะสำหรับการประเมินผล Grab it here
  2. Temporary license – ระยะเวลาประเมินที่ต่ออายุได้ Request one
  3. 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 ของคุณเอง

แหล่งข้อมูลที่เป็นประโยชน์


อัปเดตล่าสุด: 2026-06-26
ทดสอบกับ: GroupDocs.Signature 23.12 for Java
ผู้เขียน: GroupDocs

บทเรียนที่เกี่ยวข้อง