Altova StyleVision 2025 Professional Edition

Der XSLT-Prozessor verwendet zur Erstellung von Barcodes Java-Bibliotheken von Drittanbietern. Im Folgenden finden Sie die verwendeten Klassen und öffentlichen Methoden. Die Klassen befinden sich im Paket AltovaBarcodeExtension.jar, das im Ordner <ProgramFilesFolder>\Altova\Common2025\jar gespeichert ist.

 

Die verwendeten Java-Bibliotheken befinden sich in Unterordnern des Ordners <ProgramFilesFolder>\Altova\Common2025\jar:

 

barcode4j\barcode4j.jar  (Website: http://barcode4j.sourceforge.net/)

zxing\core.jar  (Website: http://code.google.com/p/zxing/)

 

Die Lizenzdateien befinden sich ebenfalls in den entsprechenden Ordnern.

 

Java Virtual Machine

Um die Barcode-Funktionen verwenden zu können, muss auf Ihrem Rechner eine Java Virtual Machine zur Verfügung stehen und mit der Bit-Version der Altova-Applikation übereinstimmen (32-Bit oder 64-Bit). Der Pfad zu dieser Machine wird, wie unten angeführt, gefunden.

 

Wenn Sie ein Altova Desktop-Produkt verwenden, versucht die Altova-Applikation, den Pfad zur Java Virtual Machine automatisch zu ermitteln. Dazu wird zuerst (i) die Windows Registry und dann (ii) die JAVA_HOME-Umgebungsvariable gelesen. Sie können im Dialogfeld "Optionen" der Applikation auch einen benutzerdefinierten Pfad hinzufügen. Dieser Eintrag hat Vorrang vor allen anderen automatisch ermittelten Java VM-Pfaden.

Wenn Sie ein Altova Server-Produkt auf einem Windows-Rechner ausführen, wird der Pfad zur Java Virtual Machine zuerst aus der Windows Registry ausgelesen. Falls dies nicht gelingt, wird die JAVA_HOME-Umgebungsvariable verwendet.

Wenn Sie ein Altova Server-Produkt auf einem Linux- oder macOS-Rechner ausführen, sollten Sie sicherstellen, dass die JAVA_HOME-Umgebungsvariable ordnungsgemäß definiert ist und dass sich die Java Virtual Machine-Bibliothek (unter Windows die Datei jvm.dll) entweder im Verzeichnis \bin\server oder \bin\client befindet.

 

XSLT-Beispiel zum Generieren von Barcode

Im Folgenden finden Sie ein XSLT-Beispiel, in dem gezeigt wird, wie Barcode-Funktionen in einem XSLT-Stylesheet verwendet werden.

 

<?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="data:image/png;base64"/>

         </body>

      </html>

      <xsl:result-document 
         href="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>

 

XQuery-Beispiel zum Generieren eines QR-Codes

Im Folgenden finden Sie ein XQuery-Beispiel, in dem gezeigt wird, wie Sie mit Hilfe von Barcode-Funktionen ein QR-Code-Bild generieren können.

 

declare variable $lines := unparsed-text-lines('https://info.healthministry.gv.at/data/timeline-cases-provinces.csv', 'utf-8');

declare variable $main := map:merge(tokenize(head($lines), ';')!map{.:position()});

declare variable $data := map:merge(tail($lines)!array{tokenize(., ';')}!map{?($main?Name): [?($main?Date), xs:integer(?($main?ConfirmedCasesProvinces)) - xs:integer(?($main?Recovered))]}, map{'duplicates':'combine'});

declare variable $chart_img := altovaext:chart(map{'width': 1900, 'height': 600}, map:for-each($data, function($k, $v){[$k, $v?1!substring-before(., 'T'), $v?2][$k != 'Austria']}));

<img src="data:image/png;base64,{$chart_img}"/>

(:$main,  $data,:)

 

 

Das Paket com.altova.extensions.barcode

Das Paket com.altova.extensions.barcode wird zum Generieren der meisten der Barcode-Typen verwendet.

 

Die folgenden Klassen werden verwendet:

 

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 Dient zum Speichern der Barcode-Eigenschaften, die zu einem späteren Zeitpunkt dynamisch definiert werden

 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 Registriert die Klasse com.altova.extensions.barcode.proxy.zxing.QRCodeBean zusätzlich zu den vom org.krysalis.barcode4j.DefaultBarcodeClassResolver registrierten Klassen für die qrcode Bean.

 

 

Das Paket com.altova.extensions.barcode.proxy.zxing

Das Paket com.altova.extensions.barcode.proxy.zxing wird zum Generieren des QRCode Barcodetyps verwendet.

 

Die folgenden Klassen werden verwendet:

 

Klasse QRCodeBean

 

Erweitert org.krysalis.barcode4j.impl.AbstractBarcodeBean

Erstellt ein AbstractBarcodeBean Interface für com.google.zxing.qrcode.encoder  

 

 void generateBarcode(CanvasProvider canvasImp, String msg)

 void setQRErrorCorrectionLevel(QRCodeErrorCorrectionLevel level)

 BarcodeDimension calcDimensions(String msg)

 double getVerticalQuietZone()

 double getBarWidth()

 

Klasse QRCodeErrorCorrectionLevel Fehlerkorrekturebene für den QRCode

 static QRCodeErrorCorrectionLevel byName(String name)

 “L” = ~7% correction

 “M” = ~15% correction

 “H” = ~25% correction

 “Q” = ~30% correction

 

© 2018-2024 Altova GmbH