Управление загрузкой внешних ресурсов в книге MS Excel при рендеринге на PDF

Возможные сценарии использования

Ваш файл Excel может содержать внешние ресурсы, например связанные изображения или объекты. Когда вы конвертируете свой файл Excel в PDF, Aspose.Cells извлекает эти внешние ресурсы и отображает их в PDF. Но иногда вы не хотите загружать эти внешние ресурсы и более того, вы хотите манипулировать ими. Вы можете сделать это, используяWorkbookSettings.StreamProviderкоторый реализуетIStreamProviderинтерфейс.

Управление загрузкой внешних ресурсов в книге MS Excel при рендеринге на PDF

В следующем примере кода объясняется, как использоватьWorkbookSettings.StreamProvider контролировать загрузку внешних ресурсов и манипулировать ими. Пожалуйста, проверьтеобразец файла Excel используется внутри кода ивывод PDF генерируется кодом.Скриншот показывает, какстарый внешний образ в образце файла Excel был заменен нановое изображение на выходе PDF.

дело:изображение_альтернативный_текст

Образец кода

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Implement IStreamProvider
class MyStreamProvider : IStreamProvider
{
public void CloseStream(StreamProviderOptions options)
{
System.Diagnostics.Debug.WriteLine("-----Close Stream-----");
}
public void InitStream(StreamProviderOptions options)
{
string sourceDir = RunExamples.Get_SourceDirectory();
System.Diagnostics.Debug.WriteLine("-----Init Stream-----");
//Read the new image in a memory stream and assign it to Stream property
byte[] bts = File.ReadAllBytes(sourceDir + "newPdfSaveOptions_StreamProvider.png");
MemoryStream ms = new MemoryStream(bts);
options.Stream = ms;
}
}
public static void Run()
{
//Source directory
string sourceDir = RunExamples.Get_SourceDirectory();
//Output directory
string outputDir = RunExamples.Get_OutputDirectory();
//Load source Excel file containing external image
Workbook wb = new Workbook(sourceDir + "samplePdfSaveOptions_StreamProvider.xlsx");
//Specify Pdf Save Options - Stream Provider
PdfSaveOptions opts = new PdfSaveOptions();
opts.OnePagePerSheet = true;
wb.Settings.ResourceProvider = new MyStreamProvider();
//Save the workbook to Pdf
wb.Save(outputDir + "outputPdfSaveOptions_StreamProvider.pdf", opts);
Console.WriteLine("ControlLoadingOfExternalResourcesInExcelToPDF executed successfully.\r\n");
}