Java - com.lowagie.text.pdf.PdfWriter

 
Vista:

com.lowagie.text.pdf.PdfWriter

Publicado por Filihc (2 intervenciones) el 08/01/2010 19:16:13
Hola amigos tengo un problema al fusionar dos pdf.

El error q me sale es el siguinete:

The page 105 was requested but the document has only 104 pages.
at com.lowagie.text.pdf.PdfWriter.close(Unknown Source)

Espero su pronta respuesta

Gracias

y mi codigo es este:

PdfReader readerSolPdf;
PdfCopy copy = null;
Document document = null;
try{
document = new Document( );
readerSolPdf = new PdfReader( pdfName );
copy = new PdfCopy( document, new FileOutputStream( pdfFinalName ));
document.open();

log.info("PDF sol pages: "+ readerSolPdf.getNumberOfPages());
int i = 1;
for(String sol : parameters.get("DOCTOS").toString().split(",")){
//Agrega sol al pdf
if( (i%100) == 0){
document.close();
copy.close();
log.info("cerro: " + (i % 100));
document.open();
copy.open();
}
log.info("numPage: " + i);
copy.addPage(copy.getImportedPage( readerSolPdf, i));
i++;
// Valida det de Incisos
try {
pst = con.prepareStatement(getQueryDetReport());
pst.setString(1,sol.replace("'",""));
pst.setLong(2, Long.parseLong(parameters.get("AGEID").toString()));
rs = pst.executeQuery();
if(rs.next()){
log.info("Entra en Detalle: " + sol);
Outputfile bufferOut = new Outputfile( );
JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(rs);

//Agrega det al pdf
bufferOut.generatePDFOutput(pdfDetName, parameters, getRealPathServlet("reports/repDetAut.jasper"), resultSetDataSource);

readerDetPdf = new PdfReader( pdfDetName );
log.info("PDF Detalle pages: "+ readerDetPdf.getNumberOfPages());
for (int p = 1 ; p <= readerDetPdf.getNumberOfPages(); p++ ){
copy.addPage(copy.getImportedPage( readerDetPdf, p ));
}
file = new File(pdfDetName);
file.delete();

}
} catch (SQLException e) {
log.error("Error al obtener detalle " + sol, e);
} catch (NamingException e) {
log.error("Error al obtener detalle " + sol, e);
} catch (JRException e) {
log.error("Error al obtener detalle " + sol, e);
}
}
} catch (IOException e) {
log.error("Error al generar reporte ", e);
} catch (DocumentException e) {
log.error("Error al generar reporte ", e);
} finally{
if(document != null) document.close();
if(copy != null) copy.close();
file = new File(pdfName);
file.delete();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder