генерация java pdf в ITEXT - PullRequest
       5

генерация java pdf в ITEXT

1 голос
/ 22 февраля 2011

Мне нужно создать PDF-файл, используя Itext, вот код

public static String generatePdfReport(){
try {       

    Document document = new Document();
    PdfWriter.getInstance(document,new FileOutputStream("SimplePDFTableColspan.pdf"));
    document.open();

    PdfPTable table = new PdfPTable(2);
    PdfPCell cell = new PdfPCell(new Paragraph("column span 2"));
    cell.setColspan(2);
    table.addCell(cell);

    table.addCell("1");
    table.addCell("2");

    table.addCell("3");
    table.addCell("4");

    table.addCell("5");
    table.addCell("6");     

    document.add(table);        
    document.close();
    return document.toString();

    } catch (Exception exe) {
        exe.printStackTrace();
                         }
 }

Проблема в том, что тип возвращаемого значения метода - String, но в Itext я получаю документ, поэтому я получаю SAXисключение:

Содержание не разрешено в прологе.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Метод toString () класса Document, кажется, унаследован от класса Object и, вероятно, не будет выполнять то, что вы намеревались (он, безусловно, не будет экспортировать документ в виде строки XML ...).

Вместо FileOutputStream вы можете использовать ByteArrayOutputStream, а затем выполнить преобразование строки для этих данных.

Document document = new Document();
ByteArrayOutputStream output = new ByteArrayOutputStream();
PdfWriter.getInstance(document, output);
document.open();
...
document.close();
....
return output.toString();

С уважением,
Гийом

0 голосов
/ 22 февраля 2011

Я предполагаю, что это статический метод с пустым списком параметров.Если это так, пожалуйста, исправьте свой код.

Как вы думаете, разумно ли иметь пустой блок catch?Ваш код поглотит любое выброшенное исключение, и вы не будете мудрее.Распечатать трассировку стека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...