2013-08-14 20 views
5

私は、別のソフトウェアによってXMLデータ出力からPDF形式の請求書を生成するプロジェクトに取り組んでいます。これらの請求書の要件の1つは、そのノードデータをフォームに配置します。理想的には、バーコードは、テンプレートを生成するために別のプログラムを呼び出すのではなく、テンプレートの内部から生成され、次にテンプレートをPNGやその他の画像形式で見つけようとします。Apache FOPで使用するためにテンプレート内にバーコードを生成する

私はbarcode4j拡張を使用しようとしましたが、結果はありませんでした。 これを試したから別に

、私はテンプレート内のバーコードを生成することができます任意のソリューションは非常に高く評価されるだろう

<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> 

<?xml version="1.0" encoding="UTF-8"?> 

...疑わしい解決策への一貫したオンライン参照を見つけるのは非常に困難です。

編集: FOP拡張子barcode4jを使用してこの問題を解決できました.FOP拡張子barcode4jを使用すると、FOP内のパスとlibフォルダにインクルードされたjarファイルを追加し、fo:instream-異物ブロック

答えて

5

ほとんどの1dバーコードは、XSLからSVGへのバーコードを即座に処理するRenderXの自由に利用可能なXSLスタイルシートによってサポートされています。 RenderX Barcode XSLsを参照してください。これには、あなたの例が示す3of9のバーコードが含まれます。

0

バーコードは特殊フォントのテキストに過ぎません。必要なバーコードタイプのTrueTypeバーコードフォントを取得します。そしてfop.xconfフォント]セクションでFOPためにバーコードフォントを追加します。これは、FOP 1.1を使用して、古いプロジェクトで、私はそれが必要推測している

<fo:block 
    font-family="barcode" 
    font-size="36pt" 
>*12345678*</fo:block><!-- YMMW with the * --> 

<font kerning="yes" embed-url="free3of9.ttf"> 
     <font-triplet name="barcode" style="normal" weight="normal"/> 
    </font> 

は次のようにあなたのFOでそれを使用しますFOPの新しいバージョンでも似ています。

関連する問題