ExceptionConverter: java.io.IOException: The docum

2019-04-29 02:19发布

问题:

when i execute the below code

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();

I get below exception. please help

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)

PLEASE HELP FRIENDS. THANKS IN ADVANCE

回答1:

Okay so I tried it out for you. My previous answer was incorrect, declaring the file first works as well. I think that your table declaration is wrong. You set it to 9 columns, but you only fill 5 of them. If you would change your columnssize of the headerTable to 5 that should fix it.



回答2:

I guess Aries51's solution worked for you. One additional note: you dont seem to catch your exceptions at all. A big try-catch around everything in your main-method (or a throwing main-method) is not the way to use exceptions. For example you should wrap a try-catch around Aries51's suggestion of PdfWriter.getInstance(document, new FileOutputStream("c:/sample.pdf")); because at some point you will replace the static c:/... sample string with a string the user enters at runtime. An exception should tell you if that file is writable or if it exists at all (user can enter bogus).



回答3:

You get this error when the compiler does not get any meaningful information to write to your file. I suggest trying to add this line after open()

document.add(new Chunk(""));

It should work



回答4:

Try replacing

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

by

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

I don't see anything wrong besides that...



回答5:

I was facing the same problem . My pdf was created fine in netbeans but the executable jar was not doing so.

Finally debugging my codes I found that the file "watermark.png" which i was using to add in my pdf was not put together the "distbuild.jar" .

I put the file "watermark.png" with that executable jar file and now the error is resolved.

Check if you are also having all your files with the jar file.



回答6:

I received this error when accidentally trying to close the PDF twice. Simple solution to eliminate one of the calls.



回答7:

table declaration wrong.

PdfPTable patTable = AgsiPdfPUtil.getTable(10);//declared table

you declared 10 columns so you should use 10 columns



标签: java itext