Ste*_*ier 7 java printing awt jfreereport java-7
在某些打印机上,无论出于何种原因,在通过Java JVM(Java 7)打印时,打印输出会自动放大,看起来是默认设置.这似乎适用于较旧的打印机,并且它非常罕见,但它发生在多个打印机型号上.升级驱动程序也无法解决问题.
该软件使用JFreeReport(经典引擎)库,当使用库导出为PDF时,一切都很棒.使用该库的打印预览也是完美的.然而,当涉及到打印时,这仅适用于非常少量的打印机,打印输出被放大.它们没有放大,但字体更大,间距不正确,因此它们相互重叠.
这些与JDK 6相同的打印机似乎工作正常.似乎,我仍然试图孤立这个问题.我的想法是这些打印机可能不能正确支持Java 7
更新:我发现这个帖子似乎表明JDK 7u21存在一些问题.我没有在发行说明中看到任何解决此问题的内容.另外,这是类似错误报告的另一个例子.
Update2:对于任何有兴趣的人,我在Mac OS X上用Java 7写了一篇名为Printing is Broken的博文,内容涉及这个问题,其中包含更多细节和我发现的内容.
显然没有解决办法。问题在于,Mac OS 忽略了 JVM 设置的字体属性,如本错误报告和本错误报告中所述。
唯一的解决方法是创建一个临时文件,然后使用以下命令打印它:
try
{
Process process = Runtime.getRuntime().exec(new String[]{"lp", tempFileFullPath});
process.waitFor();
} catch (Exception e) {
// error handling
}
Run Code Online (Sandbox Code Playgroud)
当然,这可以在线程中或通过 SwingUtils 触发,具体取决于您是否有 GUI 应用程序,但这是目前唯一可能的方法。
| 归档时间: |
|
| 查看次数: |
402 次 |
| 最近记录: |