Java Swing PrinterJob の印刷がページから外れているのを修正する方法 JFrame とそのコンポーネントの印刷
温馨提示:
本文最后更新于 2024年04月12日,已超过 48 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
私は持っているこれレターシートの半分に印刷したいGUI:
ただし、「印刷確認 GUI」でこのコードを使用して印刷すると、次のようになります。
PrinterJob job = PrinterJob.getPrinterJob();
PageFormat format = new PageFormat();
job.setPrintable(impresionpanel, format);
if (job.printDialog()) {
try {
job.print();
this.dispose();
} catch (PrinterException ex) {
JOptionPane.showMessageDialog(this, "Error en la impresión.");
}
} else {
JOptionPane.showMessageDialog(this, "La impresión se canceló.");
}
そして、これは印刷されているパネルあるものです:
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex == 0) {
Graphics2D graphics2d = (Graphics2D) graphics;
graphics2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
printAll(graphics2d);
return PAGE_EXISTS;
} else {
return NO_SUCH_PAGE;
}
}
の結果のPDF(テスト目的で)次のようになります。
Pageformat Paper に sizeableArea プロパティがあることは知っていましたが、やりたいことと何の関係もないのではないかと心配したため、試しませんでした。
JPanel のサイズとアスペクト比を変更してみましたが、常に同じ出力が得られました。コードの 2 番目のビットを次のように変更します。
if (pageIndex == 0) {
Graphics2D graphics2d = (Graphics2D) graphics;
graphics2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
printAll(graphics);
return PAGE_EXISTS;
} else {
return NO_SUCH_PAGE;
}
結果は同じになります。
正文到此结束
- 本文标签: 家庭宠物
- 本文链接: https://www.coder6.net/article/2645
- 版权声明: 本文由蚂蚁原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
-
浏览(193) 评论(0)