Altova StyleVision 2023 Enterprise Edition

Los motores XSLT de Altova usan bibliotecas Java de terceros para crear códigos de barras. A continuación enumeramos las clases y los métodos públicos utilizados. Las clases se empaquetan en AltovaBarcodeExtension.jar, que está en la carpeta <CarpetaArchivosPrograma>\Altova\Common2023\jar.

 

Las bibliotecas Java utilizadas están en las subcarpetas de la carpeta <CarpetaArchivosPrograma>\Altova\Common2023\jar:

 

barcode4j\barcode4j.jar  (sitio web: http://barcode4j.sourceforge.net/)

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

 

Los archivos de licencia están también en estas carpetas.

 

 

Equipo virtual Java

Para poder usar las funciones de códigos de barras debe existir un equipo virtual en su equipo. A continuación se describe cómo encontrar la ruta de acceso a ese equipo.

 

si está usando un producto de escritorio de Altova, la aplicación intentará detectar automáticamente la ruta de acceso al equipo virtual Java; para ello leerá (en este orden): (i) el registro de Windows y (ii) la variable de entorno JAVA_HOME. También puede añadir una ruta personal en el cuadro de diálogo "Opciones" de la aplicación; esta ruta tendrá prioridad frente a cualquier otra ruta de acceso a un equipo virtual Java que se detecte automáticamente.

si está usando un producto servidor de Altova en un equipo Windows, la ruta de acceso al equipo virtual Java se leerá primero desde el registro de Windows; si esto no ocurre se usa la variable de entorno JAVA_HOME.

si está usando un producto servidor de Altova en un equipo Linux o macOS, entonces asegúrese de que la variable de entorno JAVA_HOME está definida correctamente y la biblioteca Java de equipos virtuales (en Windows, el archivo jvm.dll) se encuentra en uno de estos directorios: \bin\server o \bin\client.

 

Ejemplo XSLT

A continuación puede ver un ejemplo de XSLT que ilustra el uso de funciones para códigos de barras en una hoja de estilos 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=”https://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(&apos;Code39&apos;,string(&apos;some value&apos;), 
            96,0, (altovaext-barcode-property:new( &apos;setModuleWidth&apos;, 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>

 

Paquete com.altova.extensions.barcode

El paquete com.altova.extensions.barcode se utiliza para generar la mayoría de códigos de barras.

 

Se utilizan estas clases:

 

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 Utilizada para almacenar las propiedades del código de barras que se establecerán más tarde de forma dinámica

 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 Registra la clase com.altova.extensions.barcode.proxy.zxing.QRCodeBean para el bean qrcode, además de las clases registradas por org.krysalis.barcode4j.DefaultBarcodeClassResolver.

 

Ejemplo XQuery para generar códigos QR

A continuación puede ver un ejemplo de XQuery en el que se ven las funciones de código de barras que puede usar para generar una imagen de código QR.

 

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,:)

 

Paquete com.altova.extensions.barcode.proxy.zxing

El paquete com.altova.extensions.barcode.proxy.zxing se utiliza para generar códigos de barras de tipo QRCode.

 

Se utilizan estas clases:

 

class QRCodeBean

 

Extiende org.krysalis.barcode4j.impl.AbstractBarcodeBean

Crea una interfaz AbstractBarcodeBean para com.google.zxing.qrcode.encoder  

 

 void generateBarcode(CanvasProvider canvasImp, String msg)

 void setQRErrorCorrectionLevel(QRCodeErrorCorrectionLevel level)

 BarcodeDimension calcDimensions(String msg)

 double getVerticalQuietZone()

 double getBarWidth()

 

class QRCodeErrorCorrectionLevel Nivel de corrección de errores para QRCode

 static QRCodeErrorCorrectionLevel byName(String name)

 “L” = ~7% correction

 “M” = ~15% correction

 “H” = ~25% correction

 “Q” = ~30% correction

© 2017-2023 Altova GmbH