我正在尝试为我们的swing UI添加打印功能.我尝试了以下方法:

protected void print() {

PrinterJob job = PrinterJob.getPrinterJob();

if(job.printDialog()){

try {

job.setPrintable(new Printable() {

@Override

public int print(Graphics graphics,PageFormat pageFormat,int pageIndex) throws PrinterException {

if(pageIndex == 0){

Graphics2D g2d = (Graphics2D)graphics;

g2d.translate(pageFormat.getImageableX(),pageFormat.getImageableY());

// BufferedImage snapshot = AnimUtilities.createSnapshotOfFrame(ApplicationFrame.this,Transparency.TRANSLUCENT);

// double scaleX = pageFormat.getWidth()/snapshot.getWidth();

// double scaleY = pageFormat.getHeight()/snapshot.getHeight();

//

// double scaleValue = Math.min(scaleX,scaleY);

// g2d.scale(scaleValue,scaleValue);

// g2d.drawImage(snapshot,snapshot.getWidth(),snapshot.getHeight(),ApplicationFrame.this);

// ApplicationFrame.this.print(g2d);

ApplicationFrame.this.printAll(g2d);

return PAGE_EXISTS;

}

return NO_SUCH_PAGE;

}

});

job.print();

} catch (PrinterException e) {

e.printStackTrace();

}

} else {

System.err.println("Error printing");

}

}

没有注释掉的代码非常适用于打印的内容在纸上看起来非常好看.但是,JFrame比纸张大,所以它只是将其切断.我还尝试了注释掉的代码,该代码创建了JFrame的图像,适当地缩放图像以使其适合页面并保持相同的宽高比,但缩放使得屏幕上的文本看起来很糟糕.我发现这个advanced tutorial from Oracle,但它告诉我如何将屏幕分成多个页面.我只想打印JFrame的漂亮截图.如何打印JFrame而不切断它或导致工件缩放?

java不能弹出打印窗口,java – 如何打印一个摆动窗口,使其非常适合一页相关推荐

  1. 如何删除多玩java_用pc版多玩我的世界盒子,打开游戏时,为什么会弹出游戏需要java环境...

    第一:bai安装JDK,它的位数最好和du电脑zhi系统位数相同32位或者64位的dao.别搞错了第内二:配置容jdk环境变量,网上很多例子的,可以方便找到.第三:开始--运行--cmd命令分别输入j ...

  2. java输出栈的弹出序列_剑指offer:栈的压入、弹出序列(Java)

    1.题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是 ...

  3. Java常用弹出对话框

    Java常用弹出对话框 刚开始写Java工具的小伙伴可能不知道怎么写消息对话框,在这里总结一些常用的几种消息弹出框: 基本确定按钮弹出框: ● 效果图: ● Java代码: JOptionPane.s ...

  4. 【LeetCode笔记】剑指 Offer 31. 栈的压入、弹出序列 (Java、栈)

    文章目录 题目描述 代码 && 思路 二刷 题目描述 打卡第三天!加油加油- 数据结构笔试题貌似也会考= =,不过考法不一样,有点规律. 总的来说还是挺有意思的,我们直接来看代码吧- ...

  5. 谷歌浏览器打印不弹出预览直接打印机打印

    谷歌浏览器打印不弹出预览直接打印机打印 注意 --kiosk-printing前面有个空格 这个浏览器还是会弹出自带打印页,不过会马上消失的

  6. java添加提示框,JAVA如何弹出提示框

    一.只弹出提示信息 JOptionPane.showMessageDialog(null, "问题不能为空","格式错误",JOptionPane.ERROR_ ...

  7. java右键弹出菜单_javascript自定义右键弹出菜单实现方法

    本文实例讲述了javascript自定义右键弹出菜单实现方法.分享给大家供大家参考.具体实现方法如下: 无标题页 var oPopup = window.createPopup(); function ...

  8. 【剑指offer】面试题31:栈的压入、弹出序列(Java)

    输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是 ...

  9. 栈的压入、弹出序列(Java)

    题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1. 2. 3. 4. 5是某栈的压栈序列,序列4. 5. 3. 2 ...

  10. JAVA制作弹出小广告的程序_微信小程序实现首页弹出广告

    本文实例为大家分享了微信小程序实现首页弹出广告的具体代码,供大家参考,具体内容如下 这个微信小程序首页广告demo 仅供有需要的参考 .wxml this is ad //事件 catchtouchm ...

最新文章

  1. SQL SERVER 2000写存储过程出现列名无效的解决方法
  2. 软件开发心得点滴记录
  3. stata中心化处理_带有stata第2部分自定义配色方案的covid 19可视化
  4. 15. GD32F103C8T6入门教程-adc单通道轮训采集
  5. 剑指offer(21)栈的压入、弹出序列
  6. vscode remote ssh 重新连接_使用 VSCode 愉快地进行 R 远程开发
  7. vue 调用webservice_调用webService的几种方式
  8. 【细节实现 回文串12】LeetCode 564. Find the Closest Palindrome
  9. 2019118_四个化学数据分析(3)
  10. 运维 xshell 快捷键
  11. element tree不刷新视图_架构蓝图软件架构 quot;4+1quot; 视图模型
  12. 实验二、人工智能:产生式系统(动物识别系统)
  13. 打开图片或者视频显示“文件系统错误-2147416359”
  14. Ubuntu16.04安装MySQL笔记
  15. BUGKU-成绩查询
  16. 什么是连连一键开店?连连一键开店是怎么操作的?
  17. iOS系统各版本占比/占有率
  18. lwip【4】 lwIP配置文件opt.h和lwipopts.h初步分析之一
  19. labview简易计算机实验报告,LabView实验报告
  20. Makefile -fPIC 选项

热门文章

  1. loading怎么关闭 vant_Vant Loading 加载
  2. 随手记_英语_50大英文经典句/美句
  3. 【一天一个C++小知识】010.malloc/free和new/delete
  4. 机器学习课程笔记【十二】- 主成分分析
  5. 多模态multi-modal 与多视图multi-view
  6. CatBoost之算法解析(Kaggle常用模型)
  7. xUtils3 联网模块
  8. 使用Connector / Python查询MySQL数据
  9. Unity3D学习笔记(三十七):顶点偏移和溶解
  10. Highcharts柱形范围图使用示例