Tandatangani PDF dengan barcode menggunakan HIBC di Java

Jika Anda membangun perangkat lunak logistik farmasi atau perawatan kesehatan, Anda mungkin telah menghadapi masalah pelacakan berbasis kertas, tanda tangan yang hilang, dan mimpi buruk audit. Menandatangani PDF dengan barcode—terutama Data Matrix HIBC atau kode QR—menciptakan jejak yang tahan manipulasi dan dapat dibaca mesin yang bertahan melalui pencetakan, pemindaian, dan tinjauan regulasi. Dalam tutorial ini Anda akan melihat secara tepat cara menambahkan barcode Data Matrix dan QR ke PDF menggunakan GroupDocs.Signature untuk Java.

Jawaban Cepat

  • Perpustakaan apa yang menangani barcode HIBC di Java? GroupDocs.Signature untuk Java.
  • Format barcode apa yang paling kompak? Data Matrix – ideal untuk label kecil.
  • Bisakah saya menambahkan QR dan Data Matrix ke PDF yang sama? Ya, cukup buat QrCodeSignOptions terpisah.
  • Apakah saya memerlukan koneksi internet saat runtime? Tidak, perpustakaan berfungsi sepenuhnya offline setelah instalasi.
  • Versi Java apa yang direkomendasikan? Java 11+ untuk kinerja produksi.

Apa itu penandatanganan PDF dengan barcode HIBC?

Signature adalah kelas inti GroupDocs.Signature yang mewakili dokumen PDF dan memungkinkan penyisipan tanda tangan digital. Kelas Signature dalam GroupDocs.Signature untuk Java menyediakan metode untuk menyematkan barcode HIBC sebagai tanda tangan digital. Dengan menandatangani PDF menggunakan barcode HIBC, Anda membuat catatan yang dapat diverifikasi dan tahan manipulasi yang dapat dipindai pada titik mana pun dalam rantai pasokan.

Mengapa menggunakan Data Matrix dan kode QR bersama-sama?

Data Matrix menawarkan jejak terkecil sambil dapat menampung hingga 2.335 karakter alfanumerik, menjadikannya sempurna untuk area label yang padat. Kode QR, di sisi lain, mendukung hingga 4.296 karakter dan dapat dibaca secara universal oleh smartphone. Menggabungkan keduanya memberi Anda keseimbangan terbaik antara efisiensi ruang dan kapasitas data, memastikan setiap pemangku kepentingan—dari pemindai gudang hingga aplikasi seluler—dapat membaca informasi yang mereka butuhkan.

Prasyarat

  • JDK 11 atau lebih tinggi (Java 8 dapat digunakan tetapi Java 11+ direkomendasikan untuk kinerja optimal).
  • IDE seperti IntelliJ IDEA, Eclipse, atau VS Code dengan ekstensi Java.
  • Maven atau Gradle untuk manajemen dependensi (contoh di bawah).
  • PDF contoh (misalnya sample.pdf) untuk menguji implementasi.
  • Lisensi GroupDocs.Signature yang valid (percobaan gratis untuk pengembangan, lisensi berbayar untuk produksi).

Menyiapkan GroupDocs.Signature untuk Java

Konfigurasi Maven

Tambahkan dependensi ke pom.xml Anda:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-signature</artifactId>
    <version>23.12</version>
</dependency>

Konfigurasi Gradle

Untuk proyek Gradle, tambahkan ini ke build.gradle Anda:

implementation 'com.groupdocs:groupdocs-signature:23.12'

Opsi unduhan langsung

Anda juga dapat mengunduh file JAR secara langsung dari rilisan GroupDocs.Signature untuk Java dan menambahkannya ke classpath proyek Anda secara manual. Pendekatan ini bekerja dengan baik di lingkungan jaringan terbatas.

Mendapatkan lisensi

Minta percobaan gratis atau lisensi sementara dari GroupDocs untuk menghapus watermark dan membuka semua fitur. Penyebaran produksi memerlukan lisensi yang dibeli.

Inisialisasi dasar

Signature adalah titik masuk untuk semua operasi penandatanganan. Ia memuat PDF, menerapkan barcode, dan menulis file yang ditandatangani.

import com.groupdocs.signature.Signature;

class InitializeSignature {
    public static void main(String[] args) {
        Signature signature = new Signature("sample.pdf");
        // Proceed with signing operations...
    }
}

Cara membuat PDF Data Matrix dengan barcode HIBC?

Instansiasi Signature dengan PDF sumber Anda, atur QrCodeSignOptions ke format Data Matrix, berikan string HIBC yang diformat dengan benar, dan panggil sign(). Perpustakaan menulis PDF yang ditandatangani ke tujuan, mempertahankan tata letak dan menyematkan barcode sebagai tanda tangan yang tahan manipulasi.

QrCodeSignOptions menentukan jenis barcode, konten, ukuran, dan penempatan untuk sebuah tanda tangan.

  1. Impor kelas yang diperlukan – ini memberi Anda akses ke mesin tanda tangan dan opsi Data Matrix.
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
  1. Instansiasi objek Signature dengan jalur absolut untuk file sumber dan tujuan.
String sourceFilePath = "YOUR_DOCUMENT_DIRECTORY";
String destinFilePath = "YOUR_OUTPUT_DIRECTORY/SignWithHIBCLICQR.pdf";

final Signature signature = new Signature(sourceFilePath);
  1. Konfigurasikan opsi Data Matrix – atur string HIBC, pilih QrCodeTypes.HIBCLICDataMatrix, dan tentukan koordinat penempatan. QrCodeTypes mengenumerasi format barcode yang didukung untuk tanda tangan HIBC.
QrCodeSignOptions hibcLic_QR = new QrCodeSignOptions("A123PROD30917/75#422011907#GP293", QrCodeTypes.HIBCLICQR);
hibcLic_QR.setLeft(1); // Set the position from left
hibcLic_QR.setTop(1);   // Set the position from top
hibcLic_QR.setReturnContent(true); // Return content after signing
hibcLic_QR.setReturnContentType(FileType.PNG); // Specify return content type as PNG
  1. Terapkan tanda tangan ke PDF.
signature.sign(destinFilePath, hibcLic_QR);
  1. Bebaskan sumber daya untuk melepaskan handle file dan menghindari kebocoran memori.
finally {
    if (signature != null) signature.dispose();
}

Contoh kerja lengkap

Berikut alur lengkap dalam satu blok (placeholder mewakili kode tepat yang akan Anda tempel dari cuplikan sebelumnya):

import com.groupdocs.signature.Signature;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;

public class HibcQrSigning {
    public static void main(String[] args) {
        String sourceFilePath = "sample.pdf";
        String destinFilePath = "output/SignWithHIBCLICQR.pdf";
        
        Signature signature = null;
        try {
            signature = new Signature(sourceFilePath);
            
            QrCodeSignOptions hibcLic_QR = new QrCodeSignOptions(
                "A123PROD30917/75#422011907#GP293", 
                QrCodeTypes.HIBCLICQR
            );
            hibcLic_QR.setLeft(1);
            hibcLic_QR.setTop(1);
            hibcLic_QR.setReturnContent(true);
            hibcLic_QR.setReturnContentType(FileType.PNG);
            
            signature.sign(destinFilePath, hibcLic_QR);
            System.out.println("PDF signed successfully with HIBC QR code");
            
        } catch (Exception e) {
            System.err.println("Error signing PDF: " + e.getMessage());
            e.printStackTrace();
        } finally {
            if (signature != null) signature.dispose();
        }
    }
}

Jawaban langsung (40–70 kata)

Untuk membuat PDF Data Matrix, instansiasi Signature dengan PDF sumber Anda, atur QrCodeSignOptions ke QrCodeTypes.HIBCLICDataMatrix dan berikan string HIBC yang diformat dengan benar, kemudian panggil signature.sign(outputPath, options). Perpustakaan menulis PDF yang ditandatangani ke tujuan, mempertahankan tata letak dan menyematkan barcode sebagai tanda tangan yang tahan manipulasi.

Cara menambahkan QR code PDF menggunakan GroupDocs.Signature?

Muat PDF, konfigurasikan QrCodeSignOptions untuk format QR, dan panggil sign(). Perpustakaan memperbesar gambar QR untuk keterbacaan dan menempatkannya berdasarkan koordinat yang Anda tentukan, menghindari tumpang tindih dengan konten yang ada. Ini memastikan barcode tetap dapat dipindai setelah pencetakan dan mematuhi standar HIBC.

QrCodeSignOptions mendefinisikan konten, ukuran, dan posisi barcode QR.

  1. Impor kelas khusus QR
QrCodeSignOptions hibcLic_AZ = new QrCodeSignOptions("A123PROD30917/75#422011907#GP293", QrCodeTypes.HIBCLICAztec);
hibcLic_AZ.setLeft(1); // Set the position from left
hibcLic_AZ.setTop(200); // Set the position from top
hibcLic_AZ.setReturnContent(true); // Return content after signing
hibcLic_AZ.setReturnContentType(FileType.PNG); // Specify return content type as PNG
  1. Buat dan konfigurasikan opsi QR – perhatikan penggunaan QrCodeTypes.HIBCLICQR.
signature.sign(destinFilePath, hibcLic_AZ);
  1. Tandatangani dokumen
QrCodeSignOptions hibcLic_DM = new QrCodeSignOptions("A123PROD30917/75#422011907#GP293", QrCodeTypes.HIBCLICDataMatrix);
hibcLic_DM.setLeft(1); // Set the position from left
hibcLic_DM.setTop(400); // Set the position from top
hibcLic_DM.setReturnContent(true); // Return content after signing
hibcLic_DM.setReturnContentType(FileType.PNG); // Specify return content type as PNG

Jawaban langsung: Gunakan QrCodeTypes.HIBCLICQR dalam QrCodeSignOptions, atur string konten HIBC, posisikan kode dengan setLeft() dan setTop(), kemudian panggil signature.sign(outputPath, options). Barcode QR disematkan secara instan, siap untuk penangkapan oleh smartphone atau pemindai.

Kesalahan umum yang harus dihindari

1. Lupa membebaskan sumber daya

Salah:

Signature signature = new Signature("sample.pdf");
signature.sign(destinFilePath, options);
// Oops, no dispose() call

Perbaikan: Bungkus penggunaan Signature dalam blok try‑with‑resources atau panggil close() secara eksplisit dalam klausa finally.

2. Menggunakan string format HIBC yang tidak tepat

Salah: Menggunakan string umum seperti “12345”.
Perbaikan: Ikuti standar HIBCC (misalnya, A123PROD30917/75#422011907#GP293). Validasi dengan validator online HIBCC.

3. Menghard‑code jalur file

Salah:

String sourceFilePath = "C:/Users/John/Documents/test.pdf";

Perbaikan: Simpan jalur dalam file konfigurasi atau variabel lingkungan dan baca mereka saat runtime.

4. Mengabaikan konflik posisi barcode

Tempatkan barcode jauh dari teks atau tanda tangan yang ada. Gunakan koordinat PDF (asalnya di kiri‑bawah) dan uji dengan contoh cetakan.

5. Tidak menguji dengan pemindai nyata

Cetak PDF yang ditandatangani dan pindai dengan perangkat keras yang tepat yang digunakan dalam alur kerja Anda. Verifikasi keterbacaan pada kualitas cetak yang berbeda.

Aplikasi praktis dalam perawatan kesehatan

SkenarioBarcode yang direkomendasikanMengapa cocok
Distribusi farmasiQR CodeKapasitas data tinggi, banyak dipindai oleh smartphone.
Manajemen inventarisData MatrixJejak kecil, ideal untuk label rak yang padat.
Kepatuhan regulasi (FDA 21 CFR Part 11)QR + Data MatrixFormat ganda memberikan redundansi dan auditabilitas.
Pelacakan perangkat medisAztec CodeUkuran kompak bekerja pada kemasan dengan ruang terbatas.

Pertimbangan kinerja dan praktik terbaik

Pola pemrosesan batch

List<String> filesToSign = getFileList();
for (String filePath : filesToSign) {
    Signature signature = null;
    try {
        signature = new Signature(filePath);
        // Sign and save
    } finally {
        if (signature != null) signature.dispose();
    }
}
  • Buat instance Signature baru per file untuk menjaga penggunaan memori tetap rendah.
  • Gunakan thread pool tetap (Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() - 1)) untuk pemrosesan paralel, tetapi pantau ukuran heap karena setiap Signature menyimpan seluruh PDF di memori.

Jaga perpustakaan tetap diperbarui

Rilis GroupDocs meningkatkan kecepatan pemrosesan hingga 20 % dan menambahkan fitur kepatuhan HIBC baru. Jadwalkan pemeriksaan dependensi setiap kuartal.

Menyimpan templat dalam cache

Muat templat PDF sekali, kloning untuk setiap varian barcode, dan tandatangani klon tersebut. Ini mengurangi I/O dan mempercepat alur kerja volume tinggi.

Pertanyaan yang sering diajukan

Q: Bisakah GroupDocs.Signature menandatangani tipe file selain PDF?
A: Ya, ia juga mendukung DOCX, XLSX, PPTX, PNG, JPEG, dan TIFF dengan API penandatanganan barcode yang sama.

Q: Bagaimana cara mengatasi error “Invalid barcode content”?
A: Verifikasi bahwa string HIBC Anda mengikuti sintaks HIBCC yang tepat, gunakan validator online, dan pastikan Anda menggunakan konstanta QrCodeTypes yang benar untuk format yang dipilih.

Q: Berapa kapasitas data maksimum untuk setiap format HIBC?
A: QR ≈ 4.296 karakter alfanumerik, Aztec ≈ 3.832 numerik / 3.067 alfanumerik, Data Matrix ≈ 3.116 numerik / 2.335 alfanumerik. Jaga kode di bawah 200 karakter untuk keandalan pemindaian optimal.

Q: Apakah memungkinkan menyematkan beberapa jenis barcode dalam satu PDF?
A: Tentu saja. Buat objek QrCodeSignOptions terpisah dengan posisi berbeda dan panggil signature.sign() untuk masing‑masing. Pastikan mereka tidak tumpang tindih.

Q: Apakah saya memerlukan koneksi internet untuk menandatangani saat runtime?
A: Tidak. Setelah JAR berada di classpath dan lisensi diaktifkan, semua operasi dilakukan secara lokal.

Sumber daya tambahan


Terakhir Diperbarui: 2026-09-15
Diuji Dengan: GroupDocs.Signature 23.12 untuk Java
Penulis: GroupDocs

Tutorial terkait