Troubleshooting
FontSource、DataSource、およびPdfPluginは、直接インスタンス化されたときにNotImplementedErrorを発生させます
FontSource、DataSource、およびPdfPluginは抽象基底クラスです。各クラスはフックメソッドを1つ宣言しており、基底実装は設計上NotImplementedErrorを発生させ、具体的なサブクラスがオーバーライドすることを期待しています:
| 基底クラス | 抽象フック | 代わりにこれらの具象サブクラスのいずれかを使用してください |
|---|---|---|
FontSource | get_font_definitions() | FileFontSource, FolderFontSource, MemoryFontSource, SystemFontSource |
DataSource | read_bytes() / write_bytes() | FileDataSource, StreamDataSource, ByteArrayDataSource |
PdfPlugin | process() | Merger, Optimizer, Splitter, TextExtractor |
これら3つの基底クラスのいずれかからNotImplementedErrorが発生しているのを見た場合、ほとんどの場合は対応する具体クラスに差し替えることで解決します。フォント検出では、FontSourceを直接使用する代わりに、FontRepositoryに具体的なソースを登録してください:
import aspose_pdf
aspose_pdf.FontRepository.add_source(
aspose_pdf.FolderFontSource("./fonts", scan_subdirectories=True)
)同じパターンがローコードプラグインにも当てはまります — 具体的なDataSource入力/出力を持つPluginOptionsサブクラスを作成し、PdfPlugin自体ではなく具体的なプラグインを通して実行してください:
import aspose_pdf
options = aspose_pdf.MergeOptions()
options.add_input(aspose_pdf.FileDataSource("part1.pdf"))
options.add_input(aspose_pdf.FileDataSource("part2.pdf"))
options.add_output(aspose_pdf.FileDataSource("merged.pdf"))
aspose_pdf.Merger().process(options)Shading.color_at()は、裸のShadingインスタンス上でNotImplementedErrorを発生させます
Shading — PDFシェーディングパターンで使用される境界領域カラーサンプリングの基底クラス — は、内部の_color_at()フックに委譲することでcolor_at()とpattern_color_at()を実装しています。このフックにはデフォルトの本体がありません。通常の使用ではShadingを自分で構築することはありません:ライブラリ自身のPDFパーサーがシェーディングリソースに遭遇した際、サポートされている各ShadingTypeに対して適切な内部サブクラスを生成し、認識できないシェーディングタイプに対しては基底クラスにフォールバックするのではなくNoneを返します。NotImplementedErrorは、アプリケーションコードがShadingを直接インスタンス化し、実際の_color_at()実装を提供するサブクラス化なしにcolor_at()またはpattern_color_at()を呼び出した場合にのみ到達可能です。