PDF/3-A準拠のPDFを作成し、C#でZUGFeRD請求書を添付する

PDFにZUGFeRDを添付する

以下のコードスニペットは、Aspose.PDF.Drawingライブラリでも動作します。

ZUGFeRDをPDFに添付するための手順をお勧めします:

  • 入力および出力PDFファイルがあるフォルダーを指すパス変数を定義します。
  • パスから既存のPDFファイル(例:“ZUGFeRD-test.pdf”)を読み込んでドキュメントオブジェクトを作成します。
  • ZUGFeRD標準に準拠した請求書メタデータを含む別のファイル"factur-x.xml"のパスと説明を提供して、FileSpecificationオブジェクトを作成します。
  • ファイル仕様オブジェクトに、説明、MIMEタイプ、AF関係などのプロパティを追加します。AF関係は、埋め込まれたファイルがPDF文書にどのように関連しているかを示します。この場合、埋め込まれたファイルはPDFコンテンツの代替表現であるため、“Alternative"に設定されています。
  • ファイル仕様オブジェクトをドキュメントの埋め込みファイルコレクションに追加します。ファイル名はZUGFeRD標準に従って指定する必要があります(例:“factur-x.xml”)。
  • ドキュメントをPDF/A-3B形式に変換します。これは、電子文書の長期保存を確保するPDFのサブセットです。PDF/A-3Bは、PDF文書に任意の形式のファイルを埋め込むことを許可します。
  • 変換されたドキュメントを新しいPDFファイル(例:“ZUGFeRD-res.pdf”)として保存します。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AttachZUGFeRD()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
    
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "ZUGFeRD-testInput.pdf"))
    {
        // Setup new file to be added as attachment
        var description = "Invoice metadata conforming to ZUGFeRD standard";
        var fileSpecification = new Aspose.Pdf.FileSpecification(dataDir + "ZUGFeRD-testXmlInput.xml", description)
        {
            Description = "Zugferd",
            MIMEType = "text/xml",
            Name = "factur-x.xml"
        };
        // Add attachment to document's attachment collection
        document.EmbeddedFiles.Add(fileSpecification);
        document.Convert(new MemoryStream(), Aspose.Pdf.PdfFormat.ZUGFeRD, Aspose.Pdf.ConvertErrorAction.Delete);
        // Save PDF document
        document.Save(dataDir + "AttachZUGFeRD_out.pdf");
    }
}

convertメソッドは、ストリーム、PDF形式、および変換エラーアクションをパラメーターとして受け取ります。ストリームパラメーターは、変換ログを保存するために使用できます。変換エラーアクションパラメーターは、変換中にエラーが発生した場合に何をするかを指定します。この場合、“Delete"に設定されており、PDF/A-3B形式に準拠していない要素はドキュメントから削除されます。