Práce s vygenerovanou kompatibilitou API

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_valid

Tipy a osvědčené postupy

  • Importujte každou třídu generated přes její úplnou cestu k podmodulu (from aspose_pdf.generated.document import Document, a podobně pro generated.forms a generated.pdfa) — nikdy nepředpokládejte, že čistý import Document nebo UnsignedContent se 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/PdfAValidationResult za samostatnou dvojici: vytvořte možnosti, spusťte vlastní validační logiku a zaznamenejte nálezy pomocí add_error() sami — nejsou automaticky vyplněny Document.validate_pdfa().
  • Zkontrolujte UnsignedContentAbsorber.has_extracted() před voláním get_extracted(), pokud si nejste jistí, že extract() již proběhl.
  • Upřednostněte primární aspose_pdf.Document API pro nový kód, pokud výslovně nepotřebujete zmenšený, generovaný kompatibilní povrch.

Časté problémy

ProblémPříčinaOprava
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.DocumentImportujte 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.pdfaPoužijte třídy PdfAValidateOptions/PdfAValidationResult exportované z aspose_pdf pro PdfAValidator pracovní postupy
get_extracted() vrací Noneextract() nebyl nikdy zavolán na této instanci UnsignedContentAbsorberZavolejte 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šší APIProveď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 / MetodaPopis:
Document.load_fromNačte dokument ze souborové cesty, bajtů nebo proudu
Document.saveUloží dokument do cíle
Document.optimizeProvádí obecnou optimalizaci, volitelně komprimuje obrázky
Document.optimize_resourcesOptimalizuje sdílené zdroje, jako jsou písma a obrázky
Document.encryptZašifruje dokument jedním heslem
Document.change_passwordsZmění heslo dokumentu
Document.validateVrací, zda je dokument strukturálně platný
Document.disposeUvolňuje prostředky spojené s dokumentem
UnsignedContent.add_page / remove_pagePřidá nebo odebere stránku z balíčku unsigned-content
UnsignedContent.add_form_field / remove_form_fieldPřidá nebo odebere formulářové pole z balíčku unsigned-content
UnsignedContent.add_annotation / remove_annotationPřidá nebo odebere anotaci z balíčku unsigned-content
UnsignedContentAbsorber.extractExtrahuje unsigned content do instance UnsignedContent
UnsignedContentAbsorber.get_extractedVrací poslední extrahovaný UnsignedContent, pokud existuje
UnsignedContentAbsorber.has_extractedHlásí, zda byla extrakce provedena
PdfAValidateOptions.add_inputZaregistruje vstupní zdroj pro validaci
PdfAValidateOptions.set_option / get_optionsNastavuje nebo čte hodnoty validačních možností
PdfAValidationResult.add_errorPřidá chybovou zprávu a označí výsledek jako neplatný
PdfAValidationResult.to_dictVrací slovníkovou reprezentaci validačního výsledku

Viz také:

 Čeština