【发布时间】:2014-09-18 17:40:49
【问题描述】:
我想打印一个非常大的面板,这个面板包含一些组件,如 jtable、jlabel 和其他 jpanel。现在我想在不同的页面上打印它。但我不知道该怎么做。我已经在我的面板类中实现了 Printable 。但是如果我打印它,我只会得到一页。
【问题讨论】:
-
您是否考虑过将所有单独的组件放在自己的 JPanel 上专门用于打印?
-
是的,我尝试列出 JPanel 并使用 Book 对象打印它们。在对话框中显示 6 页,但打印后我得到一页。另外,如果我这样做了,我会得到 JTable 的所有大页面?
-
您可以尝试使用 iText 将它们打印到 PDF 中。这将节省纸张并让您查看结果并快速修改它们。
-
我使用 PDF creator 来预览结果。我不知道如何使用 iText。对于 JTable,我不需要实现 Printable 或 Pageable。所以如果我打印它,如果它很大,我会得到所有页面吗?如果是,我将重新尝试单独打印它们
-
有一种方法可以将 JPanel 转换为可打印对象并将其作为整个页面传递给 iText。我相信它是 Graphics2D,但我不知道它的来源或记忆。您可以从技术上获取单个组件,并根据 JPanel 的实际大小(即打印 (0,0,600,600) 然后 (0,600,0,1200))将它们分成每个页面。如果您只是想打印 JPanel,而不是 JTable 上的所有内容。