Aspose.PDF FOSS for Python Fitur

Aspose.PDF FOSS for Python Fitur

Aspose.PDF FOSS untuk Python Fitur

Aspose.PDF FOSS for Python adalah perpustakaan pure-Python untuk membuat, membuka, memodifikasi, dan menyimpan dokumen PDF. Halaman ini meninjau area kemampuan utama dan kelas yang berfungsi sebagai titik masuk mereka. Setiap area dibahas secara mendalam pada halaman panduan pengembangnya masing-masing.


Manajemen Dokumen dan Halaman

Document adalah objek akar untuk setiap operasi. Buatlah tanpa argumen untuk memulai dokumen baru yang kosong, atau panggil load_from() untuk membaca yang sudah ada dari jalur, byte, atau aliran. document.pages mengekspos PageCollection yang dapat diubah, dan Page.add_text menempatkan teks yang diposisikan pada halaman.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
page.add_text("Hello from Aspose.PDF FOSS!", x=72, y=720, font_size=18)
document.save("hello.pdf")

Ekstraksi Teks dan Pencarian

PdfExtractor terikat pada dokumen dan menarik teks per halaman. bind_pdf() membuka sumber, extract_text() melakukan ekstraksi, dan get_text() mengembalikan hasil yang terkumpul.

from aspose_pdf import PdfExtractor

extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()

Untuk pencarian dan penggantian yang diposisikan per fragmen, TextFragmentAbsorber mengekspos objek TextFragment yang cocok dengan text_search_options yang mengontrol sensitivitas huruf dan pencocokan ekspresi reguler.


Rendering Halaman ke Gambar

Document.save_page_as_image menyajikan satu halaman langsung ke file PNG atau TIFF dengan DPI yang dapat dikonfigurasi. Untuk akses tingkat lebih rendah, Page.render mengembalikan RasterizedPage dengan data piksel mentah melalui get_pixel() dan pixels.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)

Formulir dan Bidang Interaktif

AcroForm fields are managed through Document.form, a Form facade. Form.add_text_field() (dan setara checkbox, radio, list, serta combo box) membuat bidang baru yang terikat pada sebuah halaman dan persegi panjang widget, mengembalikan Field. Form.fields menampilkan semua bidang yang saat ini ada pada dokumen.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
document.form.add_text_field("customer_name", page, (72, 700, 300, 720))

for field in document.form.fields:
    print(field.name, field.field_type)

document.save("form.pdf")

Keamanan, Enkripsi, dan Tanda Tangan

Document.encrypt melindungi dokumen dengan kata sandi pengguna (diperlukan untuk membuka) dan kata sandi pemilik (diperlukan untuk mengubah izin); decrypt() dan change_passwords() mengelola perlindungan pada dokumen yang sudah terbuka. is_encrypted melaporkan keadaan saat ini.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.encrypt(user_password="secret", owner_password="owner-secret")
document.save("encrypted.pdf")

Verifikasi tanda tangan digital ditangani oleh PdfSignature.validate, yang mengembalikan ValidationResult yang menjelaskan status kepercayaan dan pencabutan, dan SigningUtils menyediakan helper sertifikat dan penandatanganan PKCS#7/CAdES.


PDF/A dan PDF/UA Kepatuhan

Document.validate_pdfa menjalankan pemeriksaan kepatuhan heuristik PDF/A dan mengembalikan PdfAValidationResult; convert_to_pdfa() berusaha memperbaiki dokumen ke tingkat tersebut. validate_pdfua() dan auto_tag() menyediakan pemeriksaan aksesibilitas yang setara serta penandaan pohon struktur otomatis untuk PDF/UA.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")

result = document.validate_pdfa("1b")
if not result.is_valid:
    document.convert_to_pdfa("1b")

document.auto_tag()
document.save("compliant.pdf")

Tips dan Praktik Terbaik

  • Ubah objek yang dikembalikan langsung oleh document.pages, page.annotations, atau document.form — penyuntingan yang dilakukan pada salinan terpisah dari halaman atau bidang tidak akan tercermin saat Anda memanggil save().
  • PageCollection diindeks mulai dari nol dalam ikatan Python ini (document.pages[0] adalah halaman pertama).
  • Tangkap InvalidPasswordException dan PdfParseException sebelum AsposePdfException yang lebih luas saat memanggil load_from() pada masukan yang tidak dipercaya, sehingga Anda dapat merespons secara berbeda antara kata sandi yang salah dan file yang rusak.
  • Panggil document.optimize() atau compress_streams() sebelum save() pada dokumen yang banyak diedit untuk menghapus sumber daya yang tidak terpakai dan memperkecil ukuran file.
  • Berikan PdfLoadLimits yang dibatasi ke load_from() saat memproses PDF dari sumber yang tidak dipercaya, untuk membatasi memori dan jumlah objek selama parsing.

Masalah Umum

MasalahPenyebabPerbaikan
save() menghasilkan file dengan edit yang tidak berubahEdit dilakukan pada halaman, anotasi, atau salinan bidang alih-alih objek yang diperoleh dari document.pages, annotations, atau formModifikasi objek yang dikembalikan langsung oleh koleksi-koleksi tersebut
InvalidPasswordException pada load_from()Dokumen dilindungi kata sandi dan tidak ada kata sandi, atau kata sandi yang salah, yang diberikanMasukkan kata sandi yang benar: document.load_from(path, password="...")
validate_pdfa() masih melaporkan kesalahan font setelah convert_to_pdfa()Tidak ada file font yang cocok ditemukan dalam font_lookup_directory yang disediakanTambahkan font yang hilang ke direktori pencarian, atau daftarkan dengan FontRepository sebelum mengonversi
Gambar yang dirender terlihat kosongIndeks halaman yang salah diberikan ke save_page_as_image() atau render()pages menggunakan indeks nol — konfirmasikan indeksnya, dan periksa apakah PdfExtractor mengembalikan teks untuk halaman tersebut sama sekali
Bidang yang ditambahkan dengan Form.add_text_field() tidak muncul di halamanPersegi panjang widget berada di luar media_box halamanPastikan koordinat persegi panjang berada di dalam Page.media_box

FAQ

Apakah Aspose.PDF FOSS untuk Python bergantung pada mesin PDF komersial?

Tidak. Ini adalah mesin PDF murni-Python yang dibangun dari nol, dirilis di bawah lisensi MIT. Satu-satunya dependensi runtime-nya adalah cryptography dan asn1crypto, yang digunakan untuk enkripsi dan verifikasi tanda tangan.

Apakah saya dapat membuat PDF dari nol alih-alih membuka yang sudah ada?

Ya. Document() tanpa argumen membuat dokumen kosong di memori; panggil document.pages.add() untuk menambahkan halaman sebelum menyimpan.

Format raster apa yang dapat saya render halaman ke?

Page.render dan Document.save_page_as_image menghasilkan output raster PNG atau TIFF; RasterizedPage yang dikembalikan juga menyediakan data piksel mentah melalui get_pixel() dan properti pixels.

Exception apa yang harus saya tangkap untuk kesalahan khusus paket?

Tangkap AsposePdfException. Setiap kesalahan khusus paket — termasuk parsing (PdfParseException), kata sandi dan enkripsi (PdfSecurityException, InvalidPasswordException), serta kegagalan validasi (PdfValidationException) — berasal darinya.

Ke mana saya harus pergi selanjutnya?

Memulai mencakup instalasi, lisensi, dan contoh kerja pertama. Panduan pengembang ini melanjutkan dengan topik manajemen dokumen seperti formulir, lampiran file tersemat, penemuan font, dan penulisan outline/buku tanda.


API Reference Ringkasan

Kelas/MetodeDeskripsi
DocumentObjek root — buat, muat, simpan, dan kelola PDF
Document.pagesMutable PageCollection dokumen
Document.load_from / Document.saveBaca dari atau tulis ke jalur, byte, atau aliran
Document.encrypt / Document.decryptLindungi dengan kata sandi atau hapus perlindungan
Document.validate_pdfa / Document.convert_to_pdfaPemeriksaan kepatuhan heuristik PDF/A dan konversi
Document.validate_pdfua() / Document.auto_tagPemeriksaan aksesibilitas PDF/UA dan penandaan otomatis struktur
Page.add_textTambahkan teks berposisi ke halaman
Page.renderRender halaman ke RasterizedPage
PdfExtractorEkstrak teks halaman dan lampiran yang disematkan
PdfFileEditorMenggabungkan, memisahkan, menyisipkan, dan menghapus halaman di seluruh file
Form / Fieldcontainer AcroForm dan bidang formulir individual
PdfSignature / SigningUtilsValidasi dan pembuatan tanda tangan digital
AsposePdfExceptionKelas dasar untuk setiap pengecualian khusus paket

Lihat Juga

 Bahasa Indonesia