Práce s vygenerovanou kompatibilitou API
Práce s vygenerovanou kompatibilitou API
Aspose.PDF FOSS pro Python dodává druhý, menší API povrch pod subpaketem aspose_pdf.generated: generated.document.Document, generated.forms.UnsignedContent a UnsignedContentAbsorber, a generated.pdfa.PdfAValidateOptions a PdfAValidationResult. Každá z těchto tříd sdílí svůj název s třídou v primárním API knihovny (aspose_pdf.Document, aspose_pdf.UnsignedContent a tak dále), ale jsou samostatné, nezávisle definované třídy s omezeným rozsahem metod. Existují jako samostatná vrstva kompatibility — vždy je importujte pomocí jejich úplné cesty aspose_pdf.generated.*, abyste věděli, kterou voláte.
Životní cyklus dokumentu přes vygenerovaný Document
generated.document.Document podporuje základní životní cyklus dokumentu: načítání, ukládání, základní optimalizaci, šifrování a validaci. Většina jeho vlastností je typována jako Any místo bohatších typů, které jsou vystaveny v primární třídě 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()Šifrování a změny hesla používají formulář s jedním heslem místo samostatných uživatelských/vlastnických hesel primárního 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")Extrahování nepodepsaného obsahu
generated.forms.UnsignedContentAbsorber extrahuje stránky, formulářová pole a anotace dokumentu, které ještě nebyly podepsány, do kontejneru UnsignedContent. Zavolejte extract() pro spuštění extrakce, poté get_extracted() nebo has_extracted() pro kontrolu výsledku bez opětovného spuštění.
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 může být také vytvořen a naplněn přímo, nezávisle na absorberu:
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 možnosti validace a výsledky
generated.pdfa.PdfAValidateOptions a PdfAValidationResult jsou samostatná dvojice možnost/výsledek pro PDF/A-styl validačních workflow. Nejsou to třídy vrácené primárního API’s Document.validate_pdfa() nebo konzumované PdfAValidator.process() — ty používají své vlastní, odděleně definované třídy PdfAValidateOptions a PdfAValidationResult s bohatějším rozhraním (level, warnings, is_heuristic a 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_validTipy a osvědčené postupy
- Importujte každou třídu
generatedpřes její úplnou cestu k podmodulu (from aspose_pdf.generated.document import Document, a podobně progenerated.formsagenerated.pdfa) — nikdy nepředpokládejte, že čistý importDocumentneboUnsignedContentse vyřeší na verzi kompatibility. - Dejte importované třídě rozlišovací lokální název vždy, když soubor také používá primární API ve stejném modulu, aby dvě rozhraní zůstala viditelně oddělena na každém místě volání.
- Považujte
generated.pdfa.PdfAValidateOptions/PdfAValidationResultza samostatnou dvojici: vytvořte možnosti, spusťte vlastní validační logiku a zaznamenejte nálezy pomocíadd_error()sami — nejsou automaticky vyplněnyDocument.validate_pdfa(). - Zkontrolujte
UnsignedContentAbsorber.has_extracted()před volánímget_extracted(), pokud si nejste jistí, žeextract()již proběhl. - Upřednostněte primární
aspose_pdf.DocumentAPI pro nový kód, pokud výslovně nepotřebujete zmenšený, generovaný kompatibilní povrch.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
Nesprávné metody Document jsou k dispozici (chybí pages, form, xmp_metadata a podobně) | Importováno generated.document.Document místo primárního aspose_pdf.Document | Importujte primární třídu (import aspose_pdf; aspose_pdf.Document()), pokud nechcete zmenšené rozhraní |
PdfAValidateOptions/PdfAValidationResult z generated.pdfa nefungují s PdfAValidator.process() | Primární API PdfAValidator očekává své vlastní třídy PdfAValidateOptions/PdfAValidationResult, nikoli verze generated.pdfa | Použijte třídy PdfAValidateOptions/PdfAValidationResult exportované z aspose_pdf pro PdfAValidator pracovní postupy |
get_extracted() vrací None | extract() nebyl nikdy zavolán na této instanci UnsignedContentAbsorber | Zavolejte extract() před get_extracted(), nebo nejprve zkontrolujte has_extracted() |
Vlastnosti na generated.document.Document jsou typovány Any a neposkytují automatické doplňování | Vygenerované rozhraní vyměňuje statické typování za menší, jednodušší API | Proveďte přetypování nebo zdokumentujte očekávaný typ na místě volání, nebo přepněte na primární třídu Document pro bohatší typování |
FAQ
Je aspose_pdf.generated stub nebo placeholder?
Ne. Jedná se o skutečný, importovatelný podbalíček s funkčními třídami — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions a PdfAValidationResult — je to prostě menší, samostatný povrch než primární API knihovny.
Proč má generated.document.Document stejný název jako aspose_pdf.Document?
Jedná se o dvě nezávisle definované třídy, které náhodou sdílejí název. Importování z aspose_pdf.generated.document vám poskytne verzi pro kompatibilitu; importování aspose_pdf.Document (nebo from aspose_pdf import Document) vám poskytne primární verzi.
Mohu předat generated.pdfa.PdfAValidateOptions do PdfAValidator.process()?
Ne. PdfAValidator.process() je součástí primárního API a očekává vlastní třídu PdfAValidateOptions primárního API, která má odlišný podpis metody (add_input(source) místo bezargumentového add_input()).
Potřebuje UnsignedContentAbsorber.extract() argument Document?
Ne. extract() nebere žádné argumenty v generovaném rozhraní kompatibility; vytvořte absorbér a zavolejte extract() přímo.
Shrnutí API Reference
| Třída / Metoda | Popis: |
|---|---|
Document.load_from | Načte dokument ze souborové cesty, bajtů nebo proudu |
Document.save | Uloží dokument do cíle |
Document.optimize | Provádí obecnou optimalizaci, volitelně komprimuje obrázky |
Document.optimize_resources | Optimalizuje sdílené zdroje, jako jsou písma a obrázky |
Document.encrypt | Zašifruje dokument jedním heslem |
Document.change_passwords | Změní heslo dokumentu |
Document.validate | Vrací, zda je dokument strukturálně platný |
Document.dispose | Uvolňuje prostředky spojené s dokumentem |
UnsignedContent.add_page / remove_page | Přidá nebo odebere stránku z balíčku unsigned-content |
UnsignedContent.add_form_field / remove_form_field | Přidá nebo odebere formulářové pole z balíčku unsigned-content |
UnsignedContent.add_annotation / remove_annotation | Přidá nebo odebere anotaci z balíčku unsigned-content |
UnsignedContentAbsorber.extract | Extrahuje unsigned content do instance UnsignedContent |
UnsignedContentAbsorber.get_extracted | Vrací poslední extrahovaný UnsignedContent, pokud existuje |
UnsignedContentAbsorber.has_extracted | Hlásí, zda byla extrakce provedena |
PdfAValidateOptions.add_input | Zaregistruje vstupní zdroj pro validaci |
PdfAValidateOptions.set_option / get_options | Nastavuje nebo čte hodnoty validačních možností |
PdfAValidationResult.add_error | Přidá chybovou zprávu a označí výsledek jako neplatný |
PdfAValidationResult.to_dict | Vrací slovníkovou reprezentaci validačního výsledku |