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 / Field | AcroForm δοχείο και μεμονωμένα πεδία φόρμας |
PdfSignature / SigningUtils | Επαλήθευση και δημιουργία ψηφιακής υπογραφής |
AsposePdfException | Βασική κλάση για κάθε εξαίρεση ειδική για το πακέτο |