Fonctions de code-barres
Le moteur XSLT utilise des librairies Java tierces pour créer des codes-barres. Ci-dessous, vous trouverez les classes et les méthodes publiques utilisées. Les classes sont emballées dans AltovaBarcodeExtension.jar, qui se trouve dans le dossier <ProgramFilesFolder>\Altova\Common2025\jar.
Les librairies Java utilisées se trouvent dans les sous-dossiers du dossier <ProgramFilesFolder>\Altova\Common2025\jar:
•barcode4j\barcode4j.jar (Site web : http://barcode4j.sourceforge.net/)
•zxing\core.jar (Site web : http://code.google.com/p/zxing/)
Les fichiers de licence sont également situés dans les dossiers respectifs.
Machine virtuelle Java
Afin de pouvoir utiliser les fonctions de code-barres, une machine virtuelle Java doit être disponible sur votre appareil. Pour trouver le chemin vers la machine voir l'encadré ci-dessous.
•Si vous utilisez un produit de desktop Altova, les tentatives d'application Altova pour détecter automatiquement le chemin vers la machine virtuelle Java, en lisant (dans cet ordre) : (i) le registre Windows, et (ii) la variable d'environnement JAVA_HOME. Vous pouvez aussi ajouter un chemin personnalisé dans le dialogue Options de l'application ; cette entrée prendra la priorité sur tout autre chemin Java VM détecté automatiquement.
•Si vous exécutez un produit serveur Altova sur un appareil Windows, le chemin vers la machine virtuelle sera lu tout d'abord depuis le registre Windows ; si cela échoue, la variable d'environnement JAVA_HOME sera utilisée.
•Si vous exécutez un produit de serveur Altova sur un appareil Linux ou macOS, veuillez vous assurer que la variable d'environnement JAVA_HOME est définie correctement et que la bibliothèque des appareils virtuels Java (sur Windows, le fichier jvm.dll) puisse être située dans le répertoire \bin\server ou \bin\client.
Le package com.altova.extensions.barcode
Le package, com.altova.extensions.barcode, est utilisé pour générer la plupart des types de code-barres.
Les classes suivantes sont utilisées :
public class BarcodeWrapper
static BarcodeWrapper newInstance( String name, String msg, int dpi, int orientation, BarcodePropertyWrapper[] arrProperties )
double getHeightPlusQuiet()
double getWidthPlusQuiet()
org.w3c.dom.Document generateBarcodeSVG()
byte[] generateBarcodePNG()
String generateBarcodePngAsHexString()
public class BarcodePropertyWrapper Used to store the barcode properties that will be dynamically set later
BarcodePropertyWrapper( String methodName, String propertyValue )
BarcodePropertyWrapper( String methodName, Integer propertyValue )
BarcodePropertyWrapper( String methodName, Double propertyValue )
BarcodePropertyWrapper( String methodName, Boolean propertyValue )
BarcodePropertyWrapper( String methodName, Character propertyValue )
String getMethodName()
Object getPropertyValue()
public class AltovaBarcodeClassResolver Enregistre la classe com.altova.extensions.barcode.proxy.zxing.QRCodeBean pour le qrcode bean, en plus des classes enregistrées par le org.krysalis.barcode4j.DefaultBarcodeClassResolver.
Le package com.altova.extensions.barcode.proxy.zxing
Le package, com.altova.extensions.barcode.proxy.zxing, est utilisé pour générer le code-barres de type QRCode.
Les classes suivantes sont utilisées :
classe QRCodeBean
•Élargit org.krysalis.barcode4j.impl.AbstractBarcodeBean
•Crée une interface AbstractBarcodeBean pour com.google.zxing.qrcode.encoder
void generateBarcode(CanvasProvider canvasImp, String msg)
void setQRErrorCorrectionLevel(QRCodeErrorCorrectionLevel level)
BarcodeDimension calcDimensions(String msg)
double getVerticalQuietZone()
double getBarWidth()
classe QRCodeErrorCorrectionLevel Erreur niveau de correction pour le QRCode
static QRCodeErrorCorrectionLevel byName(String name)
“L” = ~7% correction
“M” = ~15% correction
“H” = ~25% correction
“Q” = ~30% correction
Exemple XSLT
Ci-dessous, vous trouverez un exemple XSLT pour démontrer comment les fonctions de code-barres sont utilisées dans une feuille de style XSLT.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:altova="https://www.altova.com"
xmlns:altovaext=”http://www.altova.com/xslt-extensions”
xmlns:altovaext-barcode="java:com.altova.extensions.barcode.BarcodeWrapper"
xmlns:altovaext-barcode-property="java:com.altova.extensions.barcode.BarcodePropertyWrapper">
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html>
<head><title/></head>
<body>
<img alt="barcode" src="{altovaext:get-temp-folder()}barcode.png"/>
</body>
</html>
<xsl:result-document
href="{altovaext:get-temp-folder()}barcode.png"
method="text" encoding="base64tobinary" >
<xsl:variable name="barcodeObject"
select="altovaext-barcode:newInstance('Code39',string('some value'),
96,0, (altovaext-barcode-property:new( 'setModuleWidth', 25.4 div 96 * 2 ) ) )"/>
<xsl:value-of select="xs:base64Binary(xs:hexBinary(string(altovaext-barcode:generateBarcodePngAsHexString($barcodeObject)) ))"/>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>