Я работаю над проектом, который создает счета-фактуры в формате PDF из XML-данных, выводимых другим программным обеспечением, и одним из требований этих счетов-фактур является создание штрих-кодов для некоторых из данные узла и поместить их в форму. В идеале штрих-коды будут генерироваться изнутри шаблона, а не для вызова другой программы для их создания, а затем шаблон попытается найти их как PNG или какой-либо другой формат изображения.Создание штрих-кодов в шаблоне для использования с Apache FOP
Я пробовал использовать расширение barcode4j, но без результатов.
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:barcode="http://barcode4j.krysalis.org/ns" font-size="10pt">
<fo:layout-master-set>
<fo:simple-page-master master-name="master0" page-width="21.0cm" page-height="29.7cm" margin-top="0.0cm" margin-bottom="0.5cm" margin-left="0.5cm" margin-right="0.25cm">
<fo:region-body region-name="body0" margin-top="0.5cm" margin-bottom="0.5cm"/>
<fo:region-before region-name="header0" extent="1.5cm"/>
<fo:region-after region-name="footer0" extent="1.89cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="master0">
<fo:flow flow-name="body0">
<xsl:variable name="CheckMaster" select="count(master_bill_of_lading/details/orders/order)"/>
<xsl:variable name="country" select="master_bill_of_lading/header/Country"/>
<xsl:variable name="barcode-cfg">
<barcode>
<code39>
<height>16mm</height>
<module-width>0.3mm</module-width>
<human-readable>
<placement>none</placement>
</human-readable>
</code39>
</barcode>
</xsl:variable>
<fo:block>
<fo:instream-foreign-object>
<xsl:variable name="bc" select="barcode:generate($barcode-cfg, 123456)" />
<xsl:copy-of select="$bc" />
</fo:instream-foreign-object>
...
Помимо попробовав это, любое решение, которое позволяет мне генерировать штрих-коды в шаблоне будет очень ценится , поскольку чрезвычайно сложно найти последовательные онлайн-ссылки на предполагаемые решения.
Edit: я был в состоянии решить эту проблему, используя расширение FOP barcode4j, которая требует только добавить включенные банки в путь и Lib папки внутри ФОП затем создать штрих-код, используя внутри фо: instream- блок инопланетных объектов