生成された互換性 API を使用する

生成された互換性 API を使用する

生成された互換性 API の操作

Aspose.PDF FOSS for Python は、aspose_pdf.generated サブパッケージの下に、2番目でより小さな API インターフェースを提供します: 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 は、コアなドキュメントライフサイクル(ロード、保存、基本的な最適化、暗号化、検証)をサポートします。そのプロパティの多くは、主要な Document クラスで公開されているリッチな型ではなく、Any 型として定義されています。

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() が使用するクラスでもありません—それらは、よりリッチなインターフェース (level、warnings、is_heuristic、および font_lookup_directory) を持つ、別々に定義された PdfAValidateOptions と PdfAValidationResult クラスを使用します。

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 も使用している場合は、インポートしたクラスに区別できるローカル名を付けてください。これにより、すべての呼び出し箇所で二つのインターフェースが視覚的に分離された状態を保てます。
  • generated.pdfa.PdfAValidateOptions/PdfAValidationResult を自己完結型のペアとして扱い、オプションを構築し、独自の検証ロジックを実行し、結果は自分で add_error() を用いて記録してください — これらは Document.validate_pdfa() によって自動的に設定されるものではありません。
  • extract() がすでに実行されたか確信がない場合は、get_extracted() を呼び出す前に UnsignedContentAbsorber.has_extracted() を確認してください。
  • 新しいコードでは、特に縮小された生成互換サーフェスが必要な場合を除き、プライマリの aspose_pdf.Document API を優先してください。

一般的な問題

問題原因修正
利用可能な Document メソッドが誤っています(pages、form、xmp_metadata、その他類似が欠如)主要な aspose_pdf.Document の代わりに generated.document.Document をインポートしました縮小されたインターフェースを意図している場合を除き、主要クラス (import aspose_pdf; aspose_pdf.Document()) をインポートしてください
generated.pdfa の PdfAValidateOptions/PdfAValidationResult は PdfAValidator.process() では動作しません主要な API の PdfAValidator は、generated.pdfa バージョンではなく、独自の PdfAValidateOptions/PdfAValidationResult クラスを期待しますaspose_pdf からエクスポートされた PdfAValidateOptions/PdfAValidationResult クラスを PdfAValidator ワークフローで使用してください。
get_extracted() は None を返します。extract() はその UnsignedContentAbsorber インスタンスで一度も呼び出されていません。extract() を get_extracted() の前に呼び出すか、先に has_extracted() を確認してください。
generated.document.Document のプロパティは Any と型付けされており、オートコンプリートが提供されません。生成されたサーフェスは、静的型付けと引き換えに、より小さくシンプルな API を提供します。呼び出し側で期待される型をキャストするかドキュメント化するか、またはリッチな型付けのために主な Document クラスに切り替えてください。

FAQ

aspose_pdf.generated はスタブですか、それともプレースホルダーですか?

いいえ。実際にインポート可能なサブパッケージで、動作するクラス — Document、UnsignedContent、UnsignedContentAbsorber、PdfAValidateOptions、PdfAValidationResult が含まれています — ライブラリのプライマリ API よりも小さく、単独で利用できるサーフェスにすぎません。

なぜ generated.document.Document は aspose_pdf.Document と同じ名前なのですか?

それらは名前が偶然同じである、独立して定義された2つのクラスです。aspose_pdf.generated.document からインポートすると互換性バージョンが得られ、aspose_pdf.Document(または from aspose_pdf import Document)をインポートするとプライマリバージョンが得られます。

generated.pdfa.PdfAValidateOptions を PdfAValidator.process() に渡すことはできますか?

いいえ。PdfAValidator.process() はプライマリ API の一部で、プライマリ API の独自の PdfAValidateOptions クラスを期待していますが、メソッドシグネチャが異なり(add_input(source) で、引数なしの add_input() ではありません)。

UnsignedContentAbsorber.extract() は Document 引数が必要ですか?

いいえ。生成された互換性サーフェスでは extract() は引数を取りません。アブソーバーを構築して、extract() を直接呼び出してください。


API Reference サマリー

クラス / メソッド説明
Document.load_fromファイルパス、バイト列、またはストリームからドキュメントを読み込みます
Document.saveドキュメントを宛先に保存します
Document.optimize汎用的な最適化を実行し、必要に応じて画像を圧縮します
Document.optimize_resourcesフォントや画像などの共有リソースを最適化します
Document.encrypt単一のパスワードでドキュメントを暗号化します
Document.change_passwordsドキュメントのパスワードを変更します
Document.validateドキュメントが構造的に有効かどうかを返します
Document.disposeドキュメントに関連付けられたリソースを解放します
UnsignedContent.add_page / remove_pageunsigned-content バンドルからページを追加または削除します
UnsignedContent.add_form_field / remove_form_fieldunsigned-content バンドルからフォームフィールドを追加または削除します
UnsignedContent.add_annotation / remove_annotationunsigned-content バンドルから注釈を追加または削除します
UnsignedContentAbsorber.extractunsigned content を UnsignedContent インスタンスに抽出します
UnsignedContentAbsorber.get_extracted最後に抽出されたUnsignedContentを返します(存在する場合)。
UnsignedContentAbsorber.has_extracted抽出が実行されたかどうかを報告します。
PdfAValidateOptions.add_input検証のために入力ソースを登録します。
PdfAValidateOptions.set_option / get_options検証オプションの値を設定または取得します
PdfAValidationResult.add_errorエラーメッセージを追加し、結果を無効にマークします
PdfAValidationResult.to_dict検証結果の辞書表現を返します

参照

 日本語