Экспорт компонента Swing в PDF с помощью iText - PullRequest
1 голос
/ 04 января 2012

У меня есть рамка, и на ней есть несколько компонентов. Как нарисовать этот JFrame, используя iText?

Я пишу некоторый код следующим образом (но не работает):

public void PrintFrameToPDF(Component c, File file) {
    try {
        Document d = new Document();
        PdfWriter writer = PdfWriter.getInstance(d, new FileOutputStream(file));
        d.open();

        PdfContentByte cb = writer.getDirectContent();
        PdfTemplate template = cb.createTemplate(c.getWidth(), c.getHeight());
        Graphics2D g2d = template.createGraphics(c.getWidth(), c.getHeight());
        c.paintAll(g2d);
        c.addNotify();
        c.validate();
        g2d.dispose();

        d.close();
    } catch (Exception e) {
        //
    }
}

1 Ответ

1 голос
/ 04 января 2012

Первый createTemplate использует собственные единицы:

createTemplate(PageSize.A4.getHeight(), PageSize.A4.getWidth());

Вы можете использовать:

g2d.translate(48.0, 48.0);

И удалить addNotify и подтвердить.Тем более, что вы назвали getHeight, валидация не имеет смысла.После g2d.dispose сделать:

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