Динамическое сообщение с использованием Barcode4J в документе Apache FOP XSL
У меня возникают проблемы при создании динамического сообщения с использованием Barcode4J ean-13 в документе Apache FOP xsl. Я получил штрих-код для генерации с использованием жестко закодированного сообщения. Однако я хотел бы передать номер штрих-кода в документ xsl в качестве параметра. Как мне это сделать?
Кроме того, я не обращался к странице помощи barcode4J для справки. Я попробовал использовать технику, описанную здесь, но безуспешно.
Вот так выглядит мой xsl-документ
<fo:block-container left="1000" top="1000"
z-index="1" position="relative">
<fo:block>
<fo:instream-foreign-object>
<bc:barcode xmlns:bc="http://barcode4j.krysalis.org/ns"
message="123456789789">
<bc:ean-13 />
</bc:barcode>
</fo:instream-foreign-object>
</fo:block>
</fo:block-container>
1 ответ
Вы не говорите, какую версию XSLT вы используете.
Если вы хотите передать параметр в ваш XSLT, вам нужно объявить параметр как дочерний элемент вашего xsl:stylesheet
Например:
<xsl:param name="barcode" />
Для XSLT 1.0 см. http://www.w3.org/TR/xslt. Вы можете объявить больше об этом, если вы используете XSLT 2.0.
Способ передачи значения параметра будет зависеть от того, какой процессор XSLT вы используете, но вы можете ожидать, что это будет описано в документации по процессору XSLT.
Затем вы можете использовать $barcode
параметр в "шаблоне значения атрибута" в вашей буквально-разметке:
<fo:block-container left="1000" top="1000"
z-index="1" position="relative">
<fo:block>
<fo:instream-foreign-object>
<bc:barcode xmlns:bc="http://barcode4j.krysalis.org/ns"
message="{$barcode}">
<bc:ean-13 />
</bc:barcode>
</fo:instream-foreign-object>
</fo:block>
</fo:block-container>
Шаблоны значений атрибутов в XSLT 1.0 см. По http://www.w3.org/TR/xslt.