Troubleshooting

Troubleshooting

FontSource, DataSource y PdfPlugin generan NotImplementedError cuando se instancian directamente

FontSource, DataSource y PdfPlugin son clases base abstractas. Cada una declara un método hook que la implementación base genera NotImplementedError por diseño, y espera que una subclase concreta lo sobrescriba:

Clase baseHook abstractoUsa una de estas subclases concretas en su lugar
FontSourceget_font_definitions()FileFontSource, FolderFontSource, MemoryFontSource, SystemFontSource
DataSourceread_bytes() / write_bytes()FileDataSource, StreamDataSource, ByteArrayDataSource
PdfPluginprocess()Merger, Optimizer, Splitter, TextExtractor

Si ves que NotImplementedError se genera a partir de una de estas tres clases base, la solución casi siempre es sustituirla por la clase concreta correspondiente. Para la detección de fuentes, registra una fuente concreta con FontRepository en lugar de usar FontSource directamente:

import aspose_pdf

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

El mismo patrón se aplica a los complementos low-code: construye una subclase PluginOptions con entradas/salidas DataSource concretas y ejecútala a través de un complemento concreto, no PdfPlugin directamente:

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() genera NotImplementedError en una instancia desnuda de Shading

Shading — la clase base para el muestreo de color en regiones limitadas usado por los patrones de sombreado PDF — implementa color_at() y pattern_color_at() delegando en un hook interno _color_at() que no tiene cuerpo predeterminado. En el uso normal nunca construyes Shading tú mismo: el propio analizador PDF de la biblioteca crea la subclase interna correcta para cada ShadingType compatible cuando encuentra un recurso de sombreado, y devuelve None para tipos de sombreado que no reconoce en lugar de recurrir a la clase base. El NotImplementedError solo es accesible si el código de la aplicación instancia Shading directamente y llama a color_at() o pattern_color_at() sin crear una subclase que proporcione una implementación real de _color_at().

Ver también

 Español