Kontrollera laddning av externa resurser i MS Excel arbetsbok vid rendering till PDF
Möjliga användningsscenario
Din Excel-fil kan innehålla externa resurser t.ex. länkade bilder eller objekt. När du konverterar din Excel-fil till PDF hämtar Aspose.Cells dessa externa resurser och renderar dem till PDF. Men ibland vill du inte ladda in dessa externa resurser och dessutom vill du manipulera dem. Det kan du göra med hjälp av WorkbookSettings.StreamProvider som implementerar IStreamProvider gränssnitt.
Kontrollera inläsning av externa resurser i MS Excel Arbetsbok vid rendering till PDF
Följande kodexempel förklarar hur man använder WorkbookSettings.StreamProvider för att kontrollera laddningen av externa resurser och manipulera dem. Kolla in den exempel-Excel-filen som används i koden och den genererade PDF:en skapad av koden. Skärmbilden visar hur den gamla externa bilden i den exemplariska Excel-filen ersattes med en ny bild i utdata-PDF:en.
Exempelkod
// 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"); | |
} |