Contrôler le chargement des ressources externes dans le classeur MS Excel lors du rendu vers PDF
Scénarios d’utilisation possibles
Votre fichier Excel peut contenir des ressources externes, par exemple des images ou des objets liés. Lorsque vous convertissez votre fichier Excel en PDF, Aspose.Cells récupère ces ressources externes et les restitue en PDF. Mais parfois, vous ne souhaitez pas charger ces ressources externes et plus que cela, vous souhaitez les manipuler. Vous pouvez le faire en utilisantPdfSaveOptions.StreamProviderqui met en œuvre leIStreamProviderinterface.
Contrôler le chargement des ressources externes dans le classeur MS Excel lors du rendu vers PDF
L’exemple de code suivant explique comment utiliserPdfSaveOptions.StreamProviderpour contrôler le chargement des ressources externes et les manipuler. S’il vous plaît, vérifiez leexemple de fichier Excelutilisé à l’intérieur du code et lesortie PDFgénéré par le code. Lecapture d’écranmontre comment leancienne image externedans l’exemple de fichier Excel a été remplacé par unNouvelle imagedans la sortie PDF.
Exemple de code
// 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); | |
} |