Aspose.PDF FOSS for Python Funcționalităţi

Aspose.PDF FOSS for Python Funcționalităţi

Aspose.PDF FOSS pentru Python Caracteristici

Aspose.PDF FOSS pentru Python este o bibliotecă pure-Python pentru crearea, deschiderea, modificarea și salvarea documentelor PDF. Această pagină prezintă principalele domenii de capabilități și clasele care servesc ca puncte de intrare. Fiecare domeniu este acoperit în profunzime pe propria pagină de ghid pentru dezvoltatori.


Gestionarea documentelor și a paginilor

Document este obiectul rădăcină pentru fiecare operație. Construiți-l fără argumente pentru a începe un document nou, gol, sau apelați load_from() pentru a citi unul existent dintr-o cale, din bytes sau dintr-un flux. document.pages expune PageCollection mutabil, iar Page.add_text plasează text poziționat pe o pagină.

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

Extracția textului și căutarea

PdfExtractor se leagă de un document și extrage textul pagină cu pagină. bind_pdf() deschide sursa, extract_text() efectuează extracția și get_text() returnează rezultatul acumulat.

from aspose_pdf import PdfExtractor

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

Pentru căutare și înlocuire poziționată, pe fragment, TextFragmentAbsorber expune obiectele TextFragment potrivite, cu text_search_options controlând sensibilitatea la majuscule și potrivirea prin expresii regulate.


Redarea paginii în imagini

Document.save_page_as_image redă o singură pagină direct într-un fișier PNG sau TIFF la un DPI configurabil. Pentru acces la nivel inferior, Page.render returnează un RasterizedPage cu date brute de pixeli prin get_pixel() și pixels.

from aspose_pdf import Document

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

Formulare și câmpuri interactive

Câmpurile AcroForm sunt gestionate prin Document.form, o fațadă Form. Form.add_text_field() (și echivalentele pentru casetă de bifare, buton radio, listă și casetă combinată) creează un nou câmp legat de o pagină și de un dreptunghi widget, returnând un Field. Form.fields enumeră fiecare câmp prezent în document.

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

Securitate, criptare și semnături

Document.encrypt protejează un document cu o parolă de utilizator (necesară pentru a-l deschide) și o parolă de proprietar (necesară pentru a schimba permisiunile); decrypt() și change_passwords() gestionează protecția pe un document deja deschis. is_encrypted raportează starea curentă.

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

Verificarea semnăturii digitale este gestionată de PdfSignature.validate, care returnează un ValidationResult descriind nivelul de încredere și starea de revocare, iar SigningUtils furnizează asistenți pentru certificare și semnare PKCS#7/CAdES.


PDF/A și PDF/UA Conformitate

Document.validate_pdfa rulează o verificare de conformitate euristică PDF/A și returnează un PdfAValidationResult; convert_to_pdfa() încearcă să remedieze documentul către acel nivel. validate_pdfua() și auto_tag() furnizează verificarea echivalentă de accesibilitate și etichetarea automată a arborelui de structură pentru 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")

Sfaturi și cele mai bune practici

  • Modificați obiectul returnat direct de document.pages, page.annotations sau document.form — modificările efectuate pe o copie separată a unei pagini sau a unui câmp nu sunt reflectate când apelați save().
  • PageCollection este indexat de la zero în această legătură Python (document.pages[0] este prima pagină).
  • Interceptați InvalidPasswordException și PdfParseException înainte de AsposePdfException mai larg atunci când apelați load_from() pe intrări neîncredere, astfel încât să puteți reacționa diferit la o parolă incorectă decât la un fișier corupt.
  • Apelați document.optimize() sau compress_streams() înainte de save() pe documente editate intens pentru a elimina resursele neutilizate și a micșora dimensiunea fișierului.
  • Transmiteți un PdfLoadLimits limitat către load_from() când procesați PDF-uri dintr-o sursă neîncredere, pentru a limita memoria și numărul de obiecte în timpul parsării.

Probleme comune

ProblemăCauzăRemediere
save() produce un fișier cu editări neschimbateEditări au fost făcute pe o copie a paginii, adnotării sau câmpului, în loc de obiectul obținut din document.pages, annotations sau formModificați obiectul returnat direct de acele colecții
InvalidPasswordException pe load_from()Documentul este protejat prin parolă și nu a fost furnizată nicio parolă, sau a fost furnizată una greșităIntroduceţi parola corectă: document.load_from(path, password="...")
validate_pdfa() raportează în continuare o eroare de font după convert_to_pdfa()Nu a fost găsit niciun fișier de font corespunzător în font_lookup_directory furnizatAdăugaţi fontul lipsă în directorul de căutare sau înregistraţi-l cu FontRepository înainte de conversie
Imaginea redată pare goalăIndex de pagină greșit transmis către save_page_as_image() sau render()pages este indexat de la zero — confirmaţi indexul și verificaţi dacă PdfExtractor returnează text pentru acea pagină
Câmpul adăugat cu Form.add_text_field() nu apare pe paginăDreptunghiul widgetului cade în afara media_box paginiiConfirmă că coordonatele dreptunghiului sunt în interiorul Page.media_box

FAQ

Depinde Aspose.PDF FOSS pentru Python de un motor PDF comercial?

Nu. Este un motor PDF dezvoltat de la zero, pure-Python, lansat sub licența MIT. Singurele sale dependențe la rulare sunt cryptography și asn1crypto, utilizate pentru criptare și verificarea semnăturii.

Pot să construiesc un PDF de la zero în loc să deschid unul existent?

Da. Document() fără argumente creează un document gol, în memorie; apelează document.pages.add() pentru a adăuga pagini înainte de salvare.

În ce formate raster pot reda o pagină?

Page.render și Document.save_page_as_image produc ieșire raster PNG sau TIFF; RasterizedPage returnat expune, de asemenea, date brute de pixeli prin get_pixel() și proprietatea pixels.

Ce excepție ar trebui să prind pentru erorile specifice pachetului?

Prinde AsposePdfException. Fiecare eroare specifică pachetului — inclusiv parsarea (PdfParseException), parola și criptarea (PdfSecurityException, InvalidPasswordException) și eșecurile de validare (PdfValidationException) — derivă din ea.

Unde merg mai departe?

Getting Started acoperă instalarea, licențierea și un prim exemplu funcțional. Acest ghid pentru dezvoltatori continuă cu subiecte de gestionare a documentelor, cum ar fi formularele, atașamentele de fișiere încorporate, descoperirea fonturilor și crearea de outline/bookmark-uri.


API Reference Rezumat

Clasă/MetodăDescriere:
DocumentObiectul rădăcină — creează, încarcă, salvează și administrează un PDF
Document.pagesPageCollection mutabil al documentului
Document.load_from / Document.saveCitește din sau scrie către o cale, octeți sau flux
Document.encrypt / Document.decryptProtejează cu parolă sau elimină protecția
Document.validate_pdfa / Document.convert_to_pdfaVerificare euristică a conformității PDF/A și conversie
Document.validate_pdfua() / Document.auto_tagVerificare a accesibilității PDF/UA și etichetare automată a structurii
Page.add_textAdăugați text poziționat pe o pagină
Page.renderRedă o pagină într-un RasterizedPage
PdfExtractorExtrage textul paginii și atașamentele încorporate
PdfFileEditorConcatenează, împarte, inserează și șterge pagini între fișiere
Form / FieldAcroForm container și câmpuri de formular individuale
PdfSignature / SigningUtilsValidarea și crearea semnăturii digitale
AsposePdfExceptionClasă de bază pentru fiecare excepție specifică pachetului

Vezi și:

 Română