2016-11-16 13 views
1

ZUGFeRDに準拠する埋め込みXMLファイルを含むPDF/A-3bファイルを作成しようとしています。私はこの目的のためにPerlとPDFLibを使用します。 PDFLibドキュメンテーションは、JavaとPHPのためのものです。 PDFの作成はうまくいきますが、XMLの部分が私の問題です。ZUGFeRD請求書の仮想XMLを作成する方法

どうすればxmlからpvfを作成し、これを自分のpdfに加えることができますか?

これはPDFLibはJavaで推奨していますものです:

// Place XML stream in a virtual PVF file 
String pvf_name = "/pvf/ZUGFeRD-invoice.xml"; 
byte[] xml_bytes = xml_string.getBytes("UTF-8"); 
p.create_pvf(pvf_name, xml_bytes, ""); 

// Create file attachment (asset) from PVF file 
int xml_asset = p.load_asset("Attachment", pvf_name, 
    "mimetype=text/xml description={ZUGFeRD invoice in XML format} " 
    + "relationship=Alternative documentattachment=true"); 

// Associate file attachment with the document 
p.end_document("associatedfiles={" + xml_asset + "}"); 

は、だから私は例を取るとPerlし、それに合わせて、考えた:PHPの例では

my $xmldata = read_file($xmlfile, binmode => ':utf8'); #I use example xml at the moment 

my $pvf_xml = "/pvf/ZUGFeRD-invoice.xml"; 
PDF_create_pvf($pdf, $pvf_xml, $xmldata, ""); #because no OOP i need to call it this way (works with all other PDF Functions) 

my $xml_invoice = PDF_load_asset("Attachment", $pvf_xml, "mimetype=text/xml " 
                 ."description={Rechnungsdaten im Zugferd-Xml-Format} " 
                 ."relationship=Alternative documentattachment=true"); 

PDF_end_document($pdf, "associatedfiles={".$xml_invoice."}"); 

またのByteArrayに変換するために必要ではないですxmlを読んだ後。さらにアンパックで試してみましたが、問題ではないようです。

私は私のスクリプトを呼び出す場合、私はちょうど取得しています:

使用法:load_asset(タイプ、ファイル名、optlistのを)。 at signatur_test.pl 41.

私は問題は、pvf_xmlが前に行が作成されていないと思うということです。 誰でもこれをやっていましたが、これを解決する方法はありませんでしたか?

答えて

1

Argが、私はちょうどload_asset方法でPDF-ハンドルがありませんでした:それは動作します

my $xml_invoice = PDF_load_asset($pdf, "Attachment", $pvf_xml, "mimetype=text/xml " 
                 ."description={Rechnungsdaten im Zugferd-Xml-Format} " 
                 ."relationship=Alternative documentattachment=true"); 

この道を。

関連する問題