Экспорт файлов PDF в Java

У меня есть таблица, которая получает данные из базы данных SQL. Я пытаюсь найти самый простой способ экспортировать эту таблицу как есть в файл 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());
   }
}

Спасибо


person user2399013    schedule 21.05.2013    source источник
comment
Возможный дубликат stackoverflow.com/questions/7355025/create-pdf-with-java   -  person cb0    schedule 21.05.2013
comment
Вы можете проверить эту ссылку stackoverflow.com/questions/13717743/   -  person Sagar Mahalle    schedule 28.02.2014
comment
Вы можете сослаться на эту ссылку, в которой опубликован ответ stackoverflow.com/questions/13717743/   -  person Sagar Mahalle    schedule 28.02.2014


Ответы (3)


Вы можете использовать iText PDF API. Это довольно легко использовать. Вам просто нужно скачать банку, импортировать класс, и все готово. Ознакомьтесь с этим руководством по использованию классов.

person Adarsh    schedule 21.05.2013
comment
В коммерческих приложениях вы должны использовать старую версию 2.1.7 или платить. А вот 2.1.7 вполне хорош. - person lbalazscs; 21.05.2013

У меня есть пример кода:

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"}});
person 3d5oN    schedule 21.05.2013

Используйте любую java-библиотеку генерации pdf. Возможно, база данных ms access могла бы сделать это за вас, но JDBC не предоставляет такой возможности и не должен.

person lacroix1547    schedule 21.05.2013