إنشاء ملف PDF لمصفوفة البيانات مع رمز شريطي HIBC في جافا

إذا كنت تبني برنامجًا للوجستيات الصيدلانية أو الرعاية الصحية، فمن المحتمل أنك واجهت صعوبات تتبع تعتمد على الورق، توقيعات مفقودة، وكوابيس التدقيق. إنشاء ملف PDF لمصفوفة البيانات الذي يدمج رمز شريطي HIBC LIC يحل هذه المشكلات من خلال توفير أثر مقاوم للعبث وقابل للقراءة آليًا يبقى صالحًا بعد الطباعة والمسح والمراجعة التنظيمية. في هذا البرنامج التعليمي ستتعرف بالضبط على كيفية إضافة دعم PDF لرمز الاستجابة السريعة، بالإضافة إلى صيغ Aztec وData Matrix، باستخدام GroupDocs.Signature for Java.

إجابات سريعة

  • ما المكتبة التي تتعامل مع الرموز الشريطية HIBC في جافا؟ GroupDocs.Signature for Java.
  • ما هو تنسيق الرمز الشريطي الأكثر كثافة؟ Data Matrix – مثالي للملصقات الصغيرة.
  • هل يمكنني إضافة كل من QR وData Matrix إلى نفس ملف PDF؟ نعم، فقط أنشئ QrCodeSignOptions منفصلة.
  • هل أحتاج إلى اتصال بالإنترنت أثناء التشغيل؟ لا، المكتبة تعمل بالكامل دون اتصال بعد التثبيت.
  • ما نسخة جافا الموصى بها؟ Java 11+ للأداء على مستوى الإنتاج.

ما هو توقيع PDF باستخدام رمز شريطي HIBC؟

تمثل الفئة Signature في GroupDocs.Signature for Java مستند PDF وتوفر طرقًا لدمج الرموز الشريطية HIBC كتوقيعات رقمية. من خلال توقيع PDF برمز شريطي HIBC، تنشئ سجلًا قابلًا للتحقق ومقاومًا للعبث يمكن مسحه في أي مرحلة من سلسلة الإمداد.

لماذا نستخدم Data Matrix وQR معًا؟

يدعم GroupDocs.Signature أكثر من 50 تنسيقًا للإدخال والإخراج ويمكنه معالجة ملفات PDF التي تتضمن مئات الصفحات دون تحميل الملف بالكامل في الذاكرة. استخدام Data Matrix للملصقات الكثيفة والصغيرة والمساحة وQR للمستندات ذات المساحة الأكبر يمنحك أفضل توازن بين قابلية القراءة، سعة البيانات (حتى 4,296 حرفًا لـ QR)، وكفاءة مساحة الطباعة.

المتطلبات المسبقة

  • JDK 11 أو أعلى (Java 8 يعمل لكن يُنصح بـ Java 11+ للأداء الأمثل).
  • IDE مثل IntelliJ IDEA أو Eclipse أو VS Code مع ملحقات جافا.
  • Maven أو Gradle لإدارة التبعيات (الأمثلة أدناه).
  • PDF عينة (مثلاً sample.pdf) لاختبار التنفيذ.
  • رخصة GroupDocs.Signature صالحة (تجربة مجانية للتطوير، رخصة مدفوعة للإنتاج).

إعداد GroupDocs.Signature لجافا

تكوين Maven

أضف التبعية إلى ملف pom.xml الخاص بك:

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

تكوين Gradle

لمشاريع Gradle، أضف هذا إلى ملف build.gradle:

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

خيار التحميل المباشر

يمكنك أيضًا تنزيل ملف JAR مباشرةً من GroupDocs.Signature for Java releases وإضافته إلى مسار الفئة (classpath) في مشروعك يدويًا. يعمل هذا الأسلوب جيدًا في بيئات الشبكة المقيدة.

الحصول على رخصة

اطلب نسخة تجريبية مجانية أو رخصة مؤقتة من GroupDocs لإزالة العلامات المائية وإتاحة جميع الميزات. تتطلب عمليات النشر في الإنتاج رخصة مدفوعة.

التهيئة الأساسية

الفئة Signature هي نقطة الدخول لجميع عمليات التوقيع. تقوم بتحميل ملف PDF، وتطبيق الرمز الشريطي، وكتابة الملف الموقع.

import com.groupdocs.signature.Signature;

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

كيفية إنشاء ملف PDF لمصفوفة البيانات مع رمز شريطي HIBC؟

حمّل ملف PDF المصدر، وقم بتكوين كائن QrCodeSignOptions لتنسيق Data Matrix، ثم استدعِ sign() – هذا كل ما تحتاجه لدمج رمز شريطي HIBC Data Matrix متوافق. الخطوات التالية ترشدك عبر الشيفرة الدقيقة المطلوبة. يحدد QrCodeSignOptions إعدادات توقيع الرمز الشريطي، مثل النوع، المحتوى، الحجم، والموقع.

  1. استيراد الفئات المطلوبة – هذه تمنحك الوصول إلى محرك التوقيع وخيارات Data Matrix.
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
  1. إنشاء كائن Signature باستخدام مسارات مطلقة للملفات المصدر والوجهة.
String sourceFilePath = "YOUR_DOCUMENT_DIRECTORY";
String destinFilePath = "YOUR_OUTPUT_DIRECTORY/SignWithHIBCLICQR.pdf";

final Signature signature = new Signature(sourceFilePath);
  1. تكوين خيارات Data Matrix – اضبط سلسلة HIBC، اختر QrCodeTypes.HIBCLICDataMatrix، وحدد إحداثيات الموضع. QrCodeTypes تُعدّد صيغ الرموز الشريطية المدعومة لتوقيعات 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. تطبيق التوقيع على ملف PDF.
signature.sign(destinFilePath, hibcLic_QR);
  1. تحرير الموارد لتحرير مقابض الملفات وتجنب تسرب الذاكرة.
finally {
    if (signature != null) signature.dispose();
}

مثال عملي كامل

إليك التدفق الكامل في كتلة واحدة (الرموز النائبة تمثل الشيفرة الدقيقة التي ستلصقها من المقاطع السابقة):

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

إجابة مباشرة (40–70 كلمة)

لـ إنشاء ملف PDF لمصفوفة البيانات، أنشئ كائن Signature باستخدام ملف PDF المصدر، اضبط QrCodeSignOptions إلى QrCodeTypes.HIBCLICDataMatrix وقدم سلسلة HIBC مُنسقة بشكل صحيح، ثم استدعِ signature.sign(outputPath, options). تقوم المكتبة بكتابة ملف PDF الموقع إلى الوجهة، مع الحفاظ على التخطيط ودمج الرمز الشريطي كتوقيع مقاوم للعبث.

كيفية إضافة PDF لرمز QR باستخدام GroupDocs.Signature؟

حمّل ملف PDF، وقم بتكوين QrCodeSignOptions لتنسيق QR، ثم استدعِ sign(). يعمل هذا النمط المكوّن من سطرين مع أي حجم PDF ويُقِم تلقائيًا مقياس صورة QR لقراءة مثالية. يضبط QrCodeSignOptions توقيع الرمز الشريطي QR، بما في ذلك محتواه وخصائصه البصرية. يحدد موقع الرمز بناءً على الإحداثيات التي تحددها، مما يضمن عدم تداخله مع المحتوى الموجود وبقائه قابلًا للمسح بعد الطباعة.

  1. استيراد الفئات الخاصة بـ 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. إنشاء وتكوين خيارات QR – لاحظ استخدام QrCodeTypes.HIBCLICQR.
signature.sign(destinFilePath, hibcLic_AZ);
  1. توقيع المستند
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

إجابة مباشرة: استخدم QrCodeTypes.HIBCLICQR في QrCodeSignOptions، اضبط سلسلة محتوى HIBC، وضع الرمز باستخدام setLeft() و setTop()، ثم استدعِ signature.sign(outputPath, options). يتم دمج رمز QR على الفور، جاهز للالتقاط عبر الهاتف الذكي أو الماسح.

الأخطاء الشائعة التي يجب تجنبها

1. نسيان تحرير الموارد

خطأ:

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

تصحيح: غلف استخدام Signature بكتلة try‑with‑resources أو استدعِ close() صراحةً في عبارة finally.

2. استخدام سلاسل تنسيق HIBC غير صحيحة

خطأ: استخدام سلاسل عامة مثل “12345”.
تصحيح: اتبع معيار HIBCC (مثلاً A123PROD30917/75#422011907#GP293). تحقق باستخدام HIBCC online validator.

3. ترميز مسارات الملفات صلبًا

خطأ:

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

تصحيح: احفظ المسارات في ملف إعدادات أو متغير بيئي واقرأها أثناء التشغيل.

4. تجاهل تعارضات موضع الرمز الشريطي

ضع الرموز الشريطية بعيدًا عن النص أو التوقيعات الموجودة. استخدم إحداثيات PDF (الأصل في أسفل اليسار) واختبر باستخدام عينة مطبوعة.

5. عدم الاختبار باستخدام ماسحات حقيقية

اطبع ملف PDF الموقع وامسحه باستخدام الجهاز الفعلي المستخدم في سير العمل الخاص بك. تحقق من قابلية القراءة عند جودة طباعة مختلفة.

التطبيقات العملية في الرعاية الصحية

السيناريوالرمز الشريطي الموصى بهسبب الملاءمة
توزيع الأدويةQR Codeسعة بيانات عالية، يُمسح على نطاق واسع بواسطة الهواتف الذكية.
إدارة المخزونData Matrixبصمة صغيرة، مثالي للملصقات الكثيفة على الرفوف.
الامتثال التنظيمي (FDA 21 CFR Part 11)QR + Data Matrixالتنسيق المزدوج يوفر redundancy وقابلية التدقيق.
تتبع الأجهزة الطبيةAztec Codeحجم مدمج يعمل على عبوات ذات مساحة محدودة.

اعتبارات الأداء وأفضل الممارسات

نمط المعالجة الدفعية

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();
    }
}
  • أنشئ كائن Signature جديد لكل ملف للحفاظ على انخفاض استهلاك الذاكرة.
  • استخدم مجموعة خيوط ثابتة (Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() - 1)) للمعالجة المتوازية، لكن راقب حجم الكومة لأن كل Signature يحتفظ بملف PDF كامل في الذاكرة.

الحفاظ على تحديث المكتبات

إصدارات GroupDocs تحسن سرعة المعالجة بما يصل إلى 20 % وتضيف ميزات امتثال HIBC جديدة. جدول فحص التبعيات ربع السنوي.

تخزين القوالب مؤقتًا

حمّل قالب PDF مرة واحدة، استنسخه لكل نوع رمز شريطي، ووقع النسخ. هذا يقلل من عمليات الإدخال/الإخراج ويسرّع سير العمل عالي الحجم.

الأسئلة المتكررة

س: هل يمكن لـ GroupDocs.Signature توقيع أنواع ملفات غير PDF؟
ج: نعم، يدعم أيضًا DOCX وXLSX وPPTX وPNG وJPEG وTIFF باستخدام نفس واجهة برمجة تطبيقات توقيع الرموز الشريطية.

س: كيف يمكنني استكشاف أخطاء “Invalid barcode content”؟
ج: تحقق من أن سلسلة HIBC تتبع الصياغة الدقيقة لمعيار HIBCC، استخدم أداة التحقق عبر الإنترنت، وتأكد من استخدام الثابت QrCodeTypes الصحيح للتنسيق المختار.

س: ما هي السعة القصوى للبيانات لكل تنسيق HIBC؟
ج: QR ≈ 4,296 حرفًا أبجديًا رقميًا، Aztec ≈ 3,832 رقميًا / 3,067 أبجديًا رقميًا، Data Matrix ≈ 3,116 رقميًا / 2,335 أبجديًا رقميًا. حافظ على الرموز تحت 200 حرف لضمان موثوقية المسح المثلى.

س: هل يمكن دمج أنواع متعددة من الرموز الشريطية في ملف PDF واحد؟
ج: بالتأكيد. أنشئ كائنات QrCodeSignOptions منفصلة بمواقع مختلفة واستدعِ signature.sign() لكل منها. فقط تأكد من عدم تداخلها.

س: هل أحتاج إلى اتصال بالإنترنت للتوقيع أثناء التشغيل؟
ج: لا. بعد وضع ملف JAR في مسار الفئة وتفعيل الرخصة، تُجرى جميع العمليات محليًا.

موارد إضافية


آخر تحديث: 2026-05-16
تم الاختبار مع: GroupDocs.Signature 23.12 for Java
المؤلف: GroupDocs

signature.sign(destinFilePath, hibcLic_DM);

دروس ذات صلة