解决Linux(包括基于Linux的国产化平台)下,使用Qt访问打印机时,QPrintDialog无法显示网络打印机的问题

背景    

    最近发现我们的客户端程序(Qt编写),在银河麒麟_V10 + arm64平台下打印文件时,无法选择设置好的网络打印机,但同一套代码在windows下是没问题的。

解决思路

    1、网上搜索相关问题,无果。

    2、查看帮助文档,了解到Qt在Unix系统下,是通过cups实现打印的,大概是把打印的内容保存成pdf,然后发送到系统的打印程序(Unix下应该是lp,我也是一知半解,不过多介绍,以免误导读者)。

   3、查看源码,发现Qt中,对打印的支持是以插件的形式提供的,windows下是windowsprintersupport.dll,Linux下是libcupsprintersupport.so。

有效办法

    将libcupsprintersupport.so放到程序安装目录下的plugins/printsupport文件夹下。

    将libcups.so.2放到程序安装目录下的lib文件夹下(当然这个文件夹不是固定的,具体要看设置的动态库查找路径)

结语

    正常情况下,是不会有这个问题的,因为在打包的时候,这些库都会打进来,但凡事也总会有一些意外。

    这个方法也适用于Linux或其他基于Linux的国产化系统,前提是已经在系统上设置好了打印机

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值