Warnungen für Schriftart Ersetzung beim Rendern der Excel Datei mit C++ erhalten

Um Warnungen für Schriftart-Ersetzung beim Rendern von Excel-Dateien in PDF zu erhalten, implementieren Sie die Schnittstelle IWarningCallback und setzen Sie die Eigenschaft PdfSaveOptions.WarningCallback mit Ihrer implementierten Schnittstelle.

Der folgende Screenshot zeigt eine Quell-Excel-Datei, die wir im folgenden Code verwenden werden. Sie enthält einige Texte in den Zellen A6 und A7 in Schriftarten, die von Microsoft Excel nicht korrekt gerendert werden.

Nicht alle Schriftarten werden korrekt gerendert
todo:image_alt_text

Aspose.Cells wird die Schriftarten in den Zellen A6 und A7 durch geeignete Schriftarten ersetzen, wie unten gezeigt.

Ersetzte Schriftarten
todo:image_alt_text

Quelldatei herunterladen und PDF ausgeben

Sie können die Quell-Excel-Datei und das Ausgabepdf von den folgenden Links herunterladen:

Code

Der folgende Code implementiert das IWarningCallback und setzt die Eigenschaft PdfSaveOptions.WarningCallback mit der implementierten Schnittstelle. Sobald eine Schrift in einer Zelle ersetzt wird, löst Aspose.Cells eine Warnung in der WarningCallback.Warning()-Methode aus.

#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;
}

Ergebnis

Nachdem die Quell-Excel-Datei in PDF konvertiert wurde, werden die Warnungen wie folgt in die Debug-Konsole ausgegeben:

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 ].