Kontrollera laddning av externa resurser i MS Excel arbetsbok vid rendering till PDF

Möjliga användningsscenario

Din Excelfil kan innehålla externa resurser, t.ex. länkade bilder eller objekt. När du konverterar din Excelfil till PDF, hämtar Aspose.Cells dessa externa resurser och renderar dem till PDF. Men ibland vill du inte ladda dessa externa resurser och dessutom vill du manipulera dem. Det kan du göra med PdfSaveOptions.StreamProvider som implementerar IStreamProvider-gränssnittet.

Kontrollera inläsning av externa resurser i MS Excel Arbetsbok vid rendering till PDF

Följande exempelkod förklarar hur man använder PdfSaveOptions.StreamProvider för att kontrollera laddningen av externa resurser och manipulera dem. Var vänlig kontrollera den exempel Excelfil som används inuti koden och den utdatan PDF-filen som genererats av koden. Skärmdumpen visar hur den gamla externa bilden i den exempel Excelfilen ersattes med en ny bild i utdatan PDF.

todo:image_alt_text

Exempelkod

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// Implement IStreamProvider
class MyStreamProvider implements IStreamProvider {
public void closeStream(StreamProviderOptions options) throws Exception {
System.out.println("-----Close Stream-----");
}
public void initStream(StreamProviderOptions options) throws Exception {
System.out.println("-----Init Stream-----");
// Read the new image in a memory stream and assign it to Stream property
File imgFile = new File( srcDir + "newPdfSaveOptions_StreamProvider.png");
byte[] bts = new byte[(int) imgFile.length()];
FileInputStream fin = new FileInputStream(imgFile);
fin.read(bts);
fin.close();
ByteArrayOutputStream baout = new ByteArrayOutputStream();
baout.write(bts);
baout.close();
options.setStream(baout);
}
}//MyStreamProvider
// ------------------------------------------------
// ------------------------------------------------
void Run() throws Exception {
// Load source Excel file containing external image
Workbook wb = new Workbook(srcDir + "samplePdfSaveOptions_StreamProvider.xlsx");
// Specify Pdf Save Options - Stream Provider
PdfSaveOptions opts = new PdfSaveOptions();
opts.setOnePagePerSheet(true);
opts.setStreamProvider(new MyStreamProvider());
// Save the workbook to Pdf
wb.save(outDir + "outputPdfSaveOptions_StreamProvider.pdf", opts);
}