生成された互換性 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.DocumentAPI を優先してください。
一般的な問題
| 問題 | 原因 | 修正 |
|---|---|---|
利用可能な 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_page | unsigned-content バンドルからページを追加または削除します |
UnsignedContent.add_form_field / remove_form_field | unsigned-content バンドルからフォームフィールドを追加または削除します |
UnsignedContent.add_annotation / remove_annotation | unsigned-content バンドルから注釈を追加または削除します |
UnsignedContentAbsorber.extract | unsigned content を UnsignedContent インスタンスに抽出します |
UnsignedContentAbsorber.get_extracted | 最後に抽出されたUnsignedContentを返します(存在する場合)。 |
UnsignedContentAbsorber.has_extracted | 抽出が実行されたかどうかを報告します。 |
PdfAValidateOptions.add_input | 検証のために入力ソースを登録します。 |
PdfAValidateOptions.set_option / get_options | 検証オプションの値を設定または取得します |
PdfAValidationResult.add_error | エラーメッセージを追加し、結果を無効にマークします |
PdfAValidationResult.to_dict | 検証結果の辞書表現を返します |