Obtener advertencias por sustitución de fuente al renderizar archivo de Excel con C++
Para obtener advertencias por sustitución de fuentes al convertir archivos de Excel a PDF, implementa la interfaz IWarningCallback
y establece la propiedad PdfSaveOptions.WarningCallback
con la interfaz implementada.
La captura de pantalla a continuación muestra un archivo de Excel fuente que utilizaremos en el siguiente código. Tiene algo de texto en las celdas A6 y A7 en fuentes que no son renderizadas correctamente por Microsoft Excel.
No todas las fuentes se renderizan correctamente |
---|
![]() |
Aspose.Cells sustituirá las fuentes en las celdas A6 y A7 con fuentes adecuadas como se muestra a continuación.
Fuentes Sustituidas |
---|
![]() |
Descargar Archivo Fuente y PDF de Salida
Puedes descargar el archivo de Excel de origen y el PDF de salida desde los siguientes enlaces:
Código
El siguiente código implementa IWarningCallback
y establece la propiedad PdfSaveOptions.WarningCallback
con la interfaz implementada. Ahora, cada vez que alguna fuente sea sustituida en cualquier celda, Aspose.Cells generará una advertencia dentro del método WarningCallback.Warning()
.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
class GetWarningsForFontSubstitution : public IWarningCallback
{
public:
void Warning(WarningInfo& info) override
{
if (info.GetType() == ExceptionType::FontSubstitution)
{
std::cout << "WARNING INFO: " << info.GetDescription().ToUtf8() << std::endl;
}
}
static void Run()
{
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
Workbook workbook(srcDir + u"source.xlsx");
PdfSaveOptions options;
auto callback = std::make_shared<GetWarningsForFontSubstitution>();
options.SetWarningCallback(callback.get());
workbook.Save(outDir + u"output_out.pdf", options);
std::cout << "PDF saved successfully with font substitution warnings!" << std::endl;
}
};
int main()
{
Aspose::Cells::Startup();
GetWarningsForFontSubstitution::Run();
Aspose::Cells::Cleanup();
return 0;
}
Salida
Después de convertir el archivo de Excel fuente a PDF, las advertencias se emiten en la consola de depuración de esta manera:
WARNING INFO: Font substitution: Font [ Athene Logos; Regular ] has been substituted in Cell [ A6 ] in Sheet [ Sheet1 ].
WARNING INFO: Font substitution: Font [ B Traffic; Regular ] has been substituted in Cell [ A7 ] in Sheet [ Sheet1 ].
Workbook.CalculateFormula
justo antes de convertir la hoja a formato PDF. Hacer esto asegurará que los valores dependientes de fórmulas se recalcule y los valores correctos se muestren en el PDF.