使用 Ubuntu 12.04 x64 打印时,我遇到了一个非常棘手的问题:文本分辨率错误。位图和矢量图形在 2400 或 600 dpi 下打印完美,但文本却不行。它看起来很丑,分辨率感觉很低。
使用Inkscape时,打印之前将文本转换为路径可以解决问题(当然,这不是适合日常使用的解决方法)。
该打印机是 Brother HL4150CDN,与 CUPS 一起使用,连接到以太网端口,无论 CUPS 中配置了什么网络地址(LPD 或 IPP),打印机都会失败。我可以从任何地方(Firefox、Inkscape、Evince)打印,但文本仍然无法打印。
打印机测试页输出成功
问题取决于使用的字体:Arial 出错,但光辉罗马感觉正确(某些字体可能被打印机替换了?),这可能就是为什么打印机测试页中的 Courier 文本被正确打印的原因。
我尝试使用以前版本的 Ubuntu 重现此问题,但没有成功。我尝试全新安装 Ubuntu 11.10 和 12.04 桌面 amd64 并进行更新,并使用 Brother 驱动程序:问题始终出现在 12.04 上,从未出现在 11.10 上。
当前安装的驱动程序是带有 PPD 文件的 Brother 官方驱动程序,ia32-libs
依赖项为:
hl4150cdnlpr-1.1.1-5.i386.deb
hl4150cdncupswrapper-1.1.1-5.i386.deb
这是质量非常差的带锯齿文本输出的扫描件,质量设置为 2400x600 dpi。网格线间距为 0.1 英寸(从 Inkscape 打印),我可以计算出每行之间大约有 10 个像素,因此有效分辨率约为 100 dpi:
我使用 捕获了计算机和打印机之间交换的数据wireshark
,以比较工作版本和有缺陷的版本。标题相同,但二进制数据不同;以下是使用 的屏幕截图kdiff
:
这可能会影响其他打印机。但是,打印为 pdf而HP deskjet 920C则不受影响。
问题是:
- 如何排查这样的问题?
- 与 11.10 相比,在哪里可以找到不同的设置来解释使用 Ubuntu 12.04 时出现的这种糟糕结果?
- 我可以比较或编辑哪些文件来解决此类问题?
PS:找不到与该问题相关的启动板错误(可能会提交一个;但我愿意调查此事)
答案1
@ewienik 提供的解决方法指出了正确的方向:Brother PPD 文件缺少一个必需的参数 (*Resolution),这会导致组件pdftops
(或其他过滤器?) 出现问题,从而回退到 100dpi。以下是 HL-4150CDN 的示例:
*%==== Resolution auto Features =================================
*OpenUI *Resolution/Quality Auto: PickOne
*OrderDependency: 14 AnySetup *Resolution
*DefaultResolution: 600x600
*Resolution 600x600/Normal: " "
*Resolution 2400x600/Fine: " "
*CloseUI: *Resolution
答案2
这里有 Brother 打印机的解决方法示例https://bugs.launchpad.net/ubuntu/+source/cups/+bug/984082