用Java将表格转换为PDF

用Java将表格转换为PDF,java,image,swing,pdf,jtable,Java,Image,Swing,Pdf,Jtable,可能重复: 我正在尝试将当前表的内容保存为pdf格式。我的问题是,当我保存输出时,只保存屏幕上当前显示的内容。如果某行不在滚动窗格的当前视图中,它将不会显示在pdf中。我正在使用itextpdf-5.2.1.jar。这是我的密码 private JPanel contentPane; private JTable table_1; private JTable table; private DefaultTableModel aModel; private JS

可能重复:

我正在尝试将当前表的内容保存为pdf格式。我的问题是,当我保存输出时,只保存屏幕上当前显示的内容。如果某行不在滚动窗格的当前视图中,它将不会显示在pdf中。我正在使用itextpdf-5.2.1.jar。这是我的密码

private JPanel contentPane;
    private JTable table_1;
    private JTable table;
    private DefaultTableModel aModel;
    private JScrollPane pane;
    private String currentTable;
    private Edit edit;

public void createPdf() {
        Document document = new Document();
        try {
            PdfWriter writer;

            writer = PdfWriter.getInstance(document, new FileOutputStream(
                    "mytable.pdf"));
            document.open();
            PdfContentByte cb = writer.getDirectContent();
            PdfTemplate tp = cb.createTemplate(500, 500);
            Graphics2D g2;

            g2 = tp.createGraphicsShapes(500, 500);
            pane.printAll(g2);
            g2.dispose();
            cb.addTemplate(tp, 30, 300);
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
        document.close();
}

查看提示。如果这不能给你推动,你需要让它工作,尝试张贴一个。这意味着要考虑PDF制作,但无论如何,这似乎都是关于表的图像。为什么在
JScrollPane
上调用
printAll
,而不是在实际的
JTable
?如果在JScrollPane上调用printAll,我的列标题将显示在PDF中。如果我在JTable上调用printAll,则它们不是。在这两种情况下,pdf都被截短为屏幕当前显示的内容。请查看(关于将其添加到容器的部分)。您可能也应该打印标题。注意@AndrewThompson的链接包含了所有这些信息