Steuerung des Ladens externer Ressourcen in MS Excel Arbeitsmappe beim Rendern in PDF

Mögliche Verwendungsszenarien

Ihre Excel-Datei kann externe Ressourcen wie verknüpfte 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 PdfSaveOptions.StreamProvider tun, das das IStreamProvider-Interface implementiert.

Steuerung des Ladens externer Ressourcen in MS Excel-Arbeitsmappe beim Rendern in PDF

Der folgende Beispielcode erläutert, wie man PdfSaveOptions.StreamProvider verwendet, um das Laden externer Ressourcen zu steuern und sie zu manipulieren. Bitte prüfen Sie die im Code verwendete Beispiel-Excel-Datei und das generierte Ausgabe-PDF. Das Screenshot zeigt, wie das alte externe Bild in der Beispiel-Excel-Datei durch ein neues Bild im Ausgabe-PDF ersetzt wurde.

todo:image_alt_text

Beispielcode

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