我想用Itext创建pdf,一切正常,直到我制作了可运行的jar。 Adobe阅读器显示以下消息:" Adobe Reader无法打开xxx.pdf,因为它不是受支持的文件类型,或者因为文件已损坏(例如,它是作为电子邮件附件发送的,并且不是'正确解码)。"这是我的代码:
String ruta = txtruta.getText();
Document doc = new Document();
try {
FileOutputStream archivo = new FileOutputStream(ruta + ".pdf"); //crear archivo con su ruta
doc.open();
PdfPTable tabla = new PdfPTable(8); //creacion de una tabla de 8 columnas
tabla.addCell("Celda 1");// addCell() agrega una celda a la tabla, el cambio de fila ocurre automaticamente al llenar la fila
tabla.addCell("Celda 2");
tabla.addCell("Celda 3");
tabla.addCell("Celda 4");
tabla.addCell("Celda 5");
tabla.addCell("Celda 6");
tabla.addCell("Celda 7");
tabla.addCell("Celda 8");// aca se completa una fila
doc.add(tabla);
doc.close();
JOptionPane.showMessageDialog(null, "PDF creado correctamente");
} catch (Exception e) {
System.out.println("Error: "+ e);
}
答案 0 :(得分:1)
您的代码中缺少一行:
String ruta = txtruta.getText();
Document doc = new Document();
try {
FileOutputStream archivo = new FileOutputStream(ruta + ".pdf"); //crear archivo con su ruta
PdfWriter.getInstance(document, archivo);
doc.open();
PdfPTable tabla = new PdfPTable(8); //creacion de una tabla de 8 columnas
tabla.addCell("Celda 1");// addCell() agrega una celda a la tabla, el cambio de fila ocurre automaticamente al llenar la fila
tabla.addCell("Celda 2");
tabla.addCell("Celda 3");
tabla.addCell("Celda 4");
tabla.addCell("Celda 5");
tabla.addCell("Celda 6");
tabla.addCell("Celda 7");
tabla.addCell("Celda 8");// aca se completa una fila
doc.add(tabla);
doc.close();
JOptionPane.showMessageDialog(null, "PDF creado correctamente");
} catch (Exception e) {
System.out.println("Error: "+ e);
}
你知道吗?
如果没有PdfWriter.getInstance(document, archivo);
您正在创建FileOutputStream
,但没有任何内容写入该流。这是一个0字节的文件。