【发布时间】:2011-09-23 22:25:59
【问题描述】:
我正在使用此代码在纸上打印:
//Overriden from printable interface
public int print(Graphics g, PageFormat pageFormat, int pageIndex)
throws PrinterException {
if (pageIndex != 0) {
return Printable.NO_SUCH_PAGE;
}
Paper a4 = new Paper();
a4.setImageableArea(0, 0, a4.getWidth(), a4.getHeight());
pageFormat.setPaper(a4);
pageFormat.setOrientation(PageFormat.PORTRAIT);
Graphics2D g2d = (Graphics2D)g;
//g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
this.setDoubleBuffered(false);
panel.print(g2d);
JOptionPane.showMessageDialog(null, new ImageIcon(image));
this.setDoubleBuffered(true);
return Printable.PAGE_EXISTS;
}
我正在尝试以编程方式减小边距的大小。无论我做什么,图像两侧似乎总是缺少一大块(除非我从打印对话框中删除边距 - 但正如我所说,我想以编程方式删除它们以自动化整个过程)。
【问题讨论】:
-
hmm ...当“从打印对话框中删除边距”时,它是否打印到纸张的边缘?而不是让它们像打印机允许的那样小,然后稍微缩放图像以适应?
-
@kleopatra 抱歉造成误会。我想让边距尽可能小。打印对话框不会完全删除它们,但几乎可以。我也无法缩放图像。
-
你可能会看到一些你可以使用的东西here。
标签: java swing printing graphics2d