Membuat PDF yang sesuai dengan PDF/3-A dan melampirkan faktur ZUGFeRD di C#

Lampirkan ZUGFeRD ke PDF

Potongan kode berikut juga bekerja dengan Aspose.PDF.Drawing library.

Kami merekomendasikan langkah-langkah berikut untuk melampirkan ZUGFeRD ke PDF:

  • Tentukan variabel jalur yang menunjuk ke folder tempat file PDF input dan output berada.
  • Buat objek dokumen dengan memuat file PDF yang ada (misalnya “ZUGFeRD-test.pdf”) dari jalur.
  • Buat objek FileSpecification dengan memberikan jalur dan deskripsi file lain bernama “factur-x.xml”, yang berisi metadata faktur yang sesuai dengan standar ZUGFeRD.
  • Tambahkan properti ke objek spesifikasi file, seperti deskripsi, tipe MIME, dan hubungan AF. Hubungan AF menunjukkan bagaimana file yang disisipkan terkait dengan dokumen PDF. Dalam hal ini, diatur ke “Alternatif”, yang berarti file yang disisipkan adalah representasi alternatif dari konten PDF.
  • Tambahkan objek spesifikasi file ke koleksi file yang disisipkan dalam dokumen. Nama file harus ditentukan sesuai dengan standar ZUGFeRD, misalnya “factur-x.xml”.
  • Konversi dokumen ke format PDF/A-3B, subset dari PDF yang memastikan pelestarian jangka panjang dokumen elektronik. PDF/A-3B memungkinkan penyisipan file dalam format apa pun ke dalam dokumen PDF.
  • Simpan dokumen yang telah dikonversi sebagai file PDF baru (misalnya “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");
    }
}

Metode konversi mengambil stream, format PDF, dan tindakan kesalahan konversi sebagai parameter. Parameter stream dapat digunakan untuk menyimpan log konversi. Parameter tindakan kesalahan konversi menentukan apa yang harus dilakukan jika terjadi kesalahan selama konversi. Dalam hal ini, diatur ke “Hapus”, yang berarti bahwa elemen yang tidak sesuai dengan format PDF/A-3B akan dihapus dari dokumen.