Контроль загрузки внешних ресурсов в книге 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 = "./"; | |
| 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 = "./"; | |
| //Output directory | |
| string outputDir = "./"; | |
| //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"); | |
| } |