Troubleshooting

Troubleshooting

FontSource, DataSource e PdfPlugin levantam NotImplementedError quando instanciados diretamente

FontSource, DataSource e PdfPlugin são classes base abstratas. Cada uma declara um método hook que a implementação base levanta NotImplementedError por design, e espera que uma subclasse concreta o sobrescreva:

Classe baseHook abstratoUse uma dessas subclasses concretas em vez disso
FontSourceget_font_definitions()FileFontSource, FolderFontSource, MemoryFontSource, SystemFontSource
DataSourceread_bytes() / write_bytes()FileDataSource, StreamDataSource, ByteArrayDataSource
PdfPluginprocess()Merger, Optimizer, Splitter, TextExtractor

Se você vir NotImplementedError levantado por uma dessas três classes base, a solução quase sempre é substituir pela classe concreta correspondente. Para a descoberta de fontes, registre uma fonte concreta com FontRepository em vez de usar FontSource diretamente:

import aspose_pdf

aspose_pdf.FontRepository.add_source(
    aspose_pdf.FolderFontSource("./fonts", scan_subdirectories=True)
)

O mesmo padrão se aplica a plugins low-code — crie uma subclasse PluginOptions com entradas/saídas DataSource concretas e execute-a através de um plugin concreto, não PdfPlugin propriamente dito:

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() levanta NotImplementedError em uma instância Shading nua

Shading — a classe base para amostragem de cor em região delimitada usada por padrões de sombreamento PDF — implementa color_at() e pattern_color_at() delegando para um hook interno _color_at() que não possui corpo padrão. No uso normal você nunca constrói Shading manualmente: o próprio analisador PDF da biblioteca cria a subclasse interna correta para cada ShadingType suportado ao encontrar um recurso de sombreamento, e retorna None para tipos de sombreamento que não reconhece, em vez de recair na classe base. O NotImplementedError só é acessível se o código da aplicação instanciar Shading diretamente e chamar color_at() ou pattern_color_at() sem criar uma subclasse que forneça uma implementação real de _color_at().

Ver também

 Português