Créer un PDF Data Matrix avec code-barres HIBC en Java
Si vous développez un logiciel de logistique pharmaceutique ou de santé, vous avez probablement rencontré les limites du suivi papier, les signatures perdues et les cauchemars d’audit. Créer un PDF Data Matrix qui intègre un code‑barres HIBC LIC résout ces problèmes en vous offrant une trace infalsifiable et lisible par machine qui résiste à l’impression, à la numérisation et aux contrôles réglementaires. Dans ce tutoriel, vous verrez exactement comment ajouter la prise en charge du PDF de code QR, ainsi que les formats Aztec et Data Matrix, en utilisant GroupDocs.Signature pour Java.
Réponses rapides
- Quelle bibliothèque gère les codes‑barres HIBC en Java ? GroupDocs.Signature for Java.
- Quel format de code‑barres est le plus compact ? Data Matrix – idéal pour les petites étiquettes.
- Puis‑je ajouter à la fois un QR et un Data Matrix au même PDF ? Oui, il suffit de créer des
QrCodeSignOptionsséparés. - Ai‑je besoin d’une connexion Internet à l’exécution ? Non, la bibliothèque fonctionne entièrement hors ligne après l’installation.
- Quelle version de Java est recommandée ? Java 11+ pour des performances de niveau production.
Qu’est‑ce que la signature PDF avec code-barres HIBC ?
La classe Signature de GroupDocs.Signature pour Java représente un document PDF et fournit des méthodes pour intégrer des codes‑barres HIBC en tant que signatures numériques. En signant un PDF avec un code‑barres HIBC, vous créez un enregistrement vérifiable et infalsifiable qui peut être scanné à tout moment de la chaîne d’approvisionnement.
Pourquoi utiliser conjointement Data Matrix et QR ?
GroupDocs.Signature prend en charge plus de 50 formats d’entrée et de sortie et peut traiter des PDF de plusieurs centaines de pages sans charger le fichier complet en mémoire. Utiliser Data Matrix pour des étiquettes denses et de petite surface et QR pour des documents plus spacieux vous offre le meilleur équilibre entre lisibilité, capacité de données (jusqu’à 4 296 caractères pour QR) et efficacité de l’espace d’impression.
Prérequis
- JDK 11 ou supérieur (Java 8 fonctionne mais Java 11+ est recommandé pour des performances optimales).
- IDE tel qu’IntelliJ IDEA, Eclipse ou VS Code avec extensions Java.
- Maven ou Gradle pour la gestion des dépendances (exemples ci‑dessous).
- PDF d’exemple (par ex.,
sample.pdf) pour tester l’implémentation. - Licence valide GroupDocs.Signature (essai gratuit pour le développement, licence payante pour la production).
Configuration de GroupDocs.Signature pour Java
Configuration Maven
Ajoutez la dépendance à votre pom.xml :
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Configuration Gradle
Pour les projets Gradle, ajoutez ceci à votre build.gradle :
implementation 'com.groupdocs:groupdocs-signature:23.12'
Option de téléchargement direct
Vous pouvez également télécharger le fichier JAR directement depuis GroupDocs.Signature for Java releases et l’ajouter manuellement au classpath de votre projet. Cette approche fonctionne bien dans les environnements à réseau restreint.
Obtention d’une licence
Demandez un essai gratuit ou une licence temporaire auprès de GroupDocs pour supprimer les filigranes et débloquer toutes les fonctionnalités. Les déploiements en production nécessitent une licence achetée.
Initialisation de base
La classe Signature est le point d’entrée pour toutes les opérations de signature. Elle charge le PDF, applique le code‑barres et écrit le fichier signé.
import com.groupdocs.signature.Signature;
class InitializeSignature {
public static void main(String[] args) {
Signature signature = new Signature("sample.pdf");
// Proceed with signing operations...
}
}
Comment créer un PDF Data Matrix avec code-barres HIBC ?
Chargez votre PDF source, configurez un objet QrCodeSignOptions pour le format Data Matrix, puis appelez sign() – c’est tout ce dont vous avez besoin pour intégrer un code‑barres HIBC Data Matrix conforme. Les étapes suivantes vous guident à travers le code exact requis. QrCodeSignOptions définit les paramètres d’une signature de code‑barres, tels que le type, le contenu, la taille et la position.
- Import the required classes – these give you access to the signature engine and Data Matrix options.
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
- Instantiate the
Signatureobject with absolute paths for source and destination files.
String sourceFilePath = "YOUR_DOCUMENT_DIRECTORY";
String destinFilePath = "YOUR_OUTPUT_DIRECTORY/SignWithHIBCLICQR.pdf";
final Signature signature = new Signature(sourceFilePath);
- Configure the Data Matrix options – set the HIBC string, choose
QrCodeTypes.HIBCLICDataMatrix, and define placement coordinates.QrCodeTypesenumerates the supported barcode formats for HIBC signatures.
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
- Apply the signature to the PDF.
signature.sign(destinFilePath, hibcLic_QR);
- Dispose of resources to free file handles and avoid memory leaks.
finally {
if (signature != null) signature.dispose();
}
Exemple complet fonctionnel
Voici le flux complet dans un seul bloc (les espaces réservés représentent le code exact que vous collerez à partir des extraits précédents) :
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();
}
}
}
Réponse directe (40–70 mots)
Pour créer un PDF Data Matrix, instanciez Signature avec votre PDF source, définissez QrCodeSignOptions sur QrCodeTypes.HIBCLICDataMatrix et fournissez une chaîne HIBC correctement formatée, puis appelez signature.sign(outputPath, options). La bibliothèque écrit le PDF signé vers la destination, préservant la mise en page et intégrant le code‑barres comme une signature infalsifiable.
Comment ajouter un PDF de code QR avec GroupDocs.Signature ?
Chargez le PDF, configurez QrCodeSignOptions pour le format QR, puis invoquez sign(). Ce modèle en deux lignes fonctionne pour toute taille de PDF et ajuste automatiquement l’image QR pour une lisibilité optimale. QrCodeSignOptions configure la signature du code‑barres QR, y compris son contenu et ses propriétés visuelles. Il positionne le code selon les coordonnées que vous définissez, garantissant qu’il ne chevauche pas le contenu existant et reste scannable après impression.
- Import QR‑specific classes
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
- Create and configure QR options – note the use of
QrCodeTypes.HIBCLICQR.
signature.sign(destinFilePath, hibcLic_AZ);
- Sign the document
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
Réponse directe : Utilisez
QrCodeTypes.HIBCLICQRdansQrCodeSignOptions, définissez la chaîne de contenu HIBC, positionnez le code avecsetLeft()etsetTop(), puis appelezsignature.sign(outputPath, options). Le code‑barres QR est intégré instantanément, prêt à être capturé par smartphone ou scanner.
Erreurs courantes à éviter
1. Oublier de libérer les ressources
Incorrect :
Signature signature = new Signature("sample.pdf");
signature.sign(destinFilePath, options);
// Oops, no dispose() call
Correction : Enveloppez l’utilisation de Signature dans un bloc try‑with‑resources ou appelez explicitement close() dans un bloc finally.
2. Utiliser des chaînes de format HIBC incorrectes
Incorrect : Utilisation de chaînes génériques comme « 12345 ».
Correction : Respectez la norme HIBCC (par ex., A123PROD30917/75#422011907#GP293). Validez avec le HIBCC online validator.
3. Codage en dur des chemins de fichiers
Incorrect :
String sourceFilePath = "C:/Users/John/Documents/test.pdf";
Correction : Stockez les chemins dans un fichier de configuration ou une variable d’environnement et lisez‑les à l’exécution.
4. Ignorer les conflits de position du code‑barres
Placez les codes‑barres loin du texte ou des signatures existants. Utilisez les coordonnées PDF (l’origine est en bas‑à‑gauche) et testez avec un échantillon imprimé.
5. Ne pas tester avec de vrais scanners
Imprimez le PDF signé et scannez‑le avec le matériel exact utilisé dans votre flux de travail. Vérifiez la lisibilité à différentes qualités d’impression.
Applications pratiques dans le secteur de la santé
| Scénario | Code‑barres recommandé | Pourquoi c’est adapté |
|---|---|---|
| Distribution pharmaceutique | QR Code | Grande capacité de données, largement scanné par les smartphones. |
| Gestion des stocks | Data Matrix | Petite empreinte, idéal pour les étiquettes d’étagères denses. |
| Conformité réglementaire (FDA 21 CFR Part 11) | QR + Data Matrix | Le double format offre redondance et auditabilité. |
| Suivi des dispositifs médicaux | Aztec Code | Taille compacte adaptée aux emballages à espace limité. |
Considérations de performance et bonnes pratiques
Modèle de traitement par lots
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();
}
}
- Créez une nouvelle instance
Signaturepar fichier pour maintenir une faible utilisation de la mémoire. - Utilisez un pool de threads fixe (
Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() - 1)) pour le traitement parallèle, mais surveillez la taille du tas car chaqueSignaturecharge le PDF complet en mémoire.
Maintenir les bibliothèques à jour
Les versions de GroupDocs améliorent la vitesse de traitement jusqu’à 20 % et ajoutent de nouvelles fonctionnalités de conformité HIBC. Planifiez des vérifications de dépendances chaque trimestre.
Mise en cache des modèles
Chargez un modèle PDF une fois, clonez‑le pour chaque variante de code‑barres et signez les clones. Cela réduit les I/O et accélère les flux de travail à haut volume.
Questions fréquemment posées
Q : GroupDocs.Signature peut‑il signer des types de fichiers autres que PDF ?
R : Oui, il prend également en charge DOCX, XLSX, PPTX, PNG, JPEG et TIFF avec la même API de signature de code‑barres.
Q : Comment dépanner les erreurs « Invalid barcode content » ?
R : Vérifiez que votre chaîne HIBC suit exactement la syntaxe HIBCC, utilisez le validateur en ligne, et assurez‑vous d’utiliser la constante QrCodeTypes correcte pour le format choisi.
Q : Quelle est la capacité maximale de données pour chaque format HIBC ?
R : QR ≈ 4 296 caractères alphanumériques, Aztec ≈ 3 832 numériques / 3 067 alphanumériques, Data Matrix ≈ 3 116 numériques / 2 335 alphanumériques. Gardez les codes sous 200 caractères pour une fiabilité de lecture optimale.
Q : Est‑il possible d’intégrer plusieurs types de code‑barres dans un même PDF ?
R : Absolument. Créez des objets QrCodeSignOptions séparés avec des positions différentes et appelez signature.sign() pour chacun. Veillez simplement à ce qu’ils ne se chevauchent pas.
Q : Ai‑je besoin d’une connexion Internet pour signer à l’exécution ?
R : Non. Une fois le JAR présent dans le classpath et la licence activée, toutes les opérations sont effectuées localement.
Ressources supplémentaires
- Documentation GroupDocs.Signature pour Java
- Guide de référence API
- Téléchargements des dernières versions
- Acheter une licence
- Obtenir un essai gratuit
- Demander une licence temporaire
- Forum GroupDocs
Dernière mise à jour : 2026-05-16
Testé avec : GroupDocs.Signature 23.12 pour Java
Auteur : GroupDocs
signature.sign(destinFilePath, hibcLic_DM);