إنشاء PDF متوافق مع PDF/3-A وإرفاق فاتورة ZUGFeRD في بايثون
إرفاق ZUGFeRD إلى PDF
نوصي باتباع الخطوات التالية لإرفاق ZUGFeRD إلى PDF:
-
استيراد مكتبة Aspose.PDF وإعطائها اختصار ap للراحة.
-
تعريف المسار إلى الدليل حيث توجد ملفات PDF المدخلة والمخرجة.
-
تعريف المسار إلى ملف PDF الذي سيتم معالجته.
-
تحميل ملف PDF من متغير المسار وإنشاء كائن Document.
-
إنشاء كائن FileSpecification لملف XML الذي يحتوي على بيانات الفاتورة الوصفية. استخدم متغير المسار وسلسلة وصف لإنشاء كائن FileSpecification.
-
قم بتعيين خصائص
mime_type
وaf_relationship
لكائن FileSpecification إلىtext/xml
وALTERNATIVE
على التوالي. -
أضف كائن fileSpecification إلى مجموعة الملفات المضمنة لكائن الوثيقة. هذا يرفق ملف XML بوثيقة الـ PDF كملف بيانات الفاتورة.
-
قم بتحويل وثيقة الـ PDF إلى تنسيق PDF/A-3A. استخدم المسار إلى ملف السجل، وتعداد
PdfFormat.PDF_A_3A
، وتعدادConvertErrorAction.DELETE
لتحويل كائن الوثيقة. -
احفظ وثيقة الـ PDF مع مرفق ZUGFeRD.
import aspose.pdf as ap
# تحديد المسار إلى الدليل حيث توجد ملفات PDF المدخلات والمخرجات
_dataDir = "./"
# تحميل ملف PDF الذي سيتم معالجته
path = _dataDir + "ZUGFeRD/ZUGFeRD-test.pdf"
document = ap.Document(path)
# إنشاء كائن FileSpecification لملف XML الذي يحتوي على بيانات الفاتورة
description = "بيانات الفاتورة المتوافقة مع معيار ZUGFeRD"
path = _dataDir + "ZUGFeRD/factur-x.xml"
fileSpecification = ap.FileSpecification(path, description)
# تعيين نوع MIME وخصائص AFRelationship للملف المضمن
fileSpecification.mime_type = "text/xml"
fileSpecification.af_relationship = ap.AFRelationship.ALTERNATIVE
# إضافة الملف المضمن إلى مجموعة ملفات الـ PDF المضمنة
document.embedded_files.add("factur",fileSpecification)
# تحويل وثيقة الـ PDF إلى تنسيق PDF/A-3A
path = _dataDir + "ZUGFeRD/log.xml"
document.convert(path, ap.PdfFormat.PDF_A_3A, ap.ConvertErrorAction.DELETE)
# احفظ وثيقة الـ PDF مع المرفق ZUGFeRD
path = _dataDir + "ZUGFeRD/ZUGFeRD-res.pdf"
document.save(path)