الحصول على التحذيرات بشأن استبدال الخط أثناء عرض ملف إكسل باستخدام C++

للحصول على تحذيرات استبدال الخط عند تحويل ملفات Excel إلى PDF، قم بتنفيذ واجهة IWarningCallback واضبط الخاصية PdfSaveOptions.WarningCallback بواجهتك المنفذة.

تظهر اللقطة الشاشية أدناه ملف Excel مصدري سنستخدمه في الكود التالي. يحتوي على بعض النص في الخلايا A6 وA7 بخطوط لا تتميز بالتقديم الجيد بواسطة Microsoft Excel.

لا تتم تقديم جميع الخطوط بشكل صحيح
todo:image_alt_text

ستقوم Aspose.Cells بتعويض الخطوط في الخلايا A6 و A7 بخطوط مناسبة كما يظهر أدناه.

خطوط مستبدلة
todo:image_alt_text

تحميل ملف المصدر وملف PDF الناتج

يمكنك تنزيل ملف Excel المصدر وملف PDF الناتج من الروابط التالية:

الكود

الكود التالي ينفذ IWarningCallback ويضبط الخاصية PdfSaveOptions.WarningCallback بواجهة التنفيذ. الآن، كلما تم استبدال أي خط في أي خلية، ستقوم Aspose.Cells بإطلاق تحذير داخل طريقة 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;
}

الناتج

بعد تحويل ملف Excel الأصلي إلى PDF، يتم إخراج التحذيرات إلى وحدة التحكم في التصحيح كالتالي:

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