Excel Dosyasını İşleme Sırasında Font Yedekleme Uyarıları Almak (C++)

Excel dosyalarını PDF’ye dönüştürürken yazı tipi değiştirme uyarıları almak için, IWarningCallback arayüzünü uygulayın ve uyguladığınız arayüz ile PdfSaveOptions.WarningCallback özelliğini ayarlayın.

Aşağıdaki ekran görüntüsü, aşağıdaki kodda kullanacağımız kaynak Excel dosyasını göstermektedir. A6 ve A7 hücrelerinde, Microsoft Excel tarafından düzgün bir şekilde render edilmeyen fontlarda bazı metinler bulunmaktadır.

Tüm fontlar düzgün bir şekilde render edilmiyor
todo:image_alt_text

Aspose.Cells, A6 ve A7 hücrelerindeki yazı tiplerini aşağıda gösterildiği gibi uygun yazı tipleriyle değiştirecektir.

Değiştirilen fontlar
todo:image_alt_text

Kaynak Dosya ve Çıktı PDF’sini İndir

Aşağıdaki bağlantılardan kaynak Excel dosyasını ve çıktı PDF’sini indirebilirsiniz:

Kod

Aşağıdaki kod IWarningCallback‘i uyguluyor ve PdfSaveOptions.WarningCallback özelliğini uygulanan arayüz ile ayarlıyor. Artık, herhangi bir hücrede herhangi bir yazı tipi değiştirilirse, Aspose.Cells bu uyarıyı WarningCallback.Warning() metodunda tetikler.

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

Çıktı

Kaynak Excel dosyasının PDF olarak dönüştürülmesinden sonra uyarılar şu şekilde hata ayıklama konsoluna çıktı verilir:

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