【问题标题】:XSLT barcode generator from RenderXRenderX 的 XSLT 条码生成器
【发布时间】:2015-02-27 06:52:30
【问题描述】:

任何人知道为什么“code128-svg.xsl”包含一些废话吗?谁能教我如何使用从RenderX Code 128下载必要的文件?我已经下载了那些 code128.xsl、code128-svg.xsl、testdata.xml 和 test-barcodes-fo.xsl 来在本地测试但失败了……

我通过在IE中打开xml来测试它,我添加了

<?xml-stylesheet type="text/xsl" href="testbarcode.xsl"?>

在 xml 的顶部...

输出是:

本文档包含 Code 128 条码的几个示例。一个特殊的样式表解释数据字符串(用“%”转义的特殊字符)并使用 Code 128 将其编码为一系列条形状态。这些 barstates 是用 SVG 绘制的。左侧显示了最终的条形码;在右侧,列出了条形码生成器样式表输入参数和描述。有关样式表使用的更多信息,请参阅 code128.xsl 样式表中的说明。在 APC UPS 装置上发现的代表供应商零件编号“BK500EI”的条形码。 (第一个“1P”代表“供应商零件编号”)。使用“A”代码子集编码的整个条码。在索尼爱立信 T68i 手机上发现的代表序列号“CB500J1C3Y”的条形码。 (第一个'S'代表'Serial')。使用“B”代码子集编码的整个条码。在诺基亚 3210 电池上发现的代表数字“067023611120229212”的条形码。使用“C”代码子集编码的整个条码。复合条码。最初代码子集设置为“B”,但在对数字数据进行编码时切换为“C”以提高条形码信息密度。 UCC/EAN 条码,第一个数据字符是“功能代码一”(%FNC1%),后跟“应用标识符”和数据本身。这种类型的条形码通常使用“C”代码子集进行编码。

【问题讨论】:

  • 请注意任何人。 RenderX 的 XSLT 模板不支持 Code 128 Subset (A,B,C) 自动切换。

标签: xml xslt renderx


【解决方案1】:

样式表创建 SVG 并且预期会调用主模板,因此您必须在 XSLT 中编写一些包装器代码来创建 XHTML,例如包含带有条形码的各种 SVG 图像。我在http://home.arcor.de/martin.honnen/xslt/testdataBarCode2014123101.xml 上整理了一个示例,在 Windows 8.1 上使用当前版本的 Firefox 和 IE 对我来说效果很好。

文件有&lt;?xml-stylesheet type="text/xsl" href="test2014123101.xml"?&gt;,样式表有

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  xmlns="http://www.w3.org/1999/xhtml">

<xsl:import href="code128.xsl.xml"/>

<xsl:output method="xml" indent="yes"/>

<xsl:template match="/">
  <html lang="en">
    <head>
      <title>SVG bar code examples</title>
    </head>
    <body>
      <h1>SVG bar code examples</h1>
      <ul>
        <xsl:apply-templates select="//barcode"/>
      </ul>
    </body>
  </html>
</xsl:template>

<xsl:template match="barcode">
  <li>
      <xsl:call-template name="barcode-code128">
        <xsl:with-param name="value" select="@value"/>
        <xsl:with-param name="string" select="@string"/>
        <xsl:with-param name="print-text" select="$print-text"/>
        <xsl:with-param name="subset" select="@subset"/>
        <xsl:with-param name="makeUCC" select="$makeUCC"/>
        <xsl:with-param name="module" select="$module"/>
        <xsl:with-param name="height" select="$height"/>
        <xsl:with-param name="quiet-horizontal" select="$quiet-horizontal"/>
        <xsl:with-param name="quiet-vertical" select="$quiet-vertical"/>
        <xsl:with-param name="font-family" select="$font-family"/>
        <xsl:with-param name="font-height" select="$font-height"/>
      </xsl:call-template>
   </li>
</xsl:template>

</xsl:stylesheet>

【讨论】:

  • @kingjia 如果它解决了您的问题,请接受这个答案。如果没有,请解释发生了什么问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多