เพิ่มลายเซ็นบาร์โค้ดลงใน PDF ด้วย GroupDocs.Signature Java
ในแอปพลิเคชันที่เน้นเอกสารสมัยใหม่, การเพิ่มลายเซ็นบาร์โค้ด เป็นวิธีที่รวดเร็วและเชื่อถือได้ในการทำให้ PDF สามารถอ่านได้โดยมนุษย์และสแกนได้โดยเครื่อง. บทแนะนำนี้จะพาคุณผ่านทุกขั้นตอน—ตั้งแต่การกำหนดค่า Maven, การจัดรูปแบบบาร์โค้ด, จนถึงการจัดการกรณีไฟล์ขนาดใหญ่—เพื่อให้คุณสามารถผสานลายเซ็นบาร์โค้ดเข้าในโครงการ Java ของคุณได้อย่างมั่นใจ.
คำตอบด่วน
- บรรทัดแรกของโค้ดเพื่อเริ่มการเซ็นคืออะไร?
Signature signature = new Signature("sample.pdf"); - ต้องใช้ Maven artifact ใด?
com.groupdocs:groupdocs-signature:23.10(เปลี่ยนเป็นเวอร์ชันล่าสุด) - ฉันสามารถเซ็น PDF ที่มีการป้องกันด้วยรหัสผ่านได้หรือไม่? ใช่—ส่งรหัสผ่านเมื่อสร้างอ็อบเจ็กต์
Signature. - บาร์โค้ดรูปแบบใดบ้างที่รองรับ? มากกว่า 30 รูปแบบ รวมถึง Code128, QR, DataMatrix, และ Aztec.
- ขนาด heap ที่แนะนำสำหรับ PDF ขนาด 100 MB คือเท่าไหร่? อย่างน้อย
-Xmx2g(2 GB) เพื่อหลีกเลี่ยงOutOfMemoryError.
ลายเซ็นบาร์โค้ดคืออะไร?
ลายเซ็นบาร์โค้ด คือบาร์โค้ดที่เครื่องอ่านได้ซึ่งฝังอยู่ใน PDF ทำหน้าที่เป็นเครื่องหมายบ่งชี้การปลอมแปลงและสามารถบรรจุข้อมูลที่กำหนดเอง เช่น รหัสประจำตัว, เวลาประทับ, หรือ URL. มันผสานการตรวจสอบด้วยภาพกับการสแกนอัตโนมัติ ทำให้เหมาะสำหรับการจัดการสินค้าคงคลัง, การปฏิบัติตามกฎระเบียบ, และการอัตโนมัติงานที่มีปริมาณสูง.
ทำไมต้องเพิ่มลายเซ็นบาร์โค้ดด้วย GroupDocs.Signature Java?
GroupDocs.Signature รองรับ กว่า 50 รูปแบบการนำเข้าและส่งออก, ประมวลผล PDF หลายร้อยหน้าโดยไม่ต้องโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ, และมี Java API ที่ใช้งานง่ายซึ่งให้คุณปรับแต่งรายละเอียดภาพของบาร์โค้ดได้อย่างละเอียด. ในการทดสอบเบนช์มาร์ค, การเซ็น PDF 150 หน้าโดยใช้บาร์โค้ด Code128 ใช้เวลา น้อยกว่า 1.2 วินาที บนอินสแตนซ์คลาวด์มาตรฐานที่มี 2 vCPU.
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะเริ่ม, โปรดตรวจสอบว่าคุณมีสิ่งต่อไปนี้:
- Java Development Kit (JDK) 8 หรือใหม่กว่า (แนะนำ JDK 11 หรือ 17 สำหรับการสนับสนุนระยะยาว)
- IDE (IntelliJ IDEA, Eclipse, หรือ VS Code พร้อมส่วนขยาย Java)
- เครื่องมือสร้าง (Maven 3.6+ หรือ Gradle 7.0+)
- ไลบรารี GroupDocs.Signature Java (เราจะอธิบายการตั้งค่า Maven & Gradle ด้านล่าง)
- ความคุ้นเคยพื้นฐานกับแนวคิด OOP ของ Java และโครงสร้างโปรเจกต์ Maven/Gradle
ไลบรารีและการพึ่งพาที่จำเป็น
GroupDocs.Signature ผสานรวมได้อย่างราบรื่นกับ Maven หรือ Gradle. เลือกเครื่องมือสร้างที่คุณใช้อยู่แล้ว:
Maven Setup
```xml
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Gradle Setup
```gradle
implementation 'com.groupdocs:groupdocs-signature:23.12'
หากคุณต้องการจัดการ JAR ด้วยตนเอง, ดาวน์โหลดเวอร์ชันล่าสุดจาก GroupDocs.Signature for Java releases แล้วเพิ่มลงใน classpath ของคุณ.
ขั้นตอนการรับใบอนุญาต
GroupDocs มีโมเดลใบอนุญาตสามแบบ:
- Free Trial – การเข้าถึงคุณสมบัติเต็มรูปแบบเป็นเวลา 30 วัน (ใส่ลายน้ำบน PDF ที่เซ็นแล้ว)
- Temporary License – การทดลองต่ออายุโดยไม่มีข้อจำกัดคุณสมบัติ (เหมาะสำหรับสายงานการพัฒนา)
- Full License – พร้อมใช้งานในการผลิต, รวมการสนับสนุนระดับสูงและไม่มีลายน้ำ
รับใบอนุญาตที่เหมาะสมได้ที่ GroupDocs Licensing. แม้ในช่วงทดลองคุณก็สามารถรันโค้ดได้ในเครื่องของคุณ; เพียงจำไว้ว่าให้เปลี่ยนคีย์ทดลองเป็นคีย์ถาวรก่อนเปิดใช้งานจริง.
วิธีเพิ่มลายเซ็นบาร์โค้ดลงใน PDF ด้วย GroupDocs.Signature Java?
คลาส Signature เป็นจุดเริ่มต้นหลักสำหรับการทำงานกับเอกสารใน GroupDocs.Signature.
คลาส BarcodeSignOptions ระบุข้อมูล, ประเภท, และลักษณะการแสดงผลของบาร์โค้ด.
โหลด PDF ต้นฉบับของคุณด้วย new Signature("source.pdf"), ตั้งค่าอ็อบเจ็กต์ BarcodeSignOptions ด้วยข้อมูลและสไตล์ที่ต้องการ, จากนั้นเรียก signature.sign("output.pdf", options). รูปแบบสามขั้นตอนนี้จัดการ I/O ของไฟล์, การสร้างบาร์โค้ด, และการเขียน PDF ในการเรียกเดียวที่ปลอดภัยต่อเธรด, และทำงานกับ PDF ตั้งแต่หลายกิโลไบต์จนถึงหลายร้อยเมกะไบต์.
ขั้นตอนที่ 1: เริ่มต้นอ็อบเจ็กต์ Signature
คลาส Signature เป็นจุดเริ่มต้นของ GroupDocs.Signature สำหรับการดำเนินการเซ็นทั้งหมด. มันแสดงถึงเอกสาร PDF หนึ่งไฟล์ในหน่วยความจำและใช้การโหลดแบบ lazy เพื่อรักษาการใช้หน่วยความจำให้ต่ำ.
```java
import com.groupdocs.signature.Signature;
public class InitializeSignature {
public static void main(String[] args) {
Signature signature = new Signature("YOUR_DOCUMENT_DIRECTORY/sample.pdf");
System.out.println("GroupDocs.Signature initialized successfully.");
}
}
คำอธิบาย:
filePathชี้ไปยัง PDF ต้นฉบับที่คุณต้องการเซ็น.outputFilePathคือที่ที่ PDF ที่เซ็นแล้วจะถูกบันทึก, รักษาไฟล์ต้นฉบับไว้.- บล็อก
try‑catchทำให้การจัดการข้อผิดพลาด I/O, ไฟล์หาย, หรือปัญหาการอนุญาตเป็นไปอย่างราบรื่น.
ขั้นตอนที่ 2: ตั้งค่า Barcode Sign Options
BarcodeSignOptions ให้คุณกำหนดคุณลักษณะทั้งหมดของบาร์โค้ด—ประเภท, ข้อมูล, ตำแหน่ง, สี, เส้นขอบ, และแม้กระทั่งว่าจะคืนภาพบาร์โค้ดดิบหรือไม่.
```java
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
import java.nio.file.Paths;
import java.io.File;
public class Feature1 {
public static void run() throws Exception {
String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY", "SignedOutputSample.pdf").getPath();
try {
Signature signature = new Signature(filePath);
System.out.println("Signature initialized and paths set.");
} catch (Exception e) {
throw new GroupDocsSignatureException(e.getMessage());
}
}
}
สรุปการตั้งค่าหลัก:
- Data & Type –
"12345678"คือข้อมูลที่ฝัง;BarcodeTypes.Code128ทำงานกับสตริงอัลฟานูเมอริกและได้รับการสนับสนุนอย่างกว้างขวางโดยสแกนเนอร์. - Positioning –
setLeft(100)และsetTop(100)เลื่อนบาร์โค้ด 100 px จากมุมบน‑ซ้าย;VerticalAlignment.Top+HorizontalAlignment.Rightปรับการจัดตำแหน่งตามออฟเซ็ตเหล่านั้น. - Margins & Padding – วัตถุ
Paddingเพิ่มบัฟเฟอร์ 20 px เพื่อหลีกเลี่ยงการตัดขอบที่ขอบหน้า. - Styling – เส้นขอบ, ฟอนต์, และแปรงพื้นหลังสามารถปรับแต่งได้ทั้งหมด; ในการผลิตคุณอาจละเว้นการใช้ gradient เพื่อเพิ่มความเร็วการเรนเดอร์.
- Return Content – การเปิดใช้งาน
setReturnContent(true)จะให้บาร์โค้ดเป็นbyte[], มีประโยชน์สำหรับการเก็บภาพในฐานข้อมูลหรือแสดงใน UI.
การกำหนดค่าที่พร้อมใช้งานในสภาพแวดล้อมการผลิต
สำหรับเอกสารทางกฎหมายที่เรียบง่าย คุณมักต้องการบาร์โค้ดสีดำบนพื้นขาวโดยไม่มีเส้นขอบเพิ่มเติม:
```java
import com.groupdocs.signature.domain.enums.*;
import com.groupdocs.signature.domain.Padding;
import com.groupdocs.signature.domain.Border;
import com.groupdocs.signature.domain.DashStyle;
import com.groupdocs.signature.domain.extensions.LinearGradientBrush;
import com.groupdocs.signature.domain.font.SignatureFont;
import java.awt.Color;
import com.groupdocs.signature.options.sign.BarcodeSignOptions;
public class Feature2 {
public static void configureBarcodeOptions() throws Exception {
BarcodeSignOptions signOptions = new BarcodeSignOptions("12345678");
signOptions.setEncodeType(BarcodeTypes.Code128);
signOptions.setLeft(100);
signOptions.setTop(100);
signOptions.setVerticalAlignment(VerticalAlignment.Top);
signOptions.setHorizontalAlignment(HorizontalAlignment.Right);
Padding padding = new Padding();
padding.setLeft(20);
padding.setTop(20);
signOptions.setMargin(padding);
Border border = new Border();
border.setColor(Color.GREEN);
border.setDashStyle(DashStyle.DashLongDashDot);
border.setWeight(2);
border.setTransparency(0.5);
border.setVisible(true);
signOptions.setBorder(border);
signOptions.setForeColor(Color.RED);
SignatureFont font = new SignatureFont();
font.setSize(12);
font.setFamilyName("Comic Sans MS");
signOptions.setFont(font);
signOptions.setCodeTextAlignment(CodeTextAlignment.Above);
Background background = new Background();
background.setColor(Color.GREEN);
background.setTransparency(0.5);
background.setBrush(new LinearGradientBrush(Color.GREEN, Color.DARK_GRAY, 0));
signOptions.setBackground(background);
signOptions.setReturnContent(true);
signOptions.setReturnContentType(FileType.PNG);
}
}
ขั้นตอนที่ 3: เซ็นเอกสาร
เมธอด sign จะนำบาร์โค้ดที่กำหนดไว้ไปใส่ใน PDF และเขียนผลลัพธ์ไปยังเส้นทางเป้าหมาย.
```java
signOptions.setEncodeType(BarcodeTypes.QR); // QR codes for more data
signOptions.setForeColor(Color.BLACK);
signOptions.setBackgroundColor(Color.WHITE);
// Remove border and fancy styling for professional appearance
ภายใต้การทำงาน:
signature.sign(outputFilePath, signOptions)เขียนบาร์โค้ดลงบน PDF ในขณะที่ไฟล์ต้นฉบับยังคงไม่เปลี่ยน.SignResultรายงานจำนวนลายเซ็นที่เพิ่ม, หน้าใดที่ถูกแก้ไข, และคำเตือนใด ๆ ที่เกิดขึ้น.- สำหรับงานแบบแบตช์, ห่อการเรียกนี้ใน
ExecutorServiceเพื่อทำงานแบบขนานบนคอร์ของ CPU.
ปัญหาทั่วไปและวิธีแก้
ปัญหา 1: FileNotFoundException ขณะเริ่มต้น
อาการ: แอปพลิเคชันโยน FileNotFoundException เมื่อสร้างอ็อบเจ็กต์ Signature.
สาเหตุหลัก:
- เส้นทางไฟล์ไม่ถูกต้อง (relative vs. absolute)
- ขาดสิทธิ์การอ่าน
- ไฟล์ถูกล็อกโดยกระบวนการอื่น (เช่น เปิดอยู่ใน Acrobat)
วิธีแก้:
```java
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
import com.groupdocs.signature.options.sign.BarcodeSignOptions;
import com.groupdocs.signature.domain.BaseSignature;
public class Feature3 {
public static void signDocument(String filePath, BarcodeSignOptions signOptions) throws Exception {
Signature signature = new Signature(filePath);
String outputFilePath = filePath.replace(".pdf", "_Signed.pdf");
try {
com.groupdocs.signature.domain.signatures.SignResult signResult = signature.sign(outputFilePath, signOptions);
System.out.println("Document signed successfully.");
} catch (Exception e) {
throw new GroupDocsSignatureException(e.getMessage());
}
}
}
ตรวจสอบให้แน่ใจว่าเส้นทางใช้เครื่องหมายทับหน้า (C:/Docs/sample.pdf) หรือหนีอักขระ backslash (C:\\Docs\\sample.pdf). ตรวจสอบสิทธิ์ของระบบปฏิบัติการและปิดโปรแกรมใด ๆ ที่อาจล็อกไฟล์.
ปัญหา 2: บาร์โค้ดไม่ปรากฏในผลลัพธ์
อาการ: การเซ็นเสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด, แต่บาร์โค้ดไม่ปรากฏ.
สาเหตุทั่วไป:
- การจัดตำแหน่งทำให้บาร์โค้ดอยู่นอกพื้นที่ที่พิมพ์ได้.
- ความโปร่งใสตั้งเป็น
1.0(โปร่งใสเต็มที่). - ขนาดฟอนต์ตั้งเป็น
0.
วิธีแก้:
- รักษาค่า
setLeft/setTopให้อยู่ในขนาดหน้ากระดาษ (0‑600 px สำหรับ A4 มาตรฐาน). - ใช้ค่าความโปร่งใสระหว่าง
0.0(ทึบ) ถึง0.9. - ตั้งขนาดฟอนต์ที่อ่านได้, เช่น
12pt.
ปัญหา 3: Out of Memory Errors กับเอกสารขนาดใหญ่
อาการ: OutOfMemoryError เมื่อประมวลผล PDF ที่ใหญ่กว่า ~50 MB.
วิธีแก้:
- เพิ่ม heap ของ JVM:
-Xmx2gหรือสูงกว่า ขึ้นกับขนาดเอกสาร. - ประมวลผล PDF ทีละหน้าโดยใช้ Streaming API ของ
Signature. - ปิดอ็อบเจ็กต์
Signatureอย่างชัดเจนหลังการดำเนินการแต่ละครั้งเพื่อปลดปล่อยทรัพยากรเนทีฟ.
```java
import java.nio.file.Files;
import java.nio.file.Path;
Path filePath = Path.of("YOUR_DOCUMENT_DIRECTORY/sample.pdf");
if (!Files.exists(filePath)) {
throw new IllegalArgumentException("PDF file not found: " + filePath);
}
if (!Files.isReadable(filePath)) {
throw new SecurityException("Cannot read PDF file: " + filePath);
}
// Now safe to initialize
Signature signature = new Signature(filePath.toString());
ปัญหา 4: Invalid Barcode Data Error
อาการ: API โยนข้อยกเว้นที่บ่นเกี่ยวกับอักขระที่ไม่รองรับ.
สาเหตุ: มาตรฐานบาร์โค้ดต่างกันรับชุดอักขระที่แตกต่างกัน. Code128 รองรับอัลฟานูเมอริก; QR รองรับ Unicode; บาร์โค้ด 1D บางประเภทรับเฉพาะตัวเลข.
วิธีแก้: เลือกประเภทบาร์โค้ดที่ตรงกับชุดข้อมูลของคุณ, หรือทำความสะอาดสตริงก่อนกำหนดให้กับ BarcodeSignOptions.
```java
String barcodeData = "ABC123"; // Your data
BarcodeTypes type = BarcodeTypes.Code128; // Alphanumeric support
// For numeric-only barcodes, validate first:
if (type == BarcodeTypes.EAN13 && !barcodeData.matches("\\d+")) {
throw new IllegalArgumentException("EAN13 requires numeric data only");
}
แนวทางปฏิบัติที่ดีที่สุดสำหรับการผลิต
1. ตรวจสอบ PDF ก่อนเซ็น
ตรวจสอบเสมอว่าไฟล์เป็น PDF ที่มีรูปแบบถูกต้องเพื่อหลีกเลี่ยงข้อผิดพลาดการพาร์สในขณะรัน.
```java
try (Signature signature = new Signature(filePath)) {
// If this succeeds, file is valid
signature.getDocumentInfo();
} catch (Exception e) {
// Handle invalid PDF
}
2. ใช้การประมวลผลแบบอะซิงโครนัสสำหรับงานปริมาณสูง
ย้ายการเซ็นไปยัง thread pool เบื้องหลัง; นี้จะป้องกัน UI ค้างและเพิ่มอัตราการทำงาน.
```java
ExecutorService executor = Executors.newFixedThreadPool(4);
List<String> pdfFiles = Arrays.asList("doc1.pdf", "doc2.pdf", "doc3.pdf");
pdfFiles.forEach(file -> {
executor.submit(() -> {
try {
signDocument(file, signOptions);
} catch (Exception e) {
// Log error
}
});
});
executor.shutdown();
3. ใช้การบันทึกแบบโครงสร้าง
บันทึกคำขอการเซ็นแต่ละรายการพร้อมเส้นทางอินพุต, เส้นทางเอาต์พุต, ข้อมูลบาร์โค้ด, และข้อยกเว้นใด ๆ. นี้ช่วยเร่งการวิเคราะห์หลังเหตุการณ์อย่างมาก.
```java
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(YourClass.class);
try {
SignResult result = signature.sign(outputFilePath, signOptions);
logger.info("Document signed successfully: {}", outputFilePath);
logger.debug("Signatures added: {}", result.getSucceeded().size());
} catch (Exception e) {
logger.error("Failed to sign document: {}", filePath, e);
}
4. ปรับแต่งการตั้งค่าบาร์โค้ดเพื่อความเร็ว
- ปิด
setReturnContent(true)หากคุณไม่ต้องการภาพแยก. - ใช้แปรงพื้นหลังแบบสีทึบแทน gradient.
- ไม่ใช้เส้นขอบสำหรับการติดตามแบบง่าย.
5. จัดการการหมดอายุใบอนุญาตชั่วคราวอย่างราบรื่น
คลาส License โหลดและตรวจสอบไฟล์ใบอนุญาตของ GroupDocs สำหรับ API. ตรวจสอบสถานะใบอนุญาตก่อนการดำเนินการเซ็นแต่ละครั้งและหากหมดอายุให้สลับเป็นโหมดอ่านอย่างเดียวหรือแจ้งผู้ดูแลระบบ.
```java
try {
License license = new License();
license.setLicense(licensePath);
} catch (Exception e) {
logger.warn("License validation failed. Using trial mode.");
// Continue with trial limitations
}
เมื่อใดควรใช้ลายเซ็นบาร์โค้ด
สถานการณ์ที่เหมาะสม
- Inventory & Logistics: แนบบาร์โค้ดที่สแกนได้กับใบกำกับการจัดส่ง, รายการบรรจุ, หรือแท็กสินทรัพย์.
- Regulatory Compliance: อุตสาหกรรมเช่นเภสัชกรรมต้องการบันทึกตรวจสอบที่เครื่องอ่านได้.
- Automated Document Pipelines: ผสานลายเซ็นบาร์โค้ดกับ OCR เพื่อให้กระบวนการทำงานแบบเริ่มต้นถึงสิ้นสุดโดยไม่ต้องป้อนข้อมูลด้วยมือ.
- High‑Volume Batch Jobs: บาร์โค้ดตรวจสอบได้เร็วกว่าลายเซ็นดิจิทัลแบบเข้ารหัสเมื่อสแกนเอกสารกระดาษจำนวนมาก.
เมื่อควรเลือกประเภทลายเซ็นอื่น
- Legal Contracts: ใช้ลายเซ็นดิจิทัลแบบ PKI (เช่น X.509) เพื่อความไม่ปฏิเสธ.
- Customer‑Facing PDFs: QR code มีความคุ้นเคยมากขึ้นบนอุปกรณ์มือถือ.
- Ultra‑Secure Documents: ผสานบาร์โค้ดกับลายเซ็นดิจิทัลที่เข้ารหัสเพื่อความปลอดภัยหลายชั้น.
เคล็ดลับ: คุณสามารถฝังหลายประเภทลายเซ็นใน PDF เดียว—เพิ่มบาร์โค้ดสำหรับการติดตามและใบรับรองดิจิทัลสำหรับความบังคับใช้ทางกฎหมาย.
คำถามที่พบบ่อย
Q: ฉันจะเพิ่มลายเซ็นบาร์โค้ดลงใน PDF ด้วย Java โดยไม่ต้องพึ่งพาไลบรารีภายนอกได้อย่างไร?
A: GroupDocs.Signature สำหรับ Java เป็นแพคเกจครบวงจร; หลังจากเพิ่ม Maven/Gradle artifact คุณจะได้การสร้างบาร์โค้ดและการเรนเดอร์ PDF อย่างเต็มรูปแบบโดยไม่ต้องใช้ไลบรารีของบุคคลที่สาม.
Q: ฉันสามารถตั้งค่า barcode sign options ใน Java เพื่อสร้าง QR code ได้หรือไม่?
A: แน่นอน. เปลี่ยนค่า enum BarcodeTypes เป็น QRCode และปรับพารามิเตอร์ขนาดตามต้องการ.
```java
signOptions.setEncodeType(BarcodeTypes.QR);
Q: การตั้งค่า Maven ที่แนะนำสำหรับการใช้งานในสภาพแวดล้อมการผลิตคืออะไร?
A: ระบุเวอร์ชันที่แน่นอนใน pom.xml (เช่น 23.10.0) เพื่อหลีกเลี่ยงการอัปเกรดโดยบังเอิญ, และเปิดใช้งานปลั๊กอิน Maven shade เพื่อสร้าง JAR ที่ทำงานได้เป็นไฟล์เดียว.
```xml
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version> <!-- Don't use LATEST -->
</dependency>
Q: ไลบรารีนี้รองรับ PDF ที่มีการป้องกันด้วยรหัสผ่านหรือไม่?
A: ใช่. ให้รหัสผ่านเมื่อสร้างอ็อบเจ็กต์ Signature, จากนั้นดำเนินการเซ็นตามปกติ.
```java
LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("your_pdf_password");
Signature signature = new Signature(filePath, loadOptions);
Q: ฉันสามารถเซ็นได้กี่หน้าภายในหนึ่งการดำเนินการ?
A: GroupDocs.Signature สามารถเข้าถึงทุกหน้าของ PDF พร้อมกันหรือกำหนดหน้าเฉพาะด้วย setPageNumber(). ประสิทธิภาพเพิ่มตามขนาดเชิงเส้น; PDF 200 หน้าเซ็นได้ประมาณ 2 วินาทีบน VM คลาวด์ทั่วไป.
Q: มีรูปแบบบาร์โค้ดใดบ้างนอกจาก Code128?
A: มากกว่า 30 รูปแบบ, รวมถึง QR, DataMatrix, Aztec, UPC‑A, EAN‑13, PDF417, และอื่น ๆ. ดู enum BarcodeTypes เพื่อรายการทั้งหมด.
Q: มีขีดจำกัดความยาวของข้อมูลบาร์โค้ดหรือไม่?
A: ขีดจำกัดความยาวขึ้นอยู่กับประเภทบาร์โค้ด; สำหรับ Code128 ขีดจำกัดเชิงปฏิบัติคือ 80 อักขระ, ส่วน QR code สามารถเก็บข้อมูลได้สูงสุด 4 KB.
Q: ฉันสามารถดึงภาพบาร์โค้ดที่สร้างหลังการเซ็นได้หรือไม่?
A: ตั้งค่า setReturnContent(true) และ setReturnContentType(FileType.PNG); SignResult จะมี byte[] ที่คุณสามารถเขียนลงดิสก์หรือฐานข้อมูลได้.
อัปเดตล่าสุด: 2026-07-25
ทดสอบกับ: GroupDocs.Signature 23.10 สำหรับ Java
ผู้เขียน: GroupDocs