توقيع مستندات PDF
يوفر Aspose.PDF لبيثون عبر .NET توقيع ملف PDF واجهة لتطبيق التوقيعات الرقمية على مستندات PDF الموجودة. باستخدام ملف الشهادة، يمكنك توقيع مستند برمجيًا، ووضع التوقيع على صفحة، وتعيين بيانات تعريف التوقيع، وتخصيص كيفية عرض التوقيع.
توضح هذه المقالة العديد من عمليات سير عمل التوقيع الشائعة:
- إنشاء ملف وربطه
PdfFileSignatureكائن على ملف PDF المدخل. - قم بتكوين شهادة التوقيع.
- قم بتطبيق توقيع رقمي على الصفحة المستهدفة.
- قم بتعيين اسم توقيع ومظهر مرئي اختياريًا.
- احفظ ملف PDF الموقّع.
قم بإعداد أدوات مساعدة للتوقيع قابلة لإعادة الاستخدام
قبل تطبيق التوقيع الرقمي على PDF، من المفيد إعداد مجموعة صغيرة من الوظائف المساعدة القابلة لإعادة الاستخدام. يقوم هؤلاء المساعدون بتهيئة معالج التوقيع وتحديد منطقة التوقيع المرئية وتكوين الشهادة وإنشاء كائنات توقيع PKCS #7 القابلة لإعادة الاستخدام بحيث تظل أمثلة التوقيع أدناه قائمة بذاتها ويسهل متابعتها.
import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
import aspose.pydrawing as apd
DEFAULT_CERTIFICATE_PASSWORD = "Aspose2021"
DEFAULT_SIGNATURE_NAME = "Signature1"
def create_pdf_file_signature(infile):
pdf_signature = pdf_facades.PdfFileSignature()
pdf_signature.bind_pdf(infile)
return pdf_signature
def create_signature_rectangle():
return apd.Rectangle(10, 10, 200, 60)
def configure_signature_certificate(
pdf_signature, certificate_path, certificate_password=DEFAULT_CERTIFICATE_PASSWORD
):
pdf_signature.set_certificate(certificate_path, certificate_password)
def create_pkcs7_signature(
certificate_path, certificate_password=DEFAULT_CERTIFICATE_PASSWORD
):
signature = ap.forms.PKCS7(certificate_path, certificate_password)
signature.reason = "Document approval"
signature.contact_info = "qa@example.com"
signature.location = "New York, USA"
signature.authority = "Aspose.PDF Example"
return signature
def create_custom_signature_appearance():
appearance = ap.forms.SignatureCustomAppearance()
appearance.font_family_name = "Arial"
appearance.font_size = 10
appearance.show_contact_info = True
appearance.show_location = True
appearance.show_reason = True
return appearance
قم بتوقيع ملف PDF باستخدام معايير الشهادة الأساسية
يقوم هذا الأسلوب بتكوين الشهادة مباشرة على PdfFileSignature كائن. يكون مفيدًا عندما تريد تدفق توقيع مباشر مع بيانات تعريف التوقيع القياسية وعدم وجود إدارة منفصلة لكائن التوقيع.
import aspose.pdf.facades as pdf_facades
import sys
from os import path
def sign_pdf_with_basic_parameters(infile, outfile, certificate_path):
pdf_signature = create_pdf_file_signature(infile)
try:
configure_signature_certificate(pdf_signature, certificate_path)
pdf_signature.sign(
1,
"Document approval",
"qa@example.com",
"New York, USA",
False,
create_signature_rectangle(),
)
pdf_signature.save(outfile)
finally:
pdf_signature.close()
قم بتوقيع ملف PDF باستخدام كائن PKCS7
استخدم PKCS7 الكائن عندما تحتاج إلى إعداد التوقيع أولاً ثم تمريره إلى مكالمة التوقيع. يمنحك هذا النمط مزيدًا من التحكم في إعدادات التوقيع وهو أساس جيد لمزيد من عمليات سير العمل المتقدمة.
import aspose.pdf.facades as pdf_facades
import sys
from os import path
def sign_pdf_with_certificate_object(infile, outfile, certificate_path):
pdf_signature = create_pdf_file_signature(infile)
try:
signature = create_pkcs7_signature(certificate_path)
pdf_signature.sign(1, False, create_signature_rectangle(), signature)
pdf_signature.save(outfile)
finally:
pdf_signature.close()
قم بتوقيع ملف PDF بتوقيع مسمى
إذا كان سير عمل المستند يعتمد على اسم حقل توقيع محدد مسبقًا، فقم بتمرير هذا الاسم إلى sign(). هذا يجعل من السهل الرجوع إلى التوقيع لاحقًا للتحقق من الصحة أو المعالجة أو التكامل مع سير عمل الموافقة.
import aspose.pdf.facades as pdf_facades
import sys
from os import path
def sign_pdf_with_named_signature(infile, outfile, certificate_path):
pdf_signature = create_pdf_file_signature(infile)
try:
signature = create_pkcs7_signature(certificate_path)
signature.reason = "Approved by signing workflow"
pdf_signature.sign(
1,
DEFAULT_SIGNATURE_NAME,
"Approved by signing workflow",
"qa@example.com",
"New York, USA",
True,
create_signature_rectangle(),
signature,
)
pdf_signature.save(outfile)
finally:
pdf_signature.close()
قم بتطبيق توقيع مرئي
يمكنك جعل التوقيع مرئيًا على صفحة PDF عن طريق تعيين مظهر مخصص لـ PKCS7 كائن. يكون هذا مفيدًا عندما يجب أن يعرض مستند الإخراج تفاصيل الموافقة مثل السبب والموقع ومعلومات الاتصال للمستخدمين النهائيين.
import aspose.pdf.facades as pdf_facades
import sys
from os import path
def apply_visible_signature(infile, outfile, certificate_path):
pdf_signature = create_pdf_file_signature(infile)
try:
signature = create_pkcs7_signature(certificate_path)
signature.reason = "Visible approval signature"
signature.custom_appearance = create_custom_signature_appearance()
pdf_signature.sign(
1,
"Visible approval signature",
"qa@example.com",
"New York, USA",
True,
create_signature_rectangle(),
signature,
)
pdf_signature.save(outfile)
finally:
pdf_signature.close()