Ottenere le callback di avviso per la sostituzione dei caratteri

Introduzione

Aspose.Slides per C++ consente di ricevere callback di avviso per la sostituzione dei caratteri quando un carattere richiesto non è disponibile sulla macchina durante il rendering. Queste callback aiutano a diagnosticare problemi con caratteri mancanti o inaccessibili.

Abilitare le Callback di Avviso

Aspose.Slides per C++ fornisce API semplici per ricevere callback di avviso durante il rendering delle diapositive di presentazione. Segui questi passaggi per configurare le callback di avviso:

  1. Crea una classe di callback personalizzata che implementa l’interfaccia IWarningCallback per gestire gli avvisi.
  2. Imposta la callback di avviso utilizzando classi di opzioni come RenderingOptions, PdfOptions, HtmlOptions e altre.
  3. Carica una presentazione che utilizza un carattere non disponibile sulla macchina di destinazione.
  4. Genera una miniatura della diapositiva o esporta la presentazione per osservare l’effetto.

Classe di Callback di Avviso Personalizzata:

#include <Warnings/IWarningCallback.h>

class FontWarningHandler : public IWarningCallback
{
public:
    ReturnAction Warning(SharedPtr<IWarningInfo> warning) override;
};

ReturnAction FontWarningHandler::Warning(SharedPtr<IWarningInfo> warning)
{
    if (warning->get_WarningType() == WarningType::DataLoss)
    {
        Console::WriteLine(warning->get_Description());
    }

    return ReturnAction::Continue;
}

// Esempio di output:
//
// Il carattere verrà sostituito da XYZ a {Calibri,Cambria Math,MS Gothic,Gulim,Arial Unicode,SimSun,Segoe UI Symbol}}

Genera una Miniatura della Diapositiva:

// Configura una callback di avviso per gestire gli avvisi relativi ai caratteri durante il rendering delle diapositive.
auto options = MakeObject<RenderingOptions>();
options->set_WarningCallback(MakeObject<FontWarningHandler>());

// Carica la presentazione dal percorso file specificato.
auto presentation = MakeObject<Presentation>(u"sample.pptx");
    
// Genera un'immagine in miniatura per ogni diapositiva nella presentazione.
for(auto&& slide : presentation->get_Slides())
{
    // Ottieni l'immagine in miniatura della diapositiva utilizzando le opzioni di rendering specificate.
    auto image = slide->GetImage(options);
    // ...

    image->Dispose();
}

presentation->Dispose();

Esporta in Formato PDF:

// Configura una callback di avviso per gestire gli avvisi relativi ai caratteri durante l'esportazione PDF.
auto options = MakeObject<PdfOptions>();
options->set_WarningCallback(MakeObject<FontWarningHandler>());

// Carica la presentazione dal percorso file specificato.
auto presentation = MakeObject<Presentation>(u"sample.pptx");

// Esporta la presentazione come PDF.
auto stream = MakeObject<MemoryStream>();
presentation->Save(stream, SaveFormat::Pdf, options);
// ...

stream->Dispose();
presentation->Dispose();

Esporta in Formato HTML:

// Configura una callback di avviso per gestire gli avvisi relativi ai caratteri durante l'esportazione HTML.
auto options = MakeObject<HtmlOptions>();
options->set_WarningCallback(MakeObject<FontWarningHandler>());

// Carica la presentazione dal percorso file specificato.
auto presentation = MakeObject<Presentation>(u"sample.pptx");

// Esporta la presentazione nel formato HTML.
auto stream = MakeObject<MemoryStream>();
presentation->Save(stream, SaveFormat::Html, options);
// ...

stream->Dispose();
presentation->Dispose();