我正在尝试创建一个显示类似名称,停止号码和票价的pdf文件。该代码编译和运行完美,但是当我试图添加一个图像,它创建的PDF文件是0 kb,并已损坏。我一直呆在这里几个小时,仍然无法找到我的代码中有什么问题。我只想在我的pdf文件中添加图像。任何帮助,将不胜感激。谢谢。PDF文件在IText中添加图像时变为0 kb
public class PDFDisplay {
public static void generatePDF(PassengerBean passengerBean) throws DocumentException, MalformedURLException, IOException {
Document document = new Document();
try {
final Chunk NEWLINE = new Chunk("\n");
PdfWriter.getInstance(document,
new FileOutputStream("C:\\sample.pdf"));
document.open();
Image img = Image.getInstance("image/mrt.jpg");
document.add(new Paragraph("Sample 1: This is simple image demo."));
document.add(img);
String hr = "-----------------------------------------------------------";
String spacer = " ";
String name = "Passenger Name: " + passengerBean.lname + "," + " " + passengerBean.fname;
String dest = "Destination: " + passengerBean.dest + " STATION";
String stopno = passengerBean.stop;
double fare = passengerBean.fare;
String fare1 = "Fare: PHP" + " " + String.valueOf(fare);
String ccnum = "CREDIT CARD NUMBER: " + " " + "************" + passengerBean.ccnum.substring(Math.max(0, passengerBean.ccnum.length() - 4));
Paragraph para8 = new Paragraph(32);
para8.setSpacingBefore(100);
para8.setSpacingAfter(10);
para8.add(new Chunk(spacer));
document.add(para8);
Paragraph para9 = new Paragraph(32);
para9.setSpacingBefore(100);
para9.setSpacingAfter(10);
para9.add(new Chunk(hr));
document.add(para9);
// Setting paragraph line spacing to 32
Paragraph para1 = new Paragraph(32);
para1.setSpacingBefore(5);
para1.setSpacingAfter(10);
para1.add(new Chunk(name));
document.add(para1);
Paragraph para2 = new Paragraph();
para2.setSpacingAfter(10);
para2.add(new Chunk(dest));
document.add(para2);
Paragraph para3 = new Paragraph();
para3.setSpacingAfter(10);
para3.add(new Chunk(stopno));
document.add(para3);
Paragraph para4 = new Paragraph();
para4.setSpacingAfter(10);
para4.add(new Chunk(fare1));
document.add(para4);
Paragraph para5 = new Paragraph();
para5.setSpacingAfter(10);
para5.add(new Chunk(ccnum));
document.add(para5);
document.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
您是在IDE调试器中逐行执行一行代码吗?你发现了什么? – 2015-03-25 06:56:03
@JimGarrison,是的,我已经尝试过调试器。这似乎没有错,或者我只是错过了一些东西。 – Gelly 2015-03-25 07:10:21