Giriş
Aspose.PDF FOSS for Python şunları içerir: bir aspose_pdf.generated alt paketi ve dört modül: document.py, forms.py, pdfa.py ve security.py. Bunların hiçbiri üst düzey aspose_pdf paketinden yeniden dışa aktarılmadığından, bu rehberdeki her sınıf tam noktalı yolu ile içe aktarılır — from aspose_pdf.generated.document import Document, from aspose_pdf import Document değil.
Dört modül iki farklı yaklaşım benimser. generated.document ve generated.forms ve generated.pdfa her biri kendi sınıflarını tanımlar: ana paketin Document, UnsignedContent/UnsignedContentAbsorber ve PdfAValidateOptions/PdfAValidationResult yapısını yansıtan bağımsız uygulamalar — bu yansıtılmış ad alanı düzenine karşı yazılmış kod için faydalıdır, ancak takma adlar yerine gerçek, ayrı bir sınıf kümesidir. generated.security ise tam tersine hiç yeniden uygulama yapmaz: CompromiseCheckResult, SignaturesCompromiseDetector ve doğrulama enumlarını doğrudan aspose_pdf.security ve aspose_pdf.validation‘den içe aktarır ve yeniden dışa aktarır, böylece her iki içe aktarma yolu da aynı sınıf nesnesine çözümlenir.
Bu rehber dört tanesinin tamamını kapsar ve bir generated sınıfının aynı isimdeki ana paket karşılığına göre nerede farklı davrandığını açıkça belirtir — Document ve UnsignedContentAbsorber iki farklı yerde iki farklı uygulama ile bulunur; bu, yalnızca isimle içe aktarmada kolayca yanlış anlaşılabilecek bir durumdur.
Aspose.PDF FOSS for Python, Python paketi olan aspose-pdf-foss-for-python, MIT lisansı altında yayınlanmıştır ve Python 3.11 veya daha yenisini gerektirir. Üst düzey modül adı aspose_pdf‘dir; kurulum için aşağıdaki Hızlı Başlangıç bölümüne bakın. Çekirdek paket yalnızca cryptography ve asn1crypto‘e bağımlıdır; isteğe bağlı ekler Pillow tabanlı görüntü çözümleme, Brotli tabanlı WOFF2 yazı tipi desteği ve HarfBuzz tabanlı karmaşık metin yerleşimi ekler.
Ana Özellikler
İkinci Belge Uygulaması
aspose_pdf.generated.document.Document, ana aspose_pdf.Document — load_from(), save(), encrypt()/decrypt()/change_passwords(), optimize()/optimize_resources(), repair(), flatten() ve validate()/check() — aynı aspose_pdf.engine.simple_pdf.SimplePdf motoru üzerine aynı temel yaşam döngüsünü uygular. Ana Document alt kümesini yansıtır: pages.add()-stili sayfa oluşturma yok, form/outlines/attachments yok ve render_page() yoktur. Sınıf adı ana paketin Document öğesiyle çakıştığından, aynı modülde ikisine de ihtiyaç duyulduğunda bir takma adla içe aktarın.
from aspose_pdf import Document
from aspose_pdf.generated.document import Document as CompatDocument
with Document() as document:
document.pages.add()
document.save("source.pdf")
compat = CompatDocument()
compat.load_from("source.pdf")
print(compat.page_count, compat.is_encrypted)
compat.optimize(compress_images=True)
compat.save("optimized.pdf", overwrite=True)
compat.dispose()
İmzalanmamış İçeriği Paketleme
aspose_pdf.generated.forms.UnsignedContentAbsorber ve UnsignedContent, imzalanmamış form alanları, sayfalar ve ek açıklamalar için bir kapsayıcı sağlar. Bu, gerçek bir Document alıp form_fields/annotations öğelerini is_signed/signed özelliği yanlış (falsy) olanları filtreleyen üst düzey aspose_pdf.UnsignedContentAbsorber(document)‘den farklıdır. generated.forms sürümü hiç belge almaz — extract(), ona anahtar sözcük argümanları olarak verdiğiniz pages, form_fields ve annotations‘yi bir UnsignedContent örneğine paketler, bu da imzalanmamış öğeler zaten başka yerde toplanmış olduğunda ve sadece ortak kapsayıcı ile onun add_page()/remove_page()-stili değiştiricilerine ihtiyaç duyulduğunda kullanışlıdır.
from aspose_pdf.generated.forms import UnsignedContentAbsorber
absorber = UnsignedContentAbsorber()
content = absorber.extract(
form_fields=["signature_field", "initials_field"],
annotations=["review_stamp"],
)
print(absorber.has_extracted(), content.form_fields, content.annotations)
content.add_page("page-1")
absorber.reset()
print(absorber.get_extracted())
PDF/A Doğrulama Seçenekleri ve Sonuçları
aspose_pdf.generated.pdfa.PdfAValidateOptions, doğrulama ayarlarını ve giriş kaynaklarını toplar; PdfAValidationResult ise sonucu toplar. PdfAValidateOptions.add_input(), kabul etmeden önce Path.exists() ile bir dize yolu kontrol eder ve dosya eksikse PdfIOException hatası yükseltir, böylece çağıran, hatalı bir giriş yolunu doğrulama zamanında değil, hemen öğrenir.
from aspose_pdf import Document
from aspose_pdf.exceptions import PdfIOException
from aspose_pdf.generated.pdfa import PdfAValidateOptions, PdfAValidationResult
with Document() as document:
document.pages.add()
document.save("candidate.pdf")
options = PdfAValidateOptions()
options.set_option("pdfa_version", "PDF/A-2b")
options.add_input("candidate.pdf")
print(options.get_options(), options.inputs)
try:
options.add_input("missing.pdf")
except PdfIOException as error:
print(f"rejected: {error}")
result = PdfAValidationResult()
result.add_error("Missing /OutputIntent for PDF/A-2b")
print(result.is_valid, result.to_dict())
Yeniden Dışa Aktarılan Güvenlik ve Doğrulama Türleri
aspose_pdf.generated.security, CompromiseCheckResult ve SignaturesCompromiseDetector‘yi doğrudan aspose_pdf.security‘ten içe aktarır ve CertificationLevel, RevocationStatus, TrustStatus, ValidationMethod, ValidationMode, ValidationOptions, ValidationResult ve ValidationStatus‘i aspose_pdf.validation‘den içe aktarır. Document ve UnsignedContentAbsorber‘ten farklı olarak, burada bağımsız bir yeniden uygulama yoktur — her iki içe aktarma yolu da aynı nesneyi döndürür.
from aspose_pdf.generated.security import SignaturesCompromiseDetector
from aspose_pdf.security import SignaturesCompromiseDetector as CanonicalDetector
assert SignaturesCompromiseDetector is CanonicalDetector
detector = SignaturesCompromiseDetector(document=None)
result = detector.check()
print(result.compromised, result.reasons)
Hızlı Başlangıç
Paketi kurun, ardından ana Document ile bir belge oluşturun, kaydedin ve generated.pdfa seçenekleri ve sonuç nesneleri üzerinden çalıştırın.
git clone https://github.com/aspose-pdf-foss/Aspose-PDF-FOSS-for-Python.git
cd Aspose-PDF-FOSS-for-Python
pip install -e .from aspose_pdf import Document
from aspose_pdf.generated.pdfa import PdfAValidateOptions, PdfAValidationResult
with Document() as document:
page = document.pages.add()
page.add_text("PDF/A candidate", x=72, y=740, font_size=20)
document.save("candidate.pdf")
options = PdfAValidateOptions()
options.set_option("pdfa_version", "PDF/A-2b")
options.add_input("candidate.pdf")
result = PdfAValidationResult()
if not options.inputs:
result.add_error("No inputs registered")
print(result.to_dict())
Desteklenen Formatlar
| Biçim | Uzantı | Oku | Yaz |
|---|---|---|---|
| Evet | Evet |
PDF okuma ve yazma, Python’ın temel işlevi için Aspose.PDF FOSS dir. Bu kılavuzdaki her sınıf — ana Document, generated.document.Document aynası ve PDF/A yardımcıları — ortak SimplePdf motoru aracılığıyla PDF girişi ve çıkışı üzerinde çalışır; aspose_pdf.generated hangi sınıfı içe aktardığınızı değiştirir, işlenen dosya formatını değil.
Açık Kaynak & Lisanslama
Aspose.PDF FOSS, Python için MIT lisansı altında yayınlanmıştır: kullanım kısıtlaması yok, çalışma zamanı ücreti yok ve ticari ya da kişisel kullanım için kayıt gereksinimi yok. Kaynak kodu github.com/aspose-pdf-foss/Aspose-PDF-FOSS-for-Python adresinde barındırılmaktadır ve paket PyPI üzerinde aspose-pdf-foss-for-python olarak yayınlanmaktadır.