Controle la carga de recursos externos en el libro de trabajo de MS Excel mientras se procesa en PDF
Posibles escenarios de uso
Su archivo de Excel puede contener recursos externos, por ejemplo, imágenes u objetos vinculados. Cuando convierte su archivo de Excel a PDF, Aspose.Cells recupera estos recursos externos y los representa en PDF. Pero a veces, no desea cargar estos recursos externos y más que eso, desea manipularlos. Puedes hacer esto usandoPdfSaveOptions.StreamProviderque implementa laIStreamProviderinterfaz.
Controle la carga de recursos externos en el libro de trabajo de MS Excel mientras se procesa en PDF
El siguiente código de ejemplo explica cómo hacer uso dePdfSaveOptions.StreamProviderpara controlar la carga de recursos externos y manipularlos. Por favor, checa elejemplo de archivo de Excelutilizado dentro del código y elsalida PDFgenerado por el código. Élcaptura de pantallamuestra cómo elimagen externa antiguaen el archivo de ejemplo de Excel se reemplazó con unnueva imagenen la salida PDF.
Código de muestra
// 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); | |
} |