Cara Membuat Tanda Tangan Barcode di PDF menggunakan Java

Dalam tutorial ini, Anda akan belajar cara membuat tanda tangan barcode dalam file PDF menggunakan Java dan GroupDocs.Signature. Tanda tangan barcode menyematkan pengidentifikasi yang dapat dibaca mesin yang keduanya tahan gangguan dan mudah dipindai—sempurna untuk kontrak, sertifikat, faktur, dan dokumen apa pun yang memerlukan verifikasi yang dapat diandalkan.

Jawaban Cepat

  • Apa itu tanda tangan barcode? Sebuah barcode yang disematkan dalam PDF yang menyimpan data terstruktur dan dapat dibaca oleh pemindai atau perangkat lunak.
  • Jenis barcode apa yang direkomendasikan? Code128, karena menangani data alfanumerik secara kompak.
  • Apakah saya memerlukan lisensi? Versi percobaan gratis cukup untuk pengujian; lisensi penuh diperlukan untuk produksi.
  • Bisakah saya menempatkan barcode pada ukuran halaman apa pun? Ya—gunakan penempatan berbasis persentase untuk penskalaan otomatis.
  • Apakah barcode berbasis vektor? Ya, barcode hanya menambah beberapa kilobyte ke PDF dan tetap tajam pada resolusi apa pun.

Apa itu tanda tangan barcode?

Tanda tangan barcode adalah barcode berbasis vektor yang disematkan langsung ke halaman PDF, berfungsi sekaligus sebagai elemen visual dan sebagai tanda tangan kriptografis yang dapat divalidasi kemudian. Barcode ini menyimpan data terstruktur, seperti ID atau cap waktu, dan memastikan integritas dokumen sambil menyediakan referensi yang dapat dibaca mesin.

Mengapa tanda tangan barcode penting untuk PDF Anda

Tanda tangan barcode memberikan PDF sebuah pengidentifikasi yang kompak dan dapat dibaca mesin yang dapat dipindai secara instan, menghilangkan entri data manual dan mengurangi kesalahan. Karena disematkan sebagai grafik vektor, barcode tetap tajam pada resolusi apa pun dan hanya menambah beberapa kilobyte ke file. Kombinasi keterbacaan, ketahanan terhadap manipulasi, dan ukuran minimal menjadikannya ideal untuk kontrak, faktur, sertifikat, dan dokumen apa pun yang memerlukan verifikasi yang dapat diandalkan.

Berikut tantangan yang mungkin pernah Anda hadapi: Anda perlu menambahkan pengidentifikasi unik ke PDF yang dapat dibaca mesin dan tahan manipulasi. Mungkin Anda sedang mengerjakan sistem manajemen dokumen, memproses sertifikat, atau menangani kontrak yang memerlukan verifikasi di kemudian hari.

Di sinilah tanda tangan barcode berguna. Tidak seperti stempel teks sederhana, barcode memungkinkan Anda menyematkan data terstruktur yang dapat dibaca pemindai (dan perangkat lunak Anda) secara instan. Selain itu, ketika Anda menggabungkannya dengan penandatanganan PDF melalui GroupDocs.Signature untuk Java, Anda mendapatkan cara yang kuat untuk melacak dan memverifikasi dokumen tanpa menambahkan pencarian basis data yang kompleks.

Dalam panduan ini, Anda akan mempelajari secara tepat cara mengimplementasikan tanda tangan barcode dalam PDF Java — dari penyiapan dasar hingga kode siap produksi dengan penempatan fleksibel. Baik Anda membangun sistem faktur, generator sertifikat, atau platform manajemen kontrak, Anda akan memiliki semua yang diperlukan pada akhir tutorial.

Apa yang Akan Anda Kuasai:

  • Menyiapkan GroupDocs.Signature untuk Java dalam hitungan menit
  • Membuat tanda tangan barcode Code128 (dan mengapa ini biasanya pilihan terbaik)
  • Menempatkan barcode menggunakan tata letak berbasis persentase yang bekerja pada ukuran PDF apa pun
  • Menghindari jebakan umum yang sering menjebak pengembang
  • Menguji implementasi Anda dengan tepat

Cara membuat tanda tangan barcode di Java

Membuat tanda tangan barcode di Java melibatkan memuat PDF target, mengonfigurasi opsi barcode seperti data, tipe, ukuran, dan posisi, lalu menerapkan tanda tangan untuk menghasilkan dokumen baru. GroupDocs.Signature menangani rendering dan pengikatan kriptografis, sehingga Anda hanya perlu menyediakan parameter yang diinginkan dan mengelola jalur file.

Prasyarat dan daftar periksa lingkungan

Sebelum memulai, pastikan Anda memiliki item berikut siap:

  • Java Development Kit (JDK) 8 atau lebih baru – diperlukan untuk semua pustaka GroupDocs Java.
  • Maven atau Gradle – untuk mengelola dependensi GroupDocs.Signature.
  • IDE seperti IntelliJ IDEA, Eclipse, atau VS Code dengan ekstensi Java.
  • GroupDocs.Signature untuk Java (versi 23.12 atau lebih baru disarankan).
  • Pengetahuan dasar Java – Anda harus nyaman membuat kelas, menangani pengecualian, dan bekerja dengan I/O file.

Menyiapkan GroupDocs.Signature dalam proyek Anda

Mendapatkan pustaka ke dalam proyek Anda sangat mudah. Pilih alat build Anda:

Untuk pengguna Maven, tambahkan dependensi ini ke pom.xml Anda:

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

Menggunakan Gradle? Tambahkan baris ini ke build.gradle Anda:

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

Lebih suka penyiapan manual? Unduh JAR langsung dari GroupDocs.Signature for Java releases dan tambahkan ke classpath Anda.

Menyelesaikan lisensi Anda

Sebelum masuk ke produksi penuh, Anda perlu menangani lisensi:

  • Percobaan Gratis: Sempurna untuk pengujian — dapatkan dari situs GroupDocs untuk menjelajahi fitur inti.
  • Lisensi Sementara: Butuh lebih banyak waktu untuk evaluasi? Ajukan lisensi sementara selama 30 hari.
  • Lisensi Penuh: Siap untuk produksi? Beli lisensi untuk penggunaan tak terbatas.

Berikut pemeriksaan cepat untuk memastikan semuanya berfungsi:

Signature signature = new Signature("sample.pdf");
System.out.println("Signature object created successfully.");

Jika kode tersebut berjalan tanpa error, Anda siap!

Cara membuat tanda tangan barcode di Java

Sekarang bagian yang menyenangkan — mari menandatangani PDF dengan barcode. Kami akan membaginya menjadi langkah‑langkah kecil agar Anda memahami persis apa yang terjadi pada setiap tahap.

Langkah 1: Inisialisasi objek Signature

Definition anchor: Kelas Signature adalah titik masuk GroupDocs untuk memuat, memodifikasi, dan menyimpan dokumen PDF.

Pertama, beri tahu GroupDocs PDF mana yang akan Anda kerjakan:

Signature signature = new Signature("input.pdf");

Apa yang terjadi di sini: Objek Signature memuat PDF Anda ke memori dan menyiapkannya untuk modifikasi. Pastikan jalur file Anda benar — kesalahan umum adalah menggunakan backslash pada Windows tanpa escape (gunakan \\ atau cukup gunakan slash maju, yang bekerja lintas‑platform).

Langkah 2: Konfigurasikan opsi barcode Anda (Cara menambahkan barcode)

Definition anchor: BarcodeSignOptions mengenkapsulasi semua pengaturan yang diperlukan untuk merender barcode di dalam PDF.

Sekarang buat tanda tangan barcode dengan data Anda:

BarcodeSignOptions options = new BarcodeSignOptions("12345678");
options.setEncodeType(BarcodeEncodeType.Code128);
  • "12345678" adalah data barcode Anda — bisa berupa ID pesanan, nomor sertifikat, atau pengidentifikasi apa pun yang Anda perlukan.
  • Code128 adalah tipe enkoding (lebih lanjut tentang memilih tipe yang tepat di bawah).

Tips profesional: Code128 dapat menangani angka dan huruf, menjadikannya serbaguna untuk kebanyakan kasus penggunaan. Jika Anda hanya membutuhkan angka, Code39 mungkin lebih sederhana, tetapi Code128 memberi Anda fleksibilitas lebih.

Langkah 3: Posisi barcode Anda (Cara menandatangani PDF dengan barcode)

Definition anchor: SignatureOptions menyediakan properti tata letak seperti nomor halaman, ukuran, dan perataan.

Di sinilah GroupDocs benar‑benar bersinar — penempatan berbasis persentase berarti barcode Anda terlihat baik pada ukuran PDF apa pun:

options.setLeft(10);   // 10% from the left edge
options.setTop(90);    // 90% from the bottom edge (near the footer)
options.setWidth(30);  // 30% of page width
options.setHeight(10); // 10% of page height
options.setPageNumber(1);

Mengapa persentase penting: Bayangkan Anda menandatangani dokumen A4 dan formulir ukuran legal. Dengan penempatan persentase, barcode Anda secara otomatis berskala agar tampak konsisten pada keduanya. Menggunakan nilai piksel tetap akan membuat barcode terlalu kecil pada dokumen besar atau terlalu besar pada dokumen kecil.

Contoh dunia nyata: Pada halaman A4 (595 × 842 poin), barcode lebar 30 % akan berukuran ~180 poin. Pada halaman legal (612 × 1008 poin), lebarannya ~184 poin — proporsional secara otomatis.

Langkah 4: Tandatangani dan simpan dokumen Anda (Cara menambahkan barcode pdf)

Saatnya menerapkan tanda tangan dan menyimpan hasilnya:

signature.sign(outputPath, options);

Catatan penting: Direktori output harus ada sebelum Anda menjalankan kode ini. GroupDocs tidak akan membuat direktori bersarang untuk Anda, jadi buat terlebih dahulu atau tangani dalam kode Anda:

new File("output").mkdirs();

Bagaimana jika terjadi kesalahan? Bungkus kode ini dalam blok try‑catch:

try {
    signature.sign("signed.pdf", options);
} catch (Exception e) {
    e.printStackTrace();
}

Memilih tipe barcode yang tepat untuk kebutuhan Anda (generate code128 barcode)

GroupDocs mendukung berbagai format barcode, dan memilih yang tepat sangat penting. Berikut perbandingan praktis:

Code128 (Pilihan Default Kami):

  • Terbaik untuk: Data alfanumerik campuran (ID seperti “INV2024-001”)
  • Kapasitas: Hingga 128 karakter ASCII
  • Mengapa unggul: Kompak, didukung luas, menangani huruf dan angka
  • Gunakan ketika: Anda membutuhkan fleksibilitas dan tidak tahu jenis data apa yang akan dienkode

Code39:

  • Terbaik untuk: Kode alfanumerik sederhana
  • Kapasitas: 43 karakter (A‑Z, 0‑9, dan beberapa simbol)
  • Mengapa dipertimbangkan: Pemindai lama sering mendukungnya lebih baik
  • Gunakan ketika: Bekerja dengan sistem legacy atau ketika kesederhanaan lebih penting daripada kepadatan data

QR Code:

  • Terbaik untuk: Data dalam jumlah besar (URL, payload JSON)
  • Kapasitas: Hingga 3 KB data
  • Mengapa kuat: Dapat menyimpan struktur data kompleks, dilengkapi koreksi kesalahan
  • Gunakan ketika: Anda perlu menyematkan data terstruktur atau URL

EAN/UPC:

  • Terbaik untuk: Identifikasi produk
  • Kapasitas: Kode numerik panjang tetap (8‑13 digit)
  • Gunakan ketika: Anda bekerja dengan sistem ritel atau inventaris

Panduan keputusan cepat:

  • Butuh huruf dan angka? → Code128
  • Hanya angka, tetap sederhana? → Code39
  • Banyak data atau URL? → QR Code
  • Kode produk/retail? → EAN/UPC

Jebakan umum dan cara menghindarinya (tamper evident barcode)

Berikut masalah yang paling sering dihadapi pengembang (agar Anda tidak mengalaminya):

Masalah 1: Posisi barcode terlihat salah

Gejala: Barcode muncul di lokasi tak terduga atau terpotong.

Penyebab umum:

  • Menggunakan nilai piksel pada ukuran halaman yang berbeda
  • Lupa bahwa koordinat PDF dimulai dari kiri‑bawah, bukan kiri‑atas
  • Margin mendorong konten keluar area tampilan

Solusi: Selalu gunakan penempatan berbasis persentase untuk konsistensi:

options.setLeft(5);
options.setTop(95);
options.setWidth(40);
options.setHeight(12);

Masalah 2: Teks barcode tidak dapat dibaca

Gejala: Teks yang dienkode terlihat tetapi pemindai tidak dapat membacanya.

Penyebab:

  • Barcode terlalu kecil untuk jumlah data
  • Tipe enkoding salah untuk data Anda
  • Kontras rendah antara bar dan latar belakang

Solusi: Sesuaikan ukuran barcode dengan panjang data. Untuk Code128 dengan 10‑15 karakter, usahakan lebar setidaknya 8‑10 % lebar halaman.

Masalah 3: Pengecualian jalur file

Gejala: FileNotFoundException atau error serupa.

Penyebab:

  • Jalur Windows yang di‑hardcode dengan backslash tunggal
  • Direktori output tidak ada
  • Masalah izin file

Solusi: Gunakan slash maju (bekerja di mana saja) dan buat direktori terlebih dahulu:

Path output = Paths.get("output/signed.pdf");
Files.createDirectories(output.getParent());

Masalah 4: Masalah memori dengan PDF besar

Gejala: Error out of memory saat memproses dokumen besar.

Solusi: Tutup objek Signature setelah selesai untuk membebaskan sumber daya:

signature.close();

Menguji implementasi barcode Anda

Sebelum diproduksi, pastikan barcode Anda benar‑benar berfungsi. Berikut daftar periksa pengujian praktis:

1. Pengujian inspeksi visual

Buka PDF yang telah ditandatangani dan periksa:

  • Apakah barcode terlihat dan berada pada posisi yang tepat?
  • Apakah tampilannya tajam (tidak blur atau pixelated)?
  • Apakah ada ruang putih yang cukup di sekitarnya?

2. Pengujian pemindaian

Gunakan aplikasi pemindai barcode di ponsel (seperti “Barcode Scanner” atau “QR & Barcode Reader”) untuk memverifikasi:

  • Pemindai dapat membaca barcode Anda
  • Data terdekripsi cocok dengan yang Anda enkode
  • Berfungsi dari sudut dan jarak yang berbeda

3. Pengujian lintas‑platform

Buka PDF Anda di perangkat berbeda:

  • Windows (Adobe Reader, Chrome)
  • Mac (Preview, Chrome)
  • Perangkat seluler (iOS, Android)

Pastikan barcode dirender dengan benar di semua tempat.

4. Kode pengujian otomatis

Berikut contoh tes sederhana yang dapat Anda jalankan:

Signature testSignature = new Signature("signed.pdf");
List<BarcodeSignature> signatures = testSignature.search(BarcodeSignature.class);
if (signatures.size() > 0) {
    System.out.println("Barcode found: " + signatures.get(0).getText());
}

Kasus penggunaan dunia nyata untuk tanda tangan barcode

Mari lihat di mana teknik ini benar‑benar bersinar dalam sistem produksi:

1. Generasi dan verifikasi sertifikat

Skenario: Anda membangun platform pelatihan yang mengeluarkan sertifikat penyelesaian.
Implementasi: Hasilkan ID sertifikat unik (misalnya “CERT‑2024‑00123”) dan sematkan sebagai barcode Code128 di pojok kanan‑bawah. Memindai barcode memungkinkan API Anda mengambil detail sertifikat secara instan, menghilangkan entri data manual.

2. Sistem pelacakan faktur

Skenario: Perusahaan Anda memproses ribuan faktur setiap bulan.
Implementasi: Tambahkan nomor faktur dan tanggal jatuh tempo sebagai QR code yang ditempatkan pada area mudah dipindai oleh peralatan. Sistem penyortiran otomatis dapat mengarahkan faktur tanpa intervensi manusia, memotong waktu pemrosesan dari jam ke menit.

3. Manajemen kontrak hukum

Skenario: Firma hukum perlu melacak versi dan amandemen kontrak.
Implementasi: Setiap versi kontrak mendapatkan identifier barcode unik yang mencakup ID kontrak, nomor versi, dan tanggal tanda tangan. Memindai selama audit langsung menampilkan riwayat versi lengkap.

4. Keamanan rekam medis

Skenario: Rumah sakit ingin mencegah akses tidak sah ke rekam medis.
Implementasi: Sematkan ID pasien dan cap waktu pembuatan rekam dalam barcode. Hanya perangkat yang terautentikasi yang dapat mendekode dan mengakses rekam lengkap, dan setiap pemindaian mencatat log audit untuk kepatuhan.

Tips optimasi kinerja (java document security)

Saat menandatangani banyak PDF, kinerja menjadi penting. Berikut beberapa tips agar tetap lancar:

Strategi pemrosesan batch

Alih‑alih menandatangani satu dokumen sekaligus, proses secara batch:

for (String filePath : pdfList) {
    Signature batchSignature = new Signature(filePath);
    batchSignature.sign(outputPath, options);
    batchSignature.close();
}

Mengapa ini membantu: Menggunakan kembali objek opsi dan menutup sumber daya dengan benar mencegah kebocoran memori.

Manajemen memori untuk PDF besar

Untuk PDF lebih besar dari 50 MB:

  • Proses secara berurutan, bukan memuat beberapa sekaligus.
  • Gunakan try‑with‑resources untuk memastikan pembersihan.
  • Pantau ukuran heap dan sesuaikan parameter JVM bila perlu: -Xmx2g.

Caching barcode yang sering dipakai

Jika Anda menandatangani banyak dokumen dengan barcode yang sama, cache instance BarcodeSignOptions:

BarcodeSignOptions cachedOptions = new BarcodeSignOptions("STATIC_ID");
cachedOptions.setEncodeType(BarcodeEncodeType.Code128);

Kapan harus menggunakan tanda tangan barcode (dan kapan tidak)

Skenario sempurna:

  • Anda memerlukan pengidentifikasi dokumen yang dapat dibaca mesin.
  • Dokumen akan dipindai atau diproses secara otomatis.
  • Anda menginginkan pelacakan tahan manipulasi tanpa sertifikat digital.
  • Integrasi dengan infrastruktur barcode yang sudah ada diperlukan.

Tidak ideal ketika:

  • Anda memerlukan tanda tangan digital yang mengikat secara hukum (gunakan sertifikat digital).
  • Dokumen hanya akan dilihat oleh manusia (watermark teks sederhana mungkin cukup).
  • Dokumen sangat kecil sehingga barcode akan mendominasi halaman.
  • Persyaratan keamanan menuntut enkripsi—barcode terlihat dan dapat dipindai siapa saja.

Bisakah menggabungkan pendekatan? Tentu! Banyak sistem menggunakan barcode untuk pelacakan dan tanda tangan digital untuk keabsahan hukum.

Pertanyaan yang Sering Diajukan

T: Bisakah saya menggunakan tipe barcode berbeda dalam PDF yang sama?
J: Ya! Panggil signature.sign() beberapa kali dengan BarcodeSignOptions yang berbeda untuk tiap tipe barcode. Pastikan tidak saling tumpang tindih.

T: Bagaimana menangani barcode yang berisi karakter khusus?
J: Code128 menangani sebagian besar karakter ASCII dengan baik. Untuk Unicode atau data kompleks, beralih ke QR code—mendukung enkoding UTF‑8.

T: Berapa maksimum data yang dapat disimpan dalam barcode Code128?
J: Secara teoritis hingga 128 karakter, tetapi keterbacaan menurun signifikan di atas 30‑40 karakter. Untuk payload lebih besar, gunakan QR code.

T: Apakah penambahan barcode secara signifikan meningkatkan ukuran file PDF saya?
J: Tidak secara mencolok—barcode adalah grafik vektor, biasanya menambah hanya 5‑20 KB per barcode tergantung ukuran dan kompleksitas.

T: Bisakah saya memutar barcode atau menempatkannya secara vertikal?
J: Ya! Gunakan options.setRotationAngle(90) untuk memutar barcode, berguna untuk penempatan di margin.

T: Bagaimana membuat barcode muncul di setiap halaman PDF multi‑halaman?
J: Iterasi melalui halaman dan terapkan tanda tangan pada masing‑masing. Lihat kelas PagesSetup dalam dokumentasi GroupDocs untuk mengontrol halaman yang ditandatangani.

T: Bagaimana jika pemindai barcode saya tidak dapat membaca barcode yang dihasilkan?
J: Pertama, pastikan pemindai mendukung tipe barcode yang dipilih. Kemudian tingkatkan ukuran barcode—kebanyakan masalah pemindaian berasal dari bar yang terlalu kecil. Usahakan lebar minimal 1 inci (2,54 cm) untuk pembacaan yang andal.

Sumber Daya Tambahan

Dokumentasi:

Unduhan dan Lisensi:

Komunitas dan Dukungan:


Terakhir Diperbarui: 2026-07-20
Diuji Dengan: GroupDocs.Signature 23.12 (Java)
Penulis: GroupDocs

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-signature</artifactId>
    <version>23.12</version>
</dependency>
implementation 'com.groupdocs:groupdocs-signature:23.12'
import com.groupdocs.signature.Signature;

public class QuickTest {
    public static void main(String[] args) {
        try {
            Signature signature = new Signature("test-document.pdf");
            System.out.println("GroupDocs.Signature is ready to go!");
        } catch (Exception e) {
            System.err.println("Setup issue: " + e.getMessage());
        }
    }
}
String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
Signature signature = new Signature(filePath);
import com.groupdocs.signature.options.sign.BarcodeSignOptions;
import com.groupdocs.signature.domain.barcodes.BarcodeTypes;

BarcodeSignOptions options = new BarcodeSignOptions("12345678");
options.setEncodeType(BarcodeTypes.Code128);
import com.groupdocs.signature.domain.enums.MeasureType;
import com.groupdocs.signature.domain.Padding;

// Use percentages instead of fixed pixels
options.setLocationMeasureType(MeasureType.Percents);
options.setLeft(5);  // 5% from the left edge
options.setTop(5);   // 5% from the top

// Size it proportionally too
options.setSizeMeasureType(MeasureType.Percents);
options.setWidth(10);  // 10% of page width
options.setHeight(5);  // 5% of page height

// Add some breathing room with margins
Padding margins = new Padding();
margins.setLeft(1);
margins.setTop(1);
margins.setRight(1);
options.setMargin(margins);
String outputFilePath = "YOUR_OUTPUT_DIRECTORY/SignWithPercents/sample_signed.pdf";
signature.sign(outputFilePath, options);
Path outputPath = Paths.get(outputFilePath);
Files.createDirectories(outputPath.getParent());
signature.sign(outputFilePath, options);
try {
    signature.sign(outputFilePath, options);
    System.out.println("PDF signed successfully at: " + outputFilePath);
} catch (Exception e) {
    System.err.println("Signing failed: " + e.getMessage());
    e.printStackTrace();
}
options.setLocationMeasureType(MeasureType.Percents);
options.setLeft(5);  // 5% from left works on any page width
options.setWidth(10);  // Give it room to breathe
options.setHeight(5);  // Maintain proper aspect ratio
String filePath = "documents/sample.pdf";  // Works on Windows, Mac, Linux
Files.createDirectories(Paths.get("output/signed"));
try (Signature signature = new Signature(filePath)) {
    signature.sign(outputFilePath, options);
} // Automatically closes and releases memory
import org.junit.Test;
import static org.junit.Assert.*;

public class BarcodeSignatureTest {
    
    @Test
    public void testBarcodeSigning() {
        String testPdf = "test-data/sample.pdf";
        String output = "test-output/signed.pdf";
        
        try (Signature signature = new Signature(testPdf)) {
            BarcodeSignOptions options = new BarcodeSignOptions("TEST123");
            options.setEncodeType(BarcodeTypes.Code128);
            
            signature.sign(output, options);
            
            // Verify output file exists
            assertTrue(new File(output).exists());
            
            // Verify file size increased (signature was added)
            long originalSize = new File(testPdf).length();
            long signedSize = new File(output).length();
            assertTrue(signedSize > originalSize);
            
        } catch (Exception e) {
            fail("Signing should not throw exception: " + e.getMessage());
        }
    }
}
List<String> pdfFiles = Arrays.asList("doc1.pdf", "doc2.pdf", "doc3.pdf");

for (String pdfFile : pdfFiles) {
    try (Signature signature = new Signature(pdfFile)) {
        BarcodeSignOptions options = createBarcodeOptions(); // Reuse options
        signature.sign(getOutputPath(pdfFile), options);
    }
}
// Create options once, reuse many times
BarcodeSignOptions templateOptions = createStandardBarcodeOptions();

// For each document, clone and customize
BarcodeSignOptions documentOptions = templateOptions.clone();
documentOptions.setText(uniqueDocumentId);

Tutorial Terkait