在统信UOS系统中,PDF打印出来是空白页,这个问题确实让人困扰。别着急,首先确认一下源文件是否有问题。用WPS PDF或Okular打开这个PDF,检查中文、图表、页眉页脚等元素是否完整显示。如果阅读器里都显示不出来,说明PDF文件本身可能已损坏,需要重新生成或导出新的文件。
但如果阅读器显示正常,打印却变成空白,那问题就明确了——不是PDF文件损坏,而是系统把PDF传给打印机之前,解析环节出现了异常。
第一步:确认PDF本身能正常显示
这个步骤其实很简单,但很多人会忽略。用你常用的PDF阅读器打开文档,查看是否正常显示。如果显示不正常,PDF文件损坏的可能性很大;如果显示正常,那么打印空白就指向了打印路径上的问题。
第二步:强制启用CUPS PDF字体回退
要说这个问题的根源,其实挺常见的。统信UOS默认的CUPS配置,对PDF中缺失嵌入字体的情况,会采取一种“静默丢弃”策略,结果就是文本图层直接不参与光栅化。解决方法也不复杂,手动开启字体回退机制即可。
具体步骤:
第一步,先编辑CUPS PDF过滤器配置文件:【sudo nano /usr/lib/cups/filter/pdftops】
第二步,在文件末尾加一行:【-sPAPERSIZE=a4 -dPDFSETTINGS=/prepress -dEmbedAllFonts=false -dAutoRotatePages=/None -dCompatibilityLevel=1.4】
第三步,保存退出(Ctrl+O → Enter → Ctrl+X),然后重启CUPS服务:【sudo systemctl restart cups】
这一套操作下来,实际上绕过了PDF内嵌字体校验,强制用系统里已有的字体(比如Noto Sans CJK)来代替渲染,这样就不会因为字体缺失导致文本图层被跳过。
第三步:针对HP 226等型号更换驱动版本
如果你用的是HP 226打印机,那问题可能更具体一些。在统信UOS 1060上,如果安装了hp.hplip._3.24.7.1_admb64.deb这个驱动,PDF打印模块本身就有兼容性问题,会直接跳过文本光栅化,输出空白页。
如何解决?两个方法:
方法一:降级安装稳定版驱动
先彻底卸载当前驱动:【sudo apt remove --purge printer-driver-hpijs hplip】
然后从统信驱动中心或官网下载 【com.hp.hplip_3.23.5.2_amd64.deb】
双击安装,或者用终端:【sudo apt install ./com.hp.hplip_3.23.5.2_amd64.deb】
装完以后,在“打印管理器”里右键点击打印机→“属性”→“驱动程序”,确认版本已经切换成3.23.5.2。
方法二:改用通用PostScript驱动
这个方法适合所有HP LaserJet系列的打印机。在“打印管理器”里选中打印机→点击“修改”→“更改驱动程序”→搜索并选择【HP LaserJet Series PostScript】。
这个驱动的好处是不依赖HPLIP的PDF解析模块,直接让CUPS的原生PostScript后端来处理,能完美避开HP私有驱动的bug。
第四步:临时绕过PDF直接打印为图像
如果急需输出,前面的步骤还没来得及生效,那可以用qpdfview这个工具来强制光栅化整页。虽然会损失一点矢量缩放的精度,但内容肯定能保证百分百可见。
操作很简单:
先安装qpdfview:【sudo apt install qpdfview】
然后用它打开PDF → 按Ctrl+P调出打印对话框 → 点击“首选项(R)” → 在“渲染”页签下勾选【启用图像模式打印】。
这个选项会把每一页PDF都转成高分辨率PNG再发给打印机,虽然打印出来的文件在缩放时不如矢量图那么清晰,但在急需输出的时候,这确实是个临时救急的好办法。
