Aspose.PDF FOSS for Python Λειτουργίες

Aspose.PDF FOSS for Python Λειτουργίες

Aspose.PDF FOSS για Python Χαρακτηριστικά

Aspose.PDF FOSS για Python είναι μια καθαρή-Python βιβλιοθήκη για τη δημιουργία, το άνοιγμα, την τροποποίηση και την αποθήκευση εγγράφων PDF. Αυτή η σελίδα παρουσιάζει τις κύριες περιοχές δυνατοτήτων και τις κλάσεις που λειτουργούν ως σημεία εισόδου τους. Κάθε περιοχή καλύπτεται εκτενώς στη δική της σελίδα οδηγού προγραμματιστών.


Διαχείριση Εγγράφου και Σελίδας

Document είναι το αντικείμενο ρίζα για κάθε λειτουργία. Δημιουργήστε το χωρίς ορίσματα για να ξεκινήσετε ένα νέο, κενό έγγραφο, ή καλέστε load_from() για να διαβάσετε ένα υπάρχον από διαδρομή, bytes ή stream. document.pages εκθέτει το μεταβλητό PageCollection, και Page.add_text τοποθετεί κείμενο με θέση σε μια σελίδα.

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

Εξαγωγή Κειμένου και Αναζήτηση

PdfExtractor συνδέεται με ένα έγγραφο και εξάγει το κείμενο σελίδα προς σελίδα. bind_pdf() ανοίγει την πηγή, extract_text() πραγματοποιεί την εξαγωγή, και get_text() επιστρέφει το συσσωρευμένο αποτέλεσμα.

from aspose_pdf import PdfExtractor

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

Για αναζήτηση και αντικατάσταση με θέση, ανά απόσπασμα, το TextFragmentAbsorber εκθέτει ταιριαστά αντικείμενα TextFragment με text_search_options που ελέγχει τη διάκριση πεζών-κεφαλαίων και την αντιστοίχηση τακτικών εκφράσεων.


Απόδοση Σελίδας σε Εικόνες

Document.save_page_as_image αποδίδει μια μόνο σελίδα απευθείας σε αρχείο PNG ή TIFF με ρυθμιζόμενο DPI. Για πρόσβαση χαμηλότερου επιπέδου, Page.render επιστρέφει ένα RasterizedPage με ακατέργαστα δεδομένα pixel μέσω get_pixel() και pixels.

from aspose_pdf import Document

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

Φόρμες και Διαδραστικά Πεδία

AcroForm πεδία διαχειρίζονται μέσω του Document.form, μιας Form προσκηνής. Form.add_text_field() (και τα ισοδύναμα κουμπιά επιλογής, ραδιοπλήκτρων, λίστας και συνδυαστικού πλαισίου) δημιουργεί ένα νέο πεδίο συνδεδεμένο με μια σελίδα και ένα ορθογώνιο widget, επιστρέφοντας ένα Field. Form.fields παραθέτει όλα τα πεδία που υπάρχουν αυτή τη στιγμή στο έγγραφο.

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

Ασφάλεια, Κρυπτογράφηση και Υπογραφές

Document.encrypt προστατεύει ένα έγγραφο με κωδικό χρήστη (απαραίτητο για το άνοιγμά του) και κωδικό ιδιοκτήτη (απαραίτητο για την αλλαγή δικαιωμάτων); decrypt() και change_passwords() διαχειρίζονται την προστασία σε ένα ήδη ανοιχτό έγγραφο. is_encrypted αναφέρει την τρέχουσα κατάσταση.

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

Η επαλήθευση ψηφιακής υπογραφής διαχειρίζεται από το PdfSignature.validate, το οποίο επιστρέφει ένα ValidationResult που περιγράφει την κατάσταση εμπιστοσύνης και ανάκλησης, και το SigningUtils παρέχει βοηθούς πιστοποιητικού και υπογραφής PKCS#7/CAdES.


PDF/A και PDF/UA Συμμόρφωση

Document.validate_pdfa εκτελεί έναν ευριστικό PDF/A έλεγχο συμμόρφωσης και επιστρέφει ένα PdfAValidationResult; convert_to_pdfa() προσπαθεί να διορθώσει το έγγραφο προς αυτό το επίπεδο. validate_pdfua() και auto_tag() παρέχουν τον ισοδύναμο έλεγχο προσβασιμότητας και αυτόματη ετικετοθέτηση του δέντρου δομής για 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")

Συμβουλές και Καλές Πρακτικές

  • Τροποποιήστε το αντικείμενο που επιστρέφεται απευθείας από document.pages, page.annotations ή document.form — οι αλλαγές που γίνονται σε ξεχωριστό αντίγραφο μιας σελίδας ή πεδίου δεν αντικατοπτρίζονται όταν καλέσετε το save().
  • PageCollection είναι μηδενικής δεικτοδότησης σε αυτή τη σύνδεση Python (document.pages[0] είναι η πρώτη σελίδα).
  • Αντιμετωπίστε InvalidPasswordException και PdfParseException πριν από το πιο γενικό AsposePdfException κατά την κλήση του load_from() σε μη αξιόπιστες εισόδους, ώστε να μπορείτε να αντιδράτε διαφορετικά σε λανθασμένο κωδικό πρόσβασης από ό,τι σε κατεστραμμένο αρχείο.
  • Καλέστε το document.optimize() ή το compress_streams() πριν το save() σε έντονα επεξεργασμένα έγγραφα για να αφαιρέσετε αχρησιμοποίητους πόρους και να μειώσετε το μέγεθος του αρχείου.
  • Περάστε ένα περιορισμένο PdfLoadLimits στο load_from() όταν επεξεργάζεστε PDF από μη αξιόπιστη πηγή, ώστε να περιορίσετε τη μνήμη και τον αριθμό αντικειμένων κατά την ανάλυση.

Κοινά Προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
save() παράγει ένα αρχείο με αμετάβλητες επεξεργασίεςΟι επεξεργασίες έγιναν σε αντίγραφο σελίδας, σημείωσης ή πεδίου αντί για το αντικείμενο που ελήφθη από document.pages, annotations ή formΤροποποιήστε το αντικείμενο που επιστρέφεται απευθείας από αυτές τις συλλογές
InvalidPasswordException σε load_from()Το έγγραφο είναι προστατευμένο με κωδικό πρόσβασης και δεν δόθηκε κωδικός, ή δόθηκε λανθασμένοςΕισάγετε τον σωστό κωδικό πρόσβασης: document.load_from(path, password="...")
validate_pdfa() εξακολουθεί να αναφέρει σφάλμα γραμματοσειράς μετά το convert_to_pdfa()Δεν βρέθηκε αντίστοιχο αρχείο γραμματοσειράς στο παρεχόμενο font_lookup_directoryΠροσθέστε τη γραμματοσειρά που λείπει στον φάκελο αναζήτησης ή καταχωρίστε την με το FontRepository πριν από τη μετατροπή
Η αποδοθείσα εικόνα φαίνεται κενήΛάθος δείκτης σελίδας μεταβιβάστηκε στο save_page_as_image() ή στο render()Το pages είναι μηδενική αρίθμηση — επιβεβαιώστε τον δείκτη και ελέγξτε αν το PdfExtractor επιστρέφει κείμενο για αυτή τη σελίδα καθόλου
Το πεδίο που προστέθηκε με το Form.add_text_field() δεν εμφανίζεται στη σελίδαΤο ορθογώνιο του widget βρίσκεται εκτός του media_box της σελίδαςΕπιβεβαιώστε ότι οι συντεταγμένες του ορθογωνίου βρίσκονται εντός του Page.media_box

FAQ

Το Aspose.PDF FOSS για Python εξαρτάται από εμπορική μηχανή PDF;

Όχι. Πρόκειται για μια μηχανή PDF από το μηδέν, καθαρά-Python, που κυκλοφορεί υπό την άδεια MIT. Οι μοναδικές εξαρτήσεις χρόνου εκτέλεσης είναι τα cryptography και asn1crypto, που χρησιμοποιούνται για κρυπτογράφηση και επαλήθευση υπογραφής.

Μπορώ να δημιουργήσω ένα PDF από το μηδέν αντί να ανοίξω ένα υπάρχον;

Ναι. Το Document() χωρίς ορίσματα δημιουργεί ένα κενό, ενθυλακωμένο στη μνήμη έγγραφο· καλέστε το document.pages.add() για να προσθέσετε σελίδες πριν την αποθήκευση.

Σε ποιες μορφές raster μπορώ να αποδώσω μια σελίδα;

Το Page.render και το Document.save_page_as_image παράγουν raster έξοδο PNG ή TIFF· το επιστρεφόμενο RasterizedPage εκθέτει επίσης ακατέργαστα δεδομένα pixel μέσω του get_pixel() και της ιδιότητας pixels.

Ποια εξαίρεση πρέπει να πιάσω για σφάλματα ειδικά του πακέτου;

Πιάσε AsposePdfException. Κάθε σφάλμα ειδικό για το πακέτο — συμπεριλαμβανομένου του parsing (PdfParseException), του κωδικού πρόσβασης και της κρυπτογράφησης (PdfSecurityException, InvalidPasswordException), και των αποτυχιών επικύρωσης (PdfValidationException) — προέρχεται από αυτό.

Πού πρέπει να πάω μετά;

Το Getting Started καλύπτει την εγκατάσταση, την αδειοδότηση και ένα πρώτο λειτουργικό παράδειγμα. Αυτός ο οδηγός προγραμματιστών συνεχίζει με θέματα διαχείρισης εγγράφων όπως φόρμες, ενσωματωμένα συνημμένα αρχεία, εντοπισμό γραμματοσειρών και δημιουργία περιγράμματος/σελιδοδείκτη.


API Reference Περίληψη

Κλάση/ΜέθοδοςΠεριγραφή
DocumentΑντικείμενο ρίζας — δημιουργία, φόρτωση, αποθήκευση και διαχείριση ενός PDF
Document.pagesΤο μεταβλητό PageCollection του εγγράφου
Document.load_from / Document.saveΑνάγνωση ή εγγραφή σε διαδρομή, bytes ή ροή
Document.encrypt / Document.decryptΠροστασία με κωδικό πρόσβασης ή αφαίρεση προστασίας
Document.validate_pdfa / Document.convert_to_pdfaΕυρετικός έλεγχος συμμόρφωσης PDF/A και μετατροπή
Document.validate_pdfua() / Document.auto_tagΈλεγχος προσβασιμότητας PDF/UA και αυτόματη ετικετοποίηση δομής
Page.add_textΠροσθέστε τοποθετημένο κείμενο σε μια σελίδα
Page.renderΑποδώστε μια σελίδα σε ένα RasterizedPage
PdfExtractorΕξάγετε κείμενο σελίδας και ενσωματωμένα συνημμένα
PdfFileEditorΣυνενώστε, χωρίστε, εισάγετε και διαγράψτε σελίδες σε διαφορετικά αρχεία
Form / FieldAcroForm δοχείο και μεμονωμένα πεδία φόρμας
PdfSignature / SigningUtilsΕπαλήθευση και δημιουργία ψηφιακής υπογραφής
AsposePdfExceptionΒασική κλάση για κάθε εξαίρεση ειδική για το πακέτο

Δείτε επίσης

 Ελληνικά