Controlar la carga de recursos externos en el libro de Excel de MS al renderizar a PDF

Escenarios de uso posibles

Su archivo de Excel puede contener recursos externos como imágenes u objetos vinculados. Cuando convierte su archivo de Excel a PDF, Aspose.Cells recupera estos recursos externos y los renderiza a PDF. Pero a veces, no desea cargar estos recursos externos y, además, desea manipularlos. Puede hacerlo usando WorkbookSettings.StreamProvider que implementa la interfaz IStreamProvider.

Controlar la carga de recursos externos en el libro de Excel de MS al renderizar a PDF

El siguiente código de muestra explica cómo hacer uso de WorkbookSettings.StreamProvider para controlar la carga de recursos externos y manipularlos. Por favor revise el archivo de Excel de muestra usado en el código y el PDF generado por el código. La captura de pantalla muestra cómo la imagen externa antigua en el archivo de Excel de muestra fue reemplazada por una nueva imagen en el PDF generado.

todo:image_alt_text

Código de muestra

// 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");
}