Εργασία με τη Δημιουργημένη Συμβατότητα API

Εργασία με τη Δημιουργημένη Συμβατότητα API

Χρήση της Δημιουργημένης Συμβατότητας API

Aspose.PDF FOSS για Python εκδίδει μια δεύτερη, μικρότερη επιφάνεια API κάτω από το υποπακέτο aspose_pdf.generated: generated.document.Document, generated.forms.UnsignedContent και UnsignedContentAbsorber, και generated.pdfa.PdfAValidateOptions και PdfAValidationResult. Κάθε μία από αυτές τις κλάσεις μοιράζεται το όνομά της με μια κλάση στην κύρια API της βιβλιοθήκης (aspose_pdf.Document, aspose_pdf.UnsignedContent, κ.λπ.), αλλά είναι ξεχωριστές, ανεξάρτητα ορισμένες κλάσεις με περιορισμένη επιφάνεια μεθόδων. Υπάρχουν ως αυτόνομο στρώμα συμβατότητας — πάντα εισάγετέ τις μέσω της πλήρους διαδρομής aspose_pdf.generated.* ώστε να γνωρίζετε ποια καλείτε.


Κύκλος ζωής εγγράφου μέσω του δημιουργημένου Document

generated.document.Document υποστηρίζει τον βασικό κύκλο ζωής εγγράφου: φόρτωση, αποθήκευση, βασική βελτιστοποίηση, κρυπτογράφηση και επικύρωση. Οι περισσότερες ιδιότητές του είναι τύπου Any αντί για τους πιο πλούσιους τύπους που εκτίθενται στην κύρια κλάση Document.

from aspose_pdf.generated.document import Document

doc = Document()
doc.load_from("input.pdf")

doc.optimize(compress_images=True)
doc.optimize_resources(remove_unused=True)

if doc.validate():
    doc.save("output.pdf")

doc.dispose()

Η κρυπτογράφηση και η αλλαγή κωδικού χρησιμοποιούν μια μορφή με έναν μόνο κωδικό αντί για τους ξεχωριστούς κωδικούς χρήστη/ιδιοκτήτη της κύριας Document.encrypt:

from aspose_pdf.generated.document import Document

doc = Document()
doc.load_from("input.pdf")

doc.encrypt("secret")
doc.change_passwords("secret", "new-secret")
doc.save("protected.pdf")

Εξαγωγή περιεχομένου χωρίς υπογραφή

generated.forms.UnsignedContentAbsorber εξάγει τις σελίδες, τα πεδία φόρμας και τις σημειώσεις ενός εγγράφου που δεν έχουν ακόμη υπογραφεί σε ένα δοχείο UnsignedContent. Καλέστε το extract() για να εκτελέσετε την εξαγωγή, έπειτα το get_extracted() ή το has_extracted() για να ελέγξετε το αποτέλεσμα χωρίς να το ξανατρέξετε.

from aspose_pdf.generated.document import Document
from aspose_pdf.generated.forms import UnsignedContentAbsorber

doc = Document()
doc.load_from("input.pdf")

absorber = UnsignedContentAbsorber()
extracted = absorber.extract()

print(len(extracted.pages), len(extracted.form_fields), extracted.annotations)

if absorber.has_extracted():
    same_result = absorber.get_extracted()

absorber.reset()

Το UnsignedContent μπορεί επίσης να δημιουργηθεί και να συμπληρωθεί άμεσα, ανεξάρτητα από έναν απορροφητή:

from aspose_pdf.generated.forms import UnsignedContent

bundle = UnsignedContent()
bundle.add_page(some_page)
bundle.add_form_field(some_field)
bundle.add_annotation(some_annotation)

bundle.remove_page(some_page)
bundle.reset()

Επιλογές επικύρωσης και αποτελέσματα του PDF/A

Το generated.pdfa.PdfAValidateOptions και το PdfAValidationResult είναι ένα αυτόνομο ζεύγος επιλογών/αποτελεσμάτων για ροές εργασίας επικύρωσης τύπου PDF/A. Δεν είναι οι κλάσεις που επιστρέφει το κύριο API στο Document.validate_pdfa() ή που καταναλώνονται από το PdfAValidator.process() — αυτές χρησιμοποιούν τις δικές τους, ξεχωριστά ορισμένες κλάσεις PdfAValidateOptions και PdfAValidationResult με πιο πλούσια διεπαφή (level, warnings, is_heuristic και ένα font_lookup_directory).

from aspose_pdf.generated.pdfa import PdfAValidateOptions, PdfAValidationResult

options = PdfAValidateOptions()
options.add_input()
options.set_option("level", "1b")

stored_options = options.get_options()

result = PdfAValidationResult()
result.add_error("Font not embedded: Arial")

summary = result.to_dict()
is_valid = result.is_valid

Συμβουλές και βέλτιστες πρακτικές

  • Εισάγετε κάθε κλάση generated μέσω της πλήρους διαδρομής του υπομονάδας της (from aspose_pdf.generated.document import Document, και παρομοίως για generated.forms και generated.pdfa) — μην υποθέτετε ποτέ ότι μια απλή εισαγωγή Document ή UnsignedContent θα επιλύσει στην έκδοση συμβατότητας.
  • Δώστε στην εισαχθείσα κλάση ένα διακριτικό τοπικό όνομα όποτε ένα αρχείο χρησιμοποιεί επίσης το κύριο API στο ίδιο module, ώστε οι δύο διεπαφές να παραμένουν ορατά διαχωρισμένες σε κάθε σημείο κλήσης.
  • Αντιμετωπίστε το generated.pdfa.PdfAValidateOptions/PdfAValidationResult ως ένα αυτόνομο ζεύγος: δημιουργήστε τις επιλογές, εκτελέστε τη δική σας λογική επικύρωσης και καταγράψτε τα ευρήματα με το add_error() μόνοι σας — δεν συμπληρώνονται αυτόματα από το Document.validate_pdfa().
  • Ελέγξτε το UnsignedContentAbsorber.has_extracted() πριν καλέσετε το get_extracted() εάν δεν είστε σίγουροι ότι το extract() έχει ήδη εκτελεστεί.
  • Προτιμήστε το κύριο aspose_pdf.Document API για νέο κώδικα, εκτός εάν χρειάζεστε συγκεκριμένα τη μειωμένη, δημιουργημένη-συμβατότητας επιφάνεια.

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

ΠρόβλημαΑιτίαΔιόρθωση
Λανθασμένες Document μέθοδοι διαθέσιμες (λείπουν τα pages, form, xmp_metadata και παρόμοια)Εισήχθη generated.document.Document αντί του κύριου aspose_pdf.DocumentΕισάγετε την κύρια κλάση (import aspose_pdf; aspose_pdf.Document()) εκτός εάν η μειωμένη διεπαφή είναι αυτό που θέλετε
PdfAValidateOptions/PdfAValidationResult από το generated.pdfa δεν λειτουργούν με το PdfAValidator.process()Το PdfAValidator του κύριου API αναμένει τις δικές του κλάσεις PdfAValidateOptions/PdfAValidationResult, όχι τις εκδόσεις generated.pdfaΧρησιμοποιήστε τις κλάσεις PdfAValidateOptions/PdfAValidationResult που εξάγονται από το aspose_pdf για τις ροές εργασίας PdfAValidator
get_extracted() επιστρέφει Noneextract() δεν κλήθηκε ποτέ σε αυτήν την παρουσία UnsignedContentAbsorberΚαλέστε το extract() πριν το get_extracted(), ή ελέγξτε πρώτα το has_extracted()
Οι ιδιότητες στο generated.document.Document έχουν τύπο Any και δεν παρέχουν αυτόματη συμπλήρωσηΗ παραγόμενη διεπαφή ανταλλάσσει τη στατική τυποποίηση για ένα μικρότερο, πιο απλό APIΚάντε μετατροπή τύπου ή τεκμηριώστε τον αναμενόμενο τύπο στο σημείο κλήσης, ή μεταβείτε στην κύρια κλάση Document για πιο πλούσια τυποποίηση

FAQ

Είναι το aspose_pdf.generated stub ή placeholder;

Όχι. Είναι ένα πραγματικό, εισαγώσιμο υποπακέτο με λειτουργικές κλάσεις — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions και PdfAValidationResult — είναι απλώς μια μικρότερη, αυτόνομη επιφάνεια από το κύριο API της βιβλιοθήκης.

Γιατί το generated.document.Document έχει το ίδιο όνομα με το aspose_pdf.Document;

Πρόκειται για δύο ανεξάρτητα ορισμένες κλάσεις που τυχαία μοιράζονται το ίδιο όνομα. Η εισαγωγή από το aspose_pdf.generated.document σας παρέχει τη συμβατή έκδοση· η εισαγωγή του aspose_pdf.Document (ή του from aspose_pdf import Document) σας παρέχει την κύρια έκδοση.

Μπορώ να περάσω ένα generated.pdfa.PdfAValidateOptions στο PdfAValidator.process();

Όχι. PdfAValidator.process() είναι μέρος του κύριου API και αναμένει τη δική του κλάση PdfAValidateOptions του κύριου API, η οποία έχει διαφορετική υπογραφή μεθόδου (add_input(source) αντί για μια μέθοδο χωρίς ορίσματα add_input()).

Το UnsignedContentAbsorber.extract() χρειάζεται ένα όρισμα Document;

Όχι. Το extract() δεν δέχεται ορίσματα στην παραγόμενη επιφάνεια συμβατότητας· δημιουργήστε τον απορροφητή και καλέστε το extract() άμεσα.


Περίληψη API Reference

Κλάση / ΜέθοδοςΠεριγραφή
Document.load_fromΦορτώνει ένα έγγραφο από διαδρομή αρχείου, bytes ή ροή
Document.saveΑποθηκεύει το έγγραφο σε προορισμό
Document.optimizeΕκτελεί γενική βελτιστοποίηση, με προαιρετική συμπίεση εικόνων
Document.optimize_resourcesΒελτιστοποιεί κοινόχρηστους πόρους όπως γραμματοσειρές και εικόνες
Document.encryptΚρυπτογραφεί το έγγραφο με έναν μοναδικό κωδικό πρόσβασης
Document.change_passwordsΑλλάζει τον κωδικό πρόσβασης του εγγράφου
Document.validateΕπιστρέφει αν το έγγραφο είναι δομικά έγκυρο
Document.disposeΑπελευθερώνει τους πόρους που σχετίζονται με το έγγραφο
UnsignedContent.add_page / remove_pageΠροσθέτει ή αφαιρεί μια σελίδα από ένα πακέτο unsigned-content
UnsignedContent.add_form_field / remove_form_fieldΠροσθέτει ή αφαιρεί ένα πεδίο φόρμας από ένα πακέτο unsigned-content
UnsignedContent.add_annotation / remove_annotationΠροσθέτει ή αφαιρεί μια σημείωση από ένα πακέτο unsigned-content
UnsignedContentAbsorber.extractΕξάγει το unsigned content σε μια UnsignedContent instance
UnsignedContentAbsorber.get_extractedΕπιστρέφει το τελευταίο εξαγόμενο UnsignedContent, εάν υπάρχει
UnsignedContentAbsorber.has_extractedΑναφέρει εάν έχει πραγματοποιηθεί εξαγωγή
PdfAValidateOptions.add_inputΚαταχωρεί μια πηγή εισόδου για επικύρωση
PdfAValidateOptions.set_option / get_optionsΟρίζει ή διαβάζει τιμές επιλογών επικύρωσης
PdfAValidationResult.add_errorΠροσθέτει ένα μήνυμα σφάλματος και σηματοδοτεί το αποτέλεσμα ως μη έγκυρο
PdfAValidationResult.to_dictΕπιστρέφει μια αναπαράσταση λεξικού του αποτελέσματος επικύρωσης

Δείτε επίσης

 Ελληνικά