我有一个表从SQL DB获取数据。 我正在尝试找到将该表导出为PDF文件的最简单方法。 没什么好看的,只是标题和表格的内容。 我在这里搜索并检查外部包(docmosis等),但没有下定决心。 我是Java的新手,我正在寻找将表格导出为pdf的最简单方法。
尝试回答可能的问题,这是我填充表格的方式:
try {
result = DBConnection.getTableContent("customers", attributes, where, null, null);
DefaultTableModel model = (DefaultTableModel) searchTable.getModel();
model.setRowCount(0);
for (int i = 0; i < result.size(); i++) {
model.addRow(result.get(i).toArray());
}
}
由于
答案 0 :(得分:7)
您可以使用iText PDF Api。它很容易使用。你只需要下载jar,导入课程就可以了。查看此tutorial有关如何使用类
的信息答案 1 :(得分:5)
我有一个示例代码:
public static void createSamplePDF(String header[], String body[][]) throws Exception{
Document documento = new Document();
//Create new File
File file = new File("D:/newFileName.pdf");
file.createNewFile();
FileOutputStream fop = new FileOutputStream(file);
PdfWriter.getInstance(documento, fop);
documento.open();
//Fonts
Font fontHeader = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
Font fontBody = new Font(Font.FontFamily.COURIER, 12, Font.NORMAL);
//Table for header
PdfPTable cabetabla = new PdfPTable(header.length);
for (int j = 0; j < header.length; j++) {
Phrase frase = new Phrase(header[j], fontHeader);
PdfPCell cell = new PdfPCell(frase);
cell.setBackgroundColor(new BaseColor(Color.lightGray.getRGB()));
cabetabla.addCell(cell);
}
documento.add(cabetabla);
//Tabla for body
PdfPTable tabla = new PdfPTable(header.length);
for (int i = 0; i < body.length; i++) {
for (int j = 0; j < body[i].length; j++) {
tabla.addCell(new Phrase(body[i][j], fontBody));
}
}
documento.add(tabla);
documento.close();
fop.flush();
fop.close();
}
只需致电:
createSamplePDF(new String[]{"col1", "col2"}, new String[][]{{"rw11", "rw12"},{"rw21", "rw22"}});
答案 2 :(得分:0)
使用任何java pdf生成库。 也许ms访问数据库可以为您做到这一点,但JDBC不提供这种功能,它不应该。