当前位置:  技术问答>java相关

请问怎样才能提高打印的分辨率?

    来源: 互联网  发布时间:2017-04-29

    本文导语:  我们目前已经在应用程序中实现了打印功能,可是无论是打印预览,还是真实打印出来的效果都非常让人不满意,请高手指点,要怎么样才能提高打印效果!本人非常感谢! | 是doubleButtering的...

我们目前已经在应用程序中实现了打印功能,可是无论是打印预览,还是真实打印出来的效果都非常让人不满意,请高手指点,要怎么样才能提高打印效果!本人非常感谢!

|
是doubleButtering的问题
  RepaintManager currentManager = RepaintManager.currentManager(this);
  currentManager.setDoubleBufferingEnabled(false);
  this.paint(g2);
  currentManager.setDoubleBufferingEnabled(true);
关于doubleBuffering的含义:
The Role of Double Buffering
With Java Swing, almost all components have double buffering turned on by default. In general, this is a great boon, making for convenient and efficient paintComponent method. However, in the specific case of printing, it can be a huge problem. First, since printing components relies on scaling the coordinate system and then simply calling the component's paint method, if double buffering is enabled printing amounts to little more than scaling up the buffer (off-screen image). This results in ugly low-resolution printing like you already had available. Secondly, sending these huge buffers to the printer results in huge print spooler files which take a very long time to print. 
Consequently, you need to make sure double buffering is turned off before you print. If you have only a single JPanel or other JComponent, you can call setDoubleBuffered(false) on it before calling the paint method, and setDoubleBuffered(true) afterwards. However, this suffers from the flaw that if you later nest another container inside, you're right back where you started from. A much better solution is to globally turn off double buffering via 

RepaintManager currentManager = 
RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);

and then to re-enable it after calling paint via the setDoubleBufferingEnabled(true). (Thanks to Bob Evans for suggesting RepaintManager instead of the much uglier recursive descent method I was using to globally disable and re-enable double buffering.) Although this will completely fix the problem with low-resolution printouts, if the components have large, complex filled backgrounds you can still get big spool files and slow printing. 

原文见
http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-Printing.html

|
我大概看了一下java.awt.print的内容,好像打印功能只有一个分辨率1/72英寸,这跟屏幕上的像素是一致的,这样的分辨率是不可能有很高的打印效果的。
做过Windows编程的人都知道可以通过SetMapMode来指定自己所需要的分辨率的。
我也不知道java是否提供对更高分辨率的支持,反正我没找到。

    
 
 

您可能感兴趣的文章:

  • 请问Linux Foreda11怎么更改分辨率(输入密码框的那个界面)
  • 请问如何调整分辨率?
  • 安装Mandriva时,配置显卡分辨率过高,请问该怎么改回来啊?
  • 请问:关于Linux分辨率的问题
  • 一个弱智的问题,请问如何把分辨率改回来
  • 请问gcc从哪个版本开始支持256色以上,1024*768分辨率编程?(100分立给)
  • 请问在Linux系统上面(ubuntu8.04)如何获得当前显示器的分辨率
  • SOS:请问一个页面在不同分辨率下适应性的问题!
  • 请问如何调整分辨率呀,在线等
  • 请问在RH8.0下怎样调显示器的分辨率?
  • solaris 10请问保存屏幕配置的信息(分辨率和刷新率)是哪一个目录下的哪一个文件
  • 请问怎么才能把linux的分辨率设置回来?????????
  • 请问高手, 为什么刚开始安装Linux就提示分辨率不正常, out of range
  • 请问各位,如何在X-WINDOWS下修改显示器的分辨率和刷新率?
  • 我是LIUNX初学者,我的是red hat 9 ,请问在哪里可以调分辨率啊,它默认的是1024*768,我的15寸显示器看起来很吃力
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问xvfs是什么文件系统?怎样才能让linux认出?
  • 请问怎样才能看到JavaScript原来的脚本语言?
  • 请问jList组件怎么才能加有滚动条?
  • 高分请教:请问怎么才能得到最近所有有关文件操作(新建,删除等)的记录
  • 请问在cygwin下怎样才能成为root用户??
  • 请问:在redhat as 4的电脑上如果才能访问其他win2000操作系统的电脑?
  • 请问,要有哪些java基础才能开始学习EJB???谢谢!!!(急!!!)
  • 高分请问:用了System.setOut()后怎样才能恢复到默认输出状态?
  • 请问如何才能将LINUX的分区写到磁盘分区表里!
  • 大家好!请问怎么才能在机器开机启动时,named服务就跟着启动????谢谢!!!
  • 急急急,2.4.20的内核不支持pci-e,请问如何才能使其支持?
  • 请问怎样的软件才能反编译?
  • 请问如何设置才能在linux启动时自动加载其他应用程序?
  • 请问如何才能让REDHAT 7.3的省缺语言变成英文。
  • 请问我怎么才能将一个java文件编译成class!?
  • 请问,在linux下面,用什么样的函数才能将进程信息读出来??急急
  • 请问如何才能恢复命令行界面?
  • 请问怎样才能将论坛里的贴子寸到机器中?
  • 请问各位大虾,.jar文件应该放在什么地方才能调用,进者给分
  • 请问怎么样才能在两个组串比较的时候对大小写不敏感呢?
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3