Contrôler le chargement des ressources externes dans le classeur MS Excel lors du rendu en PDF
Scénarios d’utilisation possibles
Votre fichier Excel peut contenir des ressources externes comme 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 rend en PDF. Mais parfois, vous ne voulez pas charger ces ressources externes et en plus de cela, vous voulez les manipuler. Vous pouvez le faire en utilisant PdfSaveOptions.StreamProvider qui implémente l’interface IStreamProvider.
Contrôler le chargement des ressources externes dans le classeur MS Excel lors du rendu en PDF
Le code d’exemple suivant explique comment utiliser PdfSaveOptions.StreamProvider pour contrôler le chargement des ressources externes et les manipuler. Veuillez consulter le fichier Excel d’exemple utilisé dans le code et le PDF de sortie généré par le code. La capture d’écran montre comment l'ancienne image externe du fichier Excel d’exemple a été remplacée par une nouvelle image dans le PDF de sortie.
Code d’exemple
// 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); | |
} |