java - Java中调用JTable.print()时是否可以设置左右边距的大小?

标签 java swing printing jtable

我正在尝试使用 table.print() 方法将 JTable 的内容打印到打印机:

boolean complete = table.print(JTable.PrintMode.FIT_WIDTH,header,null);

我的问题是,是否可以设置可打印区域左右边距的大小 无需在 PrintDialog 上手动设置纸张?

非常感谢您的帮助!

最佳答案

假设“不手动”设置它们是指以编程方式设置它们而不显示 PrintDialog:您可以在 PrinterJob 返回的纸张中设置它们,然后直接启 Action 业

PrinterJob job = PrinterJob.getPrinterJob();
PageFormat pf = job.defaultPage();
Paper paper = pf.getPaper();
double margin = 20.;
paper.setImageableArea(margin, 
        paper.getImageableY(), 
        paper.getWidth() - 2* margin, paper.getImageableHeight());
pf.setPaper(paper);
job.setPrintable(table.getPrintable(JTable.PrintMode.FIT_WIDTH, null, null), 
        job.validatePage(pf));
job.print();

关于java - Java中调用JTable.print()时是否可以设置左右边距的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9724419/

相关文章:

c# - Office.Interop.Word - 如何双面打印文档?

java - 如何使用布局而不是低级坐标在 Java 中进行打印?

java - if then else 条件判断

java - 插入排序,4 维数组 Java

Java-单击按钮时更改标签文本

java - 如何将我的背景图片放在底部

java - 在java中使用synchronized block 同时阻止对多个方法的访问

java - E/AndroidRuntime(2835) : java. lang.NullPointerException异常

java - 如何添加关闭 Java 程序的 JMenuItem?

iOS Airprint 不使用打印机选择界面