HIBC kullanarak Java’da PDF’i barkodla imzalama

Eğer ilaç veya sağlık lojistiği yazılımı geliştiriyorsanız, kağıt‑tabanlı izleme, kayıp imzalar ve denetim kabuslarıyla karşılaşmış olabilirsiniz. Barkodlu bir PDF imzalama—özellikle bir HIBC Data Matrix veya QR kodu—baskı, tarama ve düzenleyici incelemelerden geçebilen, müdahale tespit edilebilir, makine‑okunur bir iz oluşturur. Bu öğreticide, GroupDocs.Signature for Java kullanarak bir PDF’e hem Data Matrix hem de QR barkodlarını nasıl ekleyeceğinizi adım adım göreceksiniz.

Hızlı yanıtlar

  • Java’da HIBC barkodlarını hangi kütüphane yönetir? GroupDocs.Signature for Java.
  • En kompakt barkod formatı hangisidir? Data Matrix – küçük etiketler için idealdir.
  • Aynı PDF’e hem QR hem Data Matrix ekleyebilir miyim? Evet, sadece ayrı QrCodeSignOptions nesneleri oluşturun.
  • Çalışma zamanında internet bağlantısına ihtiyacım var mı? Hayır, kütüphane kurulumdan sonra tamamen çevrim dışı çalışır.
  • Hangi Java sürümü önerilir? Üretim‑ağır performans için Java 11+.

HIBC barkodlu PDF imzalama nedir?

Signature GroupDocs.Signature’ın PDF belgesini temsil eden ve dijital imzaların gömülmesini sağlayan çekirdek sınıfıdır. GroupDocs.Signature for Java’daki Signature sınıfı, HIBC barkodlarını dijital imza olarak gömmek için yöntemler sunar. Bir PDF’i HIBC barkodu ile imzaladığınızda, tedarik zincirinin herhangi bir noktasında taranabilen, doğrulanabilir ve müdahale tespit edilebilir bir kayıt oluşturmuş olursunuz.

Data Matrix ve QR kodlarını birlikte neden kullanmalı?

Data Matrix, en küçük alanı kaplarken 2.335 alfanümerik karaktere kadar tutabilir; bu da yoğun etiket alanları için mükemmeldir. QR kodları ise 4.296 karaktere kadar destekler ve akıllı telefonlar tarafından evrensel olarak okunabilir. İkisini birleştirerek, alan verimliliği ve veri kapasitesi arasında en iyi dengeyi elde eder, depo tarayıcılarından mobil uygulamalara kadar tüm paydaşların ihtiyaç duyduğu bilgiyi okuyabilmesini sağlarsınız.

Önkoşullar

  • JDK 11 veya üstü (Java 8 de çalışır ancak optimum performans için Java 11+ önerilir).
  • IDE – IntelliJ IDEA, Eclipse veya Java uzantılı VS Code.
  • Maven veya Gradle – bağımlılık yönetimi için (aşağıdaki örnekler).
  • Örnek PDF (ör. sample.pdf) – uygulamayı test etmek için.
  • Geçerli GroupDocs.Signature lisansı (geliştirme için ücretsiz deneme, üretim için ücretli lisans).

GroupDocs.Signature for Java kurulumu

Maven yapılandırması

Bağımlılığı pom.xml dosyanıza ekleyin:

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

Gradle yapılandırması

Gradle projeleri için build.gradle dosyanıza şu satırı ekleyin:

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

Doğrudan indirme seçeneği

JAR dosyasını doğrudan GroupDocs.Signature for Java releases adresinden indirip proje sınıf yoluna manuel ekleyebilirsiniz. Bu yöntem, kısıtlı ağ ortamlarında işe yarar.

Lisans alma

Su işaretlerini kaldırmak ve tüm özellikleri açmak için GroupDocs’tan ücretsiz deneme veya geçici lisans isteyin. Üretim ortamları için satın alınmış bir lisans gerekir.

Temel başlatma

Signature tüm imzalama işlemlerinin giriş noktasıdır. PDF’i yükler, barkodu uygular ve imzalı dosyayı yazar.

import com.groupdocs.signature.Signature;

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

HIBC barkodlu Data Matrix PDF nasıl oluşturulur?

Signature nesnesini kaynak PDF’nizle başlatın, QrCodeSignOptions’ı Data Matrix formatına ayarlayın, doğru biçimlendirilmiş HIBC dizesini sağlayın ve sign() metodunu çağırın. Kütüphane, imzalı PDF’i hedefe yazar, düzeni korur ve barkodu müdahale‑tespit edilebilir bir imza olarak gömer.

QrCodeSignOptions imza için barkod tipini, içeriğini, boyutunu ve konumunu belirler.

  1. Gerekli sınıfları içe aktarın – bu sınıflar imza motoruna ve Data Matrix seçeneklerine erişim sağlar.
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
  1. Signature nesnesini mutlak yollarla başlatın – kaynak ve hedef dosyalar için.
String sourceFilePath = "YOUR_DOCUMENT_DIRECTORY";
String destinFilePath = "YOUR_OUTPUT_DIRECTORY/SignWithHIBCLICQR.pdf";

final Signature signature = new Signature(sourceFilePath);
  1. Data Matrix seçeneklerini yapılandırın – HIBC dizesini ayarlayın, QrCodeTypes.HIBCLICDataMatrix seçin ve konum koordinatlarını tanımlayın. QrCodeTypes, HIBC imzaları için desteklenen barkod formatlarını listeler.
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. İmzayı PDF’e uygulayın.
signature.sign(destinFilePath, hibcLic_QR);
  1. Kaynakları serbest bırakın – dosya tutucularını kapatın ve bellek sızıntılarını önleyin.
finally {
    if (signature != null) signature.dispose();
}

Tam çalışan örnek

Aşağıda tek bir blokta tam akış gösterilmiştir (yer tutucular, önceki snippet’lerden kopyalayacağınız kodu temsil eder):

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();
        }
    }
}

Doğrudan yanıt (40–70 kelime)

Data Matrix PDF oluşturmak için Signature nesnesini kaynak PDF’nizle başlatın, QrCodeSignOptions’ı QrCodeTypes.HIBCLICDataMatrix olarak ayarlayın ve doğru biçimlendirilmiş HIBC dizesini sağlayın, ardından signature.sign(outputPath, options) metodunu çağırın. Kütüphane, imzalı PDF’i hedefe yazar, düzeni korur ve barkodu müdahale‑tespit edilebilir bir imza olarak gömer.

GroupDocs.Signature kullanarak QR kodlu PDF nasıl eklenir?

PDF’i yükleyin, QR formatı için QrCodeSignOptions yapılandırın ve sign() metodunu çağırın. Kütüphane, QR görüntüsünü okunabilirlik için ölçeklendirir ve belirttiğiniz koordinatlara göre konumlandırır, mevcut içerikle çakışmayı önler. Böylece barkod, baskı sonrası taranabilir kalır ve HIBC standartlarına uygun olur.

QrCodeSignOptions QR barkodunun içeriğini, boyutunu ve konumunu tanımlar.

  1. QR‑özel sınıfları içe aktarın
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. QR seçeneklerini oluşturup yapılandırın – QrCodeTypes.HIBCLICQR kullanımına dikkat edin.
signature.sign(destinFilePath, hibcLic_AZ);
  1. Belgeyi imzalayın
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

Doğrudan yanıt: QrCodeSignOptions içinde QrCodeTypes.HIBCLICQR kullanın, HIBC içerik dizesini ayarlayın, kodu setLeft() ve setTop() ile konumlandırın, ardından signature.sign(outputPath, options) metodunu çağırın. QR barkodu anında gömülür, akıllı telefon veya tarayıcı ile yakalanmaya hazırdır.

Kaçınılması gereken yaygın hatalar

1. Kaynakların serbest bırakılmasını unutmak

Yanlış:

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

Düzeltme: Signature kullanımını try‑with‑resources bloğuna alın veya finally bloğunda close() metodunu açıkça çağırın.

2. Hatalı HIBC format dizesi kullanmak

Yanlış: “12345” gibi genel dizeler.
Düzeltme: HIBCC standardını izleyin (ör. A123PROD30917/75#422011907#GP293). Doğrulama için HIBCC online validator adresini kullanın.

3. Dosya yollarını sabit kodlamak

Yanlış:

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

Düzeltme: Yolları bir yapılandırma dosyasında veya ortam değişkeninde saklayın ve çalışma zamanında okuyun.

4. Barkod konum çakışmalarını göz ardı etmek

Barkodları mevcut metin veya imzaların dışına yerleştirin. PDF koordinatları (orijin sol‑alt) kullanın ve basılı bir örnekle test edin.

5. Gerçek tarayıcılarla test etmeyi atlamak

İmzalı PDF’i yazdırın ve iş akışınızda kullanılan aynı donanımla tarayın. Farklı baskı kalitelerinde okunabilirliği doğrulayın.

Sağlık sektöründe pratik uygulamalar

SenaryoÖnerilen barkodNeden uygundur
İlaç dağıtımıQR CodeYüksek veri kapasitesi, akıllı telefonlarla yaygın tarama.
Envanter yönetimiData MatrixKüçük alan, yoğun raf etiketleri için ideal.
Regülasyon uyumu (FDA 21 CFR Part 11)QR + Data MatrixÇift format, yedeklilik ve denetlenebilirlik sağlar.
Medikal cihaz takibiAztec CodeSınırlı alan paketlemelerinde kompakt boyut.

Performans değerlendirmeleri ve en iyi uygulamalar

Toplu işleme deseni

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();
    }
}
  • Bellek kullanımını düşük tutmak için dosya başına yeni bir Signature örneği oluşturun.
  • Paralel işleme için sabit bir iş parçacığı havuzu (Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() - 1)) kullanın, ancak her Signature tam PDF’i bellekte tuttuğu için yığın (heap) boyutunu izleyin.

Kütüphaneleri güncel tutun

GroupDocs sürüm güncellemeleri işlem hızını %20’ye kadar artırabilir ve yeni HIBC uyumluluk özellikleri ekler. Dönemsel bağımlılık kontrolleri planlayın.

Şablonları önbellekleme

PDF şablonunu bir kez yükleyin, her barkod varyasyonu için kopyalayın ve kopyaları imzalayın. Bu, I/O’yu azaltır ve yüksek hacimli iş akışlarında hızı artırır.

Sık sorulan sorular

S: GroupDocs.Signature PDF dışındaki dosya türlerini imzalayabilir mi?
C: Evet, aynı barkod‑imza API’siyle DOCX, XLSX, PPTX, PNG, JPEG ve TIFF dosyalarını da destekler.

S: “Invalid barcode content” hatasını nasıl gideririm?
C: HIBC dizesinin tam HIBCC sözdizimini izlediğinden emin olun, çevrimiçi doğrulayıcıyı kullanın ve seçtiğiniz format için doğru QrCodeTypes sabitini kullandığınızı kontrol edin.

S: Her HIBC formatının maksimum veri kapasitesi nedir?
C: QR ≈ 4.296 alfanümerik, Aztec ≈ 3.832 sayısal / 3.067 alfanümerik, Data Matrix ≈ 3.116 sayısal / 2.335 alfanümerik. Tarama güvenilirliği için kodları 200 karakterin altında tutun.

S: Tek bir PDF’e birden fazla barkod tipi gömebilir miyim?
C: Kesinlikle. Farklı konumlar için ayrı QrCodeSignOptions nesneleri oluşturup her biri için signature.sign() çağırın. Çakışmadıklarından emin olun.

S: Çalışma zamanında imzalama için internet bağlantısı gerekir mi?
C: Hayır. JAR sınıf yolunda ve lisans aktif olduğunda tüm işlemler yerel olarak gerçekleşir.

Ek kaynaklar


Son güncelleme: 2026-09-15
Test edilen sürüm: GroupDocs.Signature 23.12 for Java
Yazar: GroupDocs


İlgili öğreticiler