2011-07-25 46 views
5

cuando ejecuto el código de abajoExceptionConverter: java.io.IOException: el documento no tiene páginas. estoy usando iText

File f = new File("c:/sample.pdf"); 
PdfWriter.getInstance(document, new FileOutputStream(f)); 
document.open(); 
System.out.println("opening the document.."); 
PdfPTable headerTable=new PdfPTable(9); 
PdfPCell cellValue = new PdfPCell(new Paragraph("Header 1")); 
cellValue.setColspan(1); 
headerTable.addCell(cellValue); 
cellValue = new PdfPCell(new Paragraph("Header 2")); 
headerTable.addCell(cellValue); 
cellValue = new PdfPCell(new Paragraph("Header 3")); 
headerTable.addCell(cellValue); 
cellValue = new PdfPCell(new Paragraph("Header 4")); 
headerTable.addCell(cellValue); 

PdfPTable subHeaderTable = new PdfPTable(3); 
PdfPCell subHeadingCell = new PdfPCell(new Paragraph("Header 5")); 
subHeadingCell.setColspan(3); 
subHeaderTable.addCell(subHeadingCell); 
subHeaderTable.addCell("Sub heading 1"); 
subHeaderTable.addCell("Sub heading 2"); 
subHeaderTable.addCell("Sub heading 3"); 

headerTable.addCell(subHeaderTable); 

document.add(headerTable); 
document.close(); 

llego a continuación excepción. por favor ayuda

ExceptionConverter: java.io.IOException: The document has no pages. 
    at com.lowagie.text.pdf.PdfPages.writePageTree(Unknown Source) 
    at com.lowagie.text.pdf.PdfWriter.close(Unknown Source) 
    at com.lowagie.text.pdf.PdfDocument.close(Unknown Source) 
    at com.lowagie.text.Document.close(Unknown Source) 

POR FAVOR AYUDEN A LOS AMIGOS. Gracias de antemano

+0

Debe compilar su código con el conjunto de indicadores de depuración. Eso hará que sea más fácil encontrar problemas. – nfechner

Respuesta

13

Bien, así que lo probé. Mi respuesta anterior fue incorrecta, declarando que el archivo también funciona primero. Creo que la declaración de su mesa es incorrecta. Lo configura en 9 columnas, pero solo llena 5 de ellas. Si cambiara el tamaño de columnas de la tabla de encabezado a 5, debería arreglarlo.

+0

Su funcionamiento bien .. Gracias ARIES :-) – Arun

+0

Gracias por la respuesta Aries51 :) –

0

intentar sustituir

File f = new File("c:/sample.pdf"); 
PdfWriter.getInstance(document, new FileOutputStream(f)); 

por

PdfWriter.getInstance(document, new FileOutputStream("c:/sample.pdf")); 

No veo nada malo aparte de eso ...

2

supongo solución de Aries51 trabajó para usted. Una nota adicional: parece que no captas tus excepciones. Un gran try-catch alrededor de todo en su main-method (o un throw-main-method) no es la forma de usar excepciones. Por ejemplo, debe ajustar un try-catch en torno a la sugerencia de PdfWriter.getInstance(document, new FileOutputStream("c:/sample.pdf")); de Aries51 porque en algún momento reemplazará la cadena de muestra c:/... estática con una cadena que el usuario ingresará en el tiempo de ejecución. Una excepción debería decirle si ese archivo es escribible o si existe (el usuario puede ingresar falsamente).

+0

Gracias por su respuesta. Usé la solución de Aries, todavía no funciona. Lo que supongo es que, dado que he dado PdfPTable headerTable = new PdfPTable (9); No tiene espacio de página para imprimir el resto del encabezado .. lo mismo funciona si cambio el valor de 9 a 2 ... así que por favor dígame cómo reducir el tamaño de la celda (si mi suposición es correcta) – Arun

0

Me enfrentaba el mismo problema. Mi pdf fue creado bien en netbeans pero el archivo ejecutable no lo estaba haciendo.

Finalmente depurando mis códigos Encontré que el archivo "watermark.png" que estaba usando para agregar en mi pdf no se armó el "distbuild.jar".

Puse el archivo "watermark.png" con ese archivo jar ejecutable y ahora se ha resuelto el error.

Compruebe si también está teniendo todos sus archivos con el archivo jar.

0

Recibí este error al intentar accidentalmente cerrar el PDF dos veces. Solución simple para eliminar una de las llamadas.

Cuestiones relacionadas