Tôi đang làm việc trên dự án tạo hóa đơn ở định dạng PDF từ đầu ra dữ liệu xml bằng một phần mềm khác và một trong các yêu cầu của các hóa đơn này là tạo mã vạch cho một số dữ liệu nút và đặt chúng trong biểu mẫu. Lý tưởng nhất, các mã vạch sẽ được tạo ra từ bên trong khuôn mẫu, thay vì gọi một chương trình khác để tạo chúng và sau đó có mẫu thử tìm chúng dưới dạng PNG hoặc một số định dạng hình ảnh khác.Tạo mã vạch trong mẫu để sử dụng với Apache FOP
Tôi đã thử sử dụng phần mở rộng barcode4j nhưng không có kết quả.
<?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>
...
Bên cạnh đã cố gắng này, bất kỳ giải pháp cho phép tôi để tạo ra mã vạch bên trong mẫu sẽ được vô cùng đánh giá cao , vì rất khó tìm thấy các tham chiếu trực tuyến nhất quán cho các giải pháp bị cáo buộc.
Chỉnh sửa: Tôi có thể giải quyết vấn đề này bằng mã vạch mở rộng FOP4, chỉ yêu cầu bạn thêm các lọ vào thư mục đường dẫn và lib bên trong FOP rồi tạo mã vạch bằng cách sử dụng bên trong fo: instream- khối đối tượng nước ngoài