Oluşturulan Uyumluluk API ile Çalışma
Oluşturulan Uyumluluk API ile Çalışma
Aspose.PDF FOSS for Python, aspose_pdf.generated alt paketinde ikinci, daha küçük bir API yüzeyi sunar: generated.document.Document, generated.forms.UnsignedContent ve UnsignedContentAbsorber, ayrıca generated.pdfa.PdfAValidateOptions ve PdfAValidationResult. Bu sınıfların her biri, kütüphanenin birincil API içindeki bir sınıfla aynı ada sahiptir (aspose_pdf.Document, aspose_pdf.UnsignedContent vb.), ancak bunlar ayrı, bağımsız tanımlanmış sınıflardır ve sınırlı bir metod yüzeyine sahiptir. Bunlar bağımsız bir uyumluluk katmanı olarak bulunur — her zaman tam aspose_pdf.generated.* yolu ile içe aktarın, böylece hangi sınıfı çağırdığınızı bilirsiniz.
Oluşturulan Document aracılığıyla belge yaşam döngüsü
generated.document.Document, temel belge yaşam döngüsünü destekler: yükleme, kaydetme, temel optimizasyon, şifreleme ve doğrulama. Özelliklerinin çoğu, birincil Document sınıfında sunulan daha zengin tipler yerine Any tipindedir.
from aspose_pdf.generated.document import Document
doc = Document()
doc.load_from("input.pdf")
doc.optimize(compress_images=True)
doc.optimize_resources(remove_unused=True)
if doc.validate():
doc.save("output.pdf")
doc.dispose()Şifreleme ve şifre değişiklikleri, birincil Document.encrypt‘ın ayrı kullanıcı/sahip şifreleri yerine tek şifreli bir form kullanır:
from aspose_pdf.generated.document import Document
doc = Document()
doc.load_from("input.pdf")
doc.encrypt("secret")
doc.change_passwords("secret", "new-secret")
doc.save("protected.pdf")İmzalanmamış içeriği çıkartma
generated.forms.UnsignedContentAbsorber, henüz imzalanmamış bir belgenin sayfalarını, form alanlarını ve açıklamalarını bir UnsignedContent konteynerine çıkarır. Çıkarma işlemini başlatmak için extract() çağırın, ardından sonucu yeniden çalıştırmadan kontrol etmek için get_extracted() veya has_extracted() kullanın.
from aspose_pdf.generated.document import Document
from aspose_pdf.generated.forms import UnsignedContentAbsorber
doc = Document()
doc.load_from("input.pdf")
absorber = UnsignedContentAbsorber()
extracted = absorber.extract()
print(len(extracted.pages), len(extracted.form_fields), extracted.annotations)
if absorber.has_extracted():
same_result = absorber.get_extracted()
absorber.reset()UnsignedContent da ayrıca doğrudan, bir absorber’dan bağımsız olarak oluşturulup doldurulabilir:
from aspose_pdf.generated.forms import UnsignedContent
bundle = UnsignedContent()
bundle.add_page(some_page)
bundle.add_form_field(some_field)
bundle.add_annotation(some_annotation)
bundle.remove_page(some_page)
bundle.reset()PDF/A doğrulama seçenekleri ve sonuçları
generated.pdfa.PdfAValidateOptions ve PdfAValidationResult, PDF/A-stil doğrulama iş akışları için bağımsız bir seçenek/sonuç çiftidir. Bunlar, birincil API’ın Document.validate_pdfa() tarafından döndürülen sınıflar değildir ve PdfAValidator.process() tarafından tüketilmez — bunlar, kendi, ayrı olarak tanımlanmış PdfAValidateOptions ve PdfAValidationResult sınıflarını, daha zengin bir yüzey (level, warnings, is_heuristic ve bir font_lookup_directory) ile kullanır.
from aspose_pdf.generated.pdfa import PdfAValidateOptions, PdfAValidationResult
options = PdfAValidateOptions()
options.add_input()
options.set_option("level", "1b")
stored_options = options.get_options()
result = PdfAValidationResult()
result.add_error("Font not embedded: Arial")
summary = result.to_dict()
is_valid = result.is_validİpuçları ve En İyi Uygulamalar
- Her
generatedsınıfını tam altmodül yolu (from aspose_pdf.generated.document import Documentve benzer şekildegenerated.formsvegenerated.pdfa) üzerinden içe aktarın — çıplak birDocumentveyaUnsignedContentiçe aktarımının uyumluluk sürümüne çözüleceğini asla varsaymayın. - Aynı modülde bir dosya aynı zamanda birincil API’ı da kullandığında, içe aktarılan sınıfa ayırt edici bir yerel ad verin, böylece iki yüzey her çağrı noktasında açıkça ayrı kalır.
generated.pdfa.PdfAValidateOptions/PdfAValidationResultöğesini kendi içinde bağımsız bir çift olarak ele alın: seçenekleri oluşturun, kendi doğrulama mantığınızı çalıştırın ve bulgularıadd_error()ile kendiniz kaydedin — bunlarDocument.validate_pdfa()tarafından otomatik olarak doldurulmaz.extract()‘nin zaten çalıştığından emin değilseniz,get_extracted()‘i çağırmadan önceUnsignedContentAbsorber.has_extracted()‘i kontrol edin.- Yeni kod için, özellikle azaltılmış, oluşturulmuş-uyumluluk yüzeyine ihtiyacınız yoksa, birincil
aspose_pdf.DocumentAPI’yi tercih edin.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
Yanlış Document yöntemleri mevcut (eksik pages, form, xmp_metadata ve benzerleri) | generated.document.Document içe aktarıldı, birincil aspose_pdf.Document yerine | Azaltılmış arabirim istemiyorsanız birincil sınıfı (import aspose_pdf; aspose_pdf.Document()) içe aktarın |
generated.pdfa kaynağından PdfAValidateOptions/PdfAValidationResult, PdfAValidator.process() ile çalışmaz | Birincil API’ın PdfAValidator kendi PdfAValidateOptions/PdfAValidationResult sınıflarını bekler, generated.pdfa sürümlerini değil | PdfAValidateOptions/PdfAValidationResult sınıflarını aspose_pdf tarafından dışa aktarılan PdfAValidator iş akışları için kullanın |
get_extracted() None döndürür | extract() o UnsignedContentAbsorber örneğinde hiç çağrılmadı | extract()‘ı get_extracted()‘den önce çağırın, ya da önce has_extracted()‘yi kontrol edin |
generated.document.Document üzerindeki özellikler Any tipindedir ve otomatik tamamlama sağlamaz | Oluşturulan yüzey, statik tiplemeyi daha küçük ve daha basit bir API ile takas eder | Beklenen tip’i çağrı noktasında tip dönüştürün veya belgeleyin, ya da daha zengin tipleme için birincil Document sınıfına geçin |
FAQ
aspose_pdf.generated bir stub mı yoksa placeholder mı?
Hayır. Çalışan sınıflara sahip gerçek, içe aktarılabilir bir alt pakettir — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions ve PdfAValidationResult — sadece kütüphanenin birincil API’undan daha küçük, bağımsız bir yüzeydir.
Neden generated.document.Document, aspose_pdf.Document ile aynı ada sahip?
Bunlar, aynı adı taşıyan iki bağımsız tanımlı sınıftır. aspose_pdf.generated.document‘den içe aktarmak size uyumluluk sürümünü verir; aspose_pdf.Document‘i (veya from aspose_pdf import Document‘yi) içe aktarmak ise birincil sürümü verir.
generated.pdfa.PdfAValidateOptions’ı PdfAValidator.process()‘a geçirebilir miyim?
Hayır. PdfAValidator.process() birincil API parçasıdır ve birincil API’in kendi PdfAValidateOptions sınıfını bekler; bu sınıfın farklı bir yöntem imzası vardır (add_input(source) yerine parametresiz add_input()).
UnsignedContentAbsorber.extract() bir Document argümanına ihtiyaç duyuyor mu?
Hayır. extract() oluşturulan uyumluluk yüzeyinde hiçbir argüman almaz; absorber’ı oluşturun ve extract()‘i doğrudan çağırın.
API Reference Özeti
| Sınıf / Metot | Açıklama |
|---|---|
Document.load_from | Bir dosya yolundan, bayt dizisinden veya akıştan belge yükler |
Document.save | Belgeyi bir hedefe kaydeder |
Document.optimize | Genel optimizasyon gerçekleştirir, isteğe bağlı olarak görüntüleri sıkıştırır |
Document.optimize_resources | Yazı tipleri ve görüntüler gibi paylaşılan kaynakları optimize eder |
Document.encrypt | Belgeyi tek bir şifreyle şifreler |
Document.change_passwords | Belgenin şifresini değiştirir |
Document.validate | Belgenin yapısal olarak geçerli olup olmadığını döndürür |
Document.dispose | Belgeyle ilişkili kaynakları serbest bırakır |
UnsignedContent.add_page / remove_page | İmzalanmamış-content paketine bir sayfa ekler veya paketten bir sayfa kaldırır |
UnsignedContent.add_form_field / remove_form_field | İmzalanmamış-content paketine bir form alanı ekler veya paketten bir form alanı kaldırır |
UnsignedContent.add_annotation / remove_annotation | İmzalanmamış-content paketine bir annotation ekler veya paketten bir annotation kaldırır |
UnsignedContentAbsorber.extract | İmzalanmamış içeriği bir UnsignedContent örneğine çıkarır |
UnsignedContentAbsorber.get_extracted | Varsa, son çıkarılan UnsignedContent‘ı döndürür |
UnsignedContentAbsorber.has_extracted | Çıkarma işleminin gerçekleştirildiğini rapor eder |
PdfAValidateOptions.add_input | Doğrulama için bir giriş kaynağını kaydeder |
PdfAValidateOptions.set_option / get_options | Doğrulama seçeneği değerlerini ayarlar veya okur |
PdfAValidationResult.add_error | Bir hata mesajı ekler ve sonucu geçersiz olarak işaretler |
PdfAValidationResult.to_dict | Doğrulama sonucunun sözlük temsili döndürür |