java如何在多页中打印大型JPanel
我想打印一个非常大的面板,这个面板包含一些组件,如jtable、jlabel和其他jpanel。现在我想把它打印在不同的页面上。但我不知道怎么做。我已经在panel类中实现了Printable。但是如果我把它打印出来,我只能得到一页
你可以在下面搜索框中键入要查询的问题!
我想打印一个非常大的面板,这个面板包含一些组件,如jtable、jlabel和其他jpanel。现在我想把它打印在不同的页面上。但我不知道怎么做。我已经在panel类中实现了Printable。但是如果我把它打印出来,我只能得到一页
# 1 楼答案
我对来自Harry的问题的编辑未被接受,因此我将我的编辑作为新答案发布
以下代码适合我(我测试过):
numPages
我将
numPages
的表达式更改为:这将总高度(jpanel的高度)除以一页的高度,从而计算所有页面的数量
g2d。翻译
我做了以下更改:在这一行:
将
componentToBePrinted.getPreferredSize().height
更改为pageFormat.getImageableHeight()
。g2d.translate
的第一个或第二个参数的正值分别将图形向右或向下移动.getImageableX()
和.getImageableY()
帮助定位图形,使其不会与填充重叠如果
pageIndex
大于0
,则- pageIndex * pageFormat.getImageableHeight()
将图像pageIndex
倍于页面高度移动到顶部。因此pageIndex
所指的区域被打印原始中断源:
https://community.oracle.com
# 2 楼答案
试试这个
参考资料>https://community.oracle.com/thread/1263759?start=0&tstart=0