Bekerja dengan Kompatibilitas yang Dihasilkan API

Bekerja dengan Kompatibilitas yang Dihasilkan API

Bekerja dengan API Kompatibilitas yang Dihasilkan

Aspose.PDF FOSS untuk Python menyediakan antarmuka API kedua yang lebih kecil di bawah subpaket aspose_pdf.generated: generated.document.Document, generated.forms.UnsignedContent dan UnsignedContentAbsorber, serta generated.pdfa.PdfAValidateOptions dan PdfAValidationResult. Setiap kelas ini memiliki nama yang sama dengan kelas di API utama perpustakaan (aspose_pdf.Document, aspose_pdf.UnsignedContent, dan seterusnya), tetapi mereka adalah kelas yang terpisah, didefinisikan secara independen dengan antarmuka metode yang diperkecil. Mereka ada sebagai lapisan kompatibilitas mandiri — selalu impor mereka menggunakan jalur aspose_pdf.generated.* lengkap sehingga Anda tahu mana yang dipanggil.


Siklus hidup Dokumen melalui Dokumen yang dihasilkan

generated.document.Document mendukung siklus hidup dokumen inti: memuat, menyimpan, optimisasi dasar, enkripsi, dan validasi. Sebagian besar propertinya bertipe Any daripada tipe yang lebih kaya yang tersedia pada kelas Document utama.

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()

Enkripsi dan perubahan kata sandi menggunakan formulir satu kata sandi alih-alih kata sandi pengguna/pemilik terpisah dari Document.encrypt utama:

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")

Mengekstrak konten yang belum ditandatangani

generated.forms.UnsignedContentAbsorber mengekstrak halaman, bidang formulir, dan anotasi dari dokumen yang belum ditandatangani ke dalam kontainer UnsignedContent. Panggil extract() untuk menjalankan ekstraksi, kemudian get_extracted() atau has_extracted() untuk memeriksa hasilnya tanpa menjalankannya kembali.

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 juga dapat dibangun dan diisi secara langsung, terlepas dari absorber:

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()

Opsi validasi PDF/A dan hasil

generated.pdfa.PdfAValidateOptions dan PdfAValidationResult adalah pasangan opsi/hasil mandiri untuk alur kerja validasi bergaya PDF/A. Mereka bukan kelas yang dikembalikan oleh Document.validate_pdfa() milik API utama atau yang dikonsumsi oleh PdfAValidator.process() — yang tersebut menggunakan kelas PdfAValidateOptions dan PdfAValidationResult mereka sendiri, yang didefinisikan secara terpisah dengan permukaan yang lebih kaya (level, warnings, is_heuristic, dan font_lookup_directory).

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

Tips dan Praktik Terbaik

  • Impor setiap kelas generated melalui jalur submodul lengkapnya (from aspose_pdf.generated.document import Document, dan serupa untuk generated.forms serta generated.pdfa) — jangan pernah menganggap bahwa impor Document atau UnsignedContent saja akan menyelesaikan ke versi kompatibilitas.
  • Berikan kelas yang diimpor nama lokal yang membedakan setiap kali sebuah file juga menggunakan API utama dalam modul yang sama, sehingga kedua permukaan tetap terlihat terpisah di setiap lokasi pemanggilan.
  • Anggap generated.pdfa.PdfAValidateOptions/PdfAValidationResult sebagai pasangan yang berdiri sendiri: bangun opsi, jalankan logika validasi Anda sendiri, dan catat temuan dengan add_error() secara mandiri — mereka tidak diisi otomatis oleh Document.validate_pdfa().
  • Periksa UnsignedContentAbsorber.has_extracted() sebelum memanggil get_extracted() jika Anda tidak yakin extract() sudah dijalankan.
  • Lebih pilih aspose_pdf.Document API utama untuk kode baru kecuali Anda secara khusus memerlukan permukaan kompatibilitas yang dihasilkan dan diperkecil.

Masalah Umum

MasalahPenyebabPerbaikan
Metode Document yang salah tersedia (hilang pages, form, xmp_metadata, dan serupa)Mengimpor generated.document.Document alih-alih aspose_pdf.Document utamaImpor kelas utama (import aspose_pdf; aspose_pdf.Document()) kecuali jika permukaan yang diperkecil adalah yang Anda maksud
PdfAValidateOptions/PdfAValidationResult dari generated.pdfa tidak bekerja dengan PdfAValidator.process()API utama PdfAValidator mengharapkan kelas PdfAValidateOptions/PdfAValidationResult miliknya sendiri, bukan versi generated.pdfaGunakan kelas PdfAValidateOptions/PdfAValidationResult yang diekspor dari aspose_pdf untuk alur kerja PdfAValidator
get_extracted() mengembalikan Noneextract() tidak pernah dipanggil pada instance UnsignedContentAbsorber tersebutPanggil extract() sebelum get_extracted(), atau periksa has_extracted() terlebih dahulu
Properti pada generated.document.Document bertipe Any dan tidak memberikan autocompletePermukaan yang dihasilkan menukar pengetikan statis dengan API yang lebih kecil dan lebih sederhanaLakukan cast atau dokumentasikan tipe yang diharapkan di lokasi pemanggilan, atau beralih ke kelas Document utama untuk pengetikan yang lebih kaya

FAQ

Apakah aspose_pdf.generated merupakan stub atau placeholder?

Tidak. Itu adalah subpaket yang nyata dan dapat diimpor dengan kelas-kelas yang berfungsi — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions, dan PdfAValidationResult — ini hanya permukaan yang lebih kecil dan berdiri sendiri dibandingkan API utama perpustakaan.

Mengapa generated.document.Document memiliki nama yang sama dengan aspose_pdf.Document?

Mereka adalah dua kelas yang didefinisikan secara independen yang kebetulan memiliki nama yang sama. Mengimpor dari aspose_pdf.generated.document memberi Anda versi kompatibilitas; mengimpor aspose_pdf.Document (atau from aspose_pdf import Document) memberi Anda versi utama.

Apakah saya dapat mengirimkan generated.pdfa.PdfAValidateOptions ke PdfAValidator.process()?

Tidak. PdfAValidator.process() merupakan bagian dari API utama dan mengharapkan kelas PdfAValidateOptions milik API utama, yang memiliki tanda tangan metode yang berbeda (add_input(source) alih-alih add_input() tanpa argumen).

Apakah UnsignedContentAbsorber.extract() memerlukan argumen Document?

Tidak. extract() tidak menerima argumen dalam permukaan kompatibilitas yang dihasilkan; bangun absorber dan panggil extract() secara langsung.


Ringkasan API Reference

Kelas / MetodeDeskripsi
Document.load_fromMemuat dokumen dari jalur file, byte, atau aliran
Document.saveMenyimpan dokumen ke tujuan
Document.optimizeMelakukan optimasi umum, secara opsional mengompresi gambar
Document.optimize_resourcesMengoptimalkan sumber daya bersama seperti font dan gambar
Document.encryptMengenkripsi dokumen dengan satu password
Document.change_passwordsMengubah password dokumen
Document.validateMengembalikan apakah dokumen secara struktural valid
Document.disposeMelepaskan sumber daya yang terkait dengan dokumen
UnsignedContent.add_page / remove_pageMenambahkan atau menghapus halaman dari bundel konten yang tidak ditandatangani
UnsignedContent.add_form_field / remove_form_fieldMenambahkan atau menghapus bidang formulir dari bundel konten yang tidak ditandatangani
UnsignedContent.add_annotation / remove_annotationMenambahkan atau menghapus anotasi dari bundel unsigned-content
UnsignedContentAbsorber.extractMengekstrak konten unsigned ke dalam instance UnsignedContent
UnsignedContentAbsorber.get_extractedMengembalikan UnsignedContent yang terakhir diekstrak, jika ada
UnsignedContentAbsorber.has_extractedMelaporkan apakah ekstraksi telah dilakukan
PdfAValidateOptions.add_inputMendaftarkan sumber masukan untuk validasi
PdfAValidateOptions.set_option / get_optionsMengatur atau membaca nilai opsi validasi
PdfAValidationResult.add_errorMenambahkan pesan kesalahan dan menandai hasil tidak valid
PdfAValidationResult.to_dictMengembalikan representasi kamus dari hasil validasi

Lihat Juga

 Bahasa Indonesia