Aspose.PDF FOSS for Python Funzionalità

Aspose.PDF FOSS for Python Funzionalità

Aspose.PDF FOSS per Python Caratteristiche

Aspose.PDF FOSS per Python è una libreria pure-Python per creare, aprire, modificare e salvare documenti PDF. Questa pagina esamina le principali aree di funzionalità e le classi che fungono da punti di ingresso. Ogni area è trattata in profondità nella propria pagina della guida per sviluppatori.


Gestione di documenti e pagine

Document è l’oggetto radice per ogni operazione. Costruiscilo senza argomenti per avviare un nuovo documento vuoto, o chiama load_from() per leggere uno esistente da un percorso, byte o stream. document.pages espone il mutable PageCollection, e Page.add_text posiziona testo su una pagina.

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

Estrazione del Testo e Ricerca

PdfExtractor si lega a un documento e estrae il testo pagina per pagina. bind_pdf() apre la sorgente, extract_text() esegue l’estrazione, e get_text() restituisce il risultato accumulato.

from aspose_pdf import PdfExtractor

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

Per la ricerca e sostituzione posizionate, per frammento, TextFragmentAbsorber espone gli oggetti TextFragment corrispondenti con text_search_options che controlla la sensibilità al maiuscolo/minuscolo e il matching con espressioni regolari.


Rendering della pagina in immagini

Document.save_page_as_image rende una singola pagina direttamente in un file PNG o TIFF a una DPI configurabile. Per un accesso a livello più basso, Page.render restituisce un RasterizedPage con dati pixel grezzi tramite get_pixel() e pixels.

from aspose_pdf import Document

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

Moduli e campi interattivi

AcroForm i campi sono gestiti tramite Document.form, una facciata Form. Form.add_text_field() (e le equivalenti casella di controllo, pulsante radio, elenco e casella combinata) crea un nuovo campo collegato a una pagina e a un rettangolo widget, restituendo un Field. Form.fields elenca tutti i campi attualmente presenti nel documento.

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

Sicurezza, crittografia e firme

Document.encrypt protegge un documento con una password utente (necessaria per aprirlo) e una password proprietario (necessaria per modificare le autorizzazioni); decrypt() e change_passwords() gestiscono la protezione su un documento già aperto. is_encrypted segnala lo stato attuale.

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

La verifica della firma digitale è gestita da PdfSignature.validate, che restituisce un ValidationResult che descrive lo stato di fiducia e revoca, e SigningUtils fornisce helper per certificati e firme PKCS#7/CAdES.


PDF/A e PDF/UA Conformità

Document.validate_pdfa esegue un controllo di conformità PDF/A euristico e restituisce un PdfAValidationResult; convert_to_pdfa() tenta di correggere il documento verso quel livello. validate_pdfua() e auto_tag() forniscono il controllo di accessibilità equivalente e il tagging automatico dell’albero di struttura per 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")

Suggerimenti e migliori pratiche

  • Modifica l’oggetto restituito direttamente da document.pages, page.annotations o document.form — le modifiche apportate a una copia separata di una pagina o campo non vengono riflesse quando chiami save().
  • PageCollection è indicizzato a zero in questo binding Python (document.pages[0] è la prima pagina).
  • Intercetta InvalidPasswordException e PdfParseException prima del più ampio AsposePdfException quando chiami load_from() su input non attendibili, così potrai reagire diversamente a una password errata rispetto a un file corrotto.
  • Chiama document.optimize() o compress_streams() prima di save() su documenti fortemente modificati per rimuovere le risorse inutilizzate e ridurre le dimensioni del file.
  • Passa un PdfLoadLimits limitato a load_from() quando elabori PDF da una fonte non attendibile, per limitare la memoria e il conteggio degli oggetti durante l’analisi.

Problemi comuni

ProblemaCausaCorrezione
save() produce un file con modifiche non cambiateLe modifiche sono state apportate a una copia di pagina, annotazione o campo anziché all’oggetto ottenuto da document.pages, annotations o formModifica l’oggetto restituito direttamente da quelle collezioni
InvalidPasswordException su load_from()Il documento è protetto da password e non è stata fornita alcuna password, o è stata fornita quella errataInserisci la password corretta: document.load_from(path, password="...")
validate_pdfa() segnala ancora un errore di font dopo convert_to_pdfa()Nessun file di font corrispondente è stato trovato nella font_lookup_directory fornitaAggiungi il font mancante alla directory di ricerca, oppure registralo con FontRepository prima della conversione
L’immagine renderizzata appare vuotaIndice di pagina errato passato a save_page_as_image() o render()pages è indicizzato a partire da zero — conferma l’indice e verifica se PdfExtractor restituisce testo per quella pagina
Il campo aggiunto con Form.add_text_field() non appare nella paginaIl rettangolo del widget cade al di fuori del media_box della paginaConferma che le coordinate del rettangolo siano all’interno del Page.media_box

FAQ

Il Aspose.PDF FOSS per Python dipende da un motore PDF commerciale?

No. È un motore PDF pure-Python creato da zero, rilasciato sotto licenza MIT. Le sue uniche dipendenze in fase di esecuzione sono cryptography e asn1crypto, usate per la crittografia e la verifica delle firme.

Posso creare un PDF da zero invece di aprirne uno esistente?

Sì. Document() senza argomenti crea un documento vuoto in memoria; chiama document.pages.add() per aggiungere pagine prima del salvataggio.

In quali formati raster posso renderizzare una pagina?

Page.render e Document.save_page_as_image producono output raster PNG o TIFF; il RasterizedPage restituito espone anche i dati pixel grezzi tramite get_pixel() e la proprietà pixels.

Quale eccezione dovrei catturare per errori specifici del pacchetto?

Cattura AsposePdfException. Ogni errore specifico del pacchetto — inclusi errori di parsing (PdfParseException), di password e cifratura (PdfSecurityException, InvalidPasswordException) e di convalida (PdfValidationException) — deriva da esso.

Dove devo andare dopo?

Getting Started copre l’installazione, la licenza e un primo esempio funzionante. Questa guida per sviluppatori continua con argomenti di gestione dei documenti come moduli, allegati di file incorporati, scoperta dei font e creazione di outline/segnalibri.


API Reference Riepilogo

Classe/MetodoDescrizione
DocumentOggetto radice — crea, carica, salva e gestisci un PDF
Document.pagesIl PageCollection mutabile del documento
Document.load_from / Document.saveLeggi da o scrivi su un percorso, byte o stream
Document.encrypt / Document.decryptProteggi con password o rimuovi la protezione
Document.validate_pdfa / Document.convert_to_pdfaVerifica di conformità euristica PDF/A e conversione
Document.validate_pdfua() / Document.auto_tagVerifica di accessibilità PDF/UA e auto-tagging della struttura
Page.add_textAggiungi testo posizionato a una pagina
Page.renderRenderizza una pagina in un RasterizedPage
PdfExtractorEstrai il testo della pagina e gli allegati incorporati
PdfFileEditorConcatena, dividi, inserisci ed elimina pagine tra file
Form / FieldAcroForm contenitore e campi del modulo individuali
PdfSignature / SigningUtilsConvalida e creazione della firma digitale
AsposePdfExceptionClasse di base per ogni eccezione specifica del pacchetto

Vedi anche

 Italiano