Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中调用JTable.print()时,是否可以设置左右边距的大小?_Java_Swing_Printing_Jtable - Fatal编程技术网

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

在Java中调用JTable.print()时,是否可以设置左右边距的大小?,java,swing,printing,jtable,Java,Swing,Printing,Jtable,我正在尝试使用table.print()方法将JTable的内容打印到打印机上: 我的问题是,是否可以在可打印区域上设置左右边距的大小 不必在打印对话框上手动设置纸张的 非常感谢你的帮助 假设使用“非手动”设置它们,您的意思是在不显示打印对话框的情况下以编程方式设置它们:您可以在PrinterJob返回的纸张中设置它们,然后直接启动作业 PrinterJob job = PrinterJob.getPrinterJob(); PageFormat pf = job.defaultPage();

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

我的问题是,是否可以在可打印区域上设置左右边距的大小 不必在打印对话框上手动设置纸张的

非常感谢你的帮助

假设使用“非手动”设置它们,您的意思是在不显示打印对话框的情况下以编程方式设置它们:您可以在PrinterJob返回的纸张中设置它们,然后直接启动作业

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();
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();