Steuerung des Ladens externer Ressourcen in MS Excel Arbeitsmappe beim Rendern in PDF
Mögliche Verwendungsszenarien
Ihre Excel-Datei kann externe Ressourcen wie verlinkte Bilder oder Objekte enthalten. Wenn Sie Ihre Excel-Datei in PDF konvertieren, ruft Aspose.Cells diese externen Ressourcen ab und rendert sie in PDF. Manchmal möchten Sie jedoch diese externen Ressourcen nicht laden und darüber hinaus möchten Sie sie manipulieren. Dies können Sie mit WorkbookSettings.StreamProvider tun, das das IStreamProvider-Interface implementiert.
Steuerung des Ladens externer Ressourcen in MS Excel-Arbeitsmappe beim Rendern in PDF
Der folgende Beispielcode erklärt, wie WorkbookSettings.StreamProvider genutzt werden kann, um das Laden externer Ressourcen zu steuern und sie zu manipulieren. Bitte überprüfen Sie die im Code verwendete Beispiel-Excel-Datei und das vom Code generierte Ausgabepdf. Der Screenshot zeigt, wie das alte externe Bild in der Beispiel-Excel-Datei durch ein neues Bild im Ausgabepdf ersetzt wurde.
Beispielcode
// 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"); | |
} |