1、目的

如题,打印pdf文件中的内容。

2、思路

(1)思路1:可以通过Poppler类来读取pdf中的内容,并转化成图片,再 打印这些图片。这个方法的瑕疵是,需要在打印的时候准确的写出一页图片在A4纸上的打印坐标和大小。否则会导致与原文不同。

(2)思路2:调用系统接口,让windows来打印。这个方法有一个注意点,就是传入的文件路径一定要是绝对路径。具体到哪一个磁盘开始。

3、关键代码(我是用的是思路2)

/*
这里的filename名字代表的是相对路径,在函数中,filepath是绝对路径。
*/
bool MyPrintPreViewDialog::printPDF(QString fileName)
{QPrinter printer;QString printerName = printer.printerName();// no default printer or no file return falseif( printerName.size() == 0 || fileName.size() == 0)return false;QFileInfo fi(fileName);QString filePath = fi.absoluteFilePath();if(!fi.exists())return false;int ret = 0;ret = (int)ShellExecuteW(NULL,QString("print").toStdWString().c_str(),filePath.toStdWString().c_str(),NULL,NULL,SW_HIDE);// if return number bigger than 31 indicate succqDebug()<<"ret:"<<ret<<"--SE_ERR_NOASSOC:"<<SE_ERR_NOASSOC;qDebug()<<"filePath:"<<filePath.toStdWString().c_str();if (ret > SE_ERR_NOASSOC)return true;return false;}

注意:

需要包含头文件:#include <windows.h>

4、其他

欢迎讨论!

【第六篇】Qt学习与使用---在qt中打印PDF文件(不是生成PDF)相关推荐

  1. QT学习:使用JSON/XML等非ts文件实现多语言国际化

    注意:如果不是CSDN网站显示本篇文章,请于底部点击"阅读原文"来阅读本篇文章! QT学习:使用JSON/XML等非ts文件实现多语言国际化 解析Json 重载translate ...

  2. 【QT学习笔记】基于QT的天气预报

    [QT学习笔记]基于QT的天气预报 前言 那就开始吧! 先看一下效果 颜面最重要,画个UI 构造实现 怎么开始? 开始解析数据 关于城市切换 ok 最后源码献上 感谢 前言 学习qt已经有一段时间了, ...

  3. qt学习总结之探索Qt的安装目录结构

    一般地,安装完一个软件后,我习惯到安装目录去看一下目录以及文件.对于Qt这样一个"复杂的软件",了解其文件目录结构虽然不是掌握编程所必须的,但是对其适当的了解能够让我们对 Qt 的 ...

  4. Qt学习之Windows下Qt应用程序打包成exe安装包

    本文介绍如何将exe可执行程序打包成exe安装包,打包完的安装包可以直接在Windows下安装,需要用到 Inno Setup 安装程序制作软件工具,工具下载完之后直接安装即可. 工具下载: 打包安装 ...

  5. python调用qt动态库_QT开发——动态库(.so文件)的生成与调用

    1.qmake方式生成和调用动态库 链接:https://blog.csdn.net/lywzgzl/article/details/42805991 2.cmake方式生成和调用动态库 2.1创建共 ...

  6. Qt学习之路(17): Qt标准对话框之QMessageBox

    好久没有更新博客,主要是公司里面还在验收一些东西,所以没有及时更新.而且也在写一个基于Qt的画图程序,基本上类似于PS的东西,主要用到的是Qt Graphics View Framework.好了,现 ...

  7. Qt学习之路(35): Qt容器类之顺序存储容器

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/245988 本来计划 ...

  8. Qt 学习之路 :Qt 线程相关类

      希望上一章有关事件循环的内容还没有把你绕晕.本章将重新回到有关线程的相关内容上面来.在前面的章节我们了解了有关QThread类的简单使用.不过,Qt 提供的有关线程的类可不那么简单,否则的话我们也 ...

  9. Qt学习之路(37): Qt容器类之关联存储容器

    2019独角兽企业重金招聘Python工程师标准>>> 今天我们来说说Qt容器类中的关联存储容器.所谓关联存储容器,就是容器中存储的一般是二元组,而不是单个的对象.二元组一般表述为& ...

最新文章

  1. java平台类成员访问修饰符_JAVA类的修饰符及访问权限
  2. 《机器学习与数据科学(基于R的统计学习方法)》——2.11 R中的SQL等价表述...
  3. Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务
  4. VTK:图片之ImageMirrorPad
  5. [Spring5]IOC容器_Bean管理XML方式_自动装配
  6. java 做项目踩坑,web项目踩坑过程
  7. Unreal4 IOS上使用第三方库和C++11 特性问题解决
  8. 我发现了3572个漏洞 今天又是崭新的一天
  9. Pytorch基础(二) 初始自动微分
  10. Unity渲染管线详解
  11. 数学建模LaTeX入门
  12. android高通camera驱动调试,高通Camera模块驱动指南资料
  13. 如何编写产品说明文档?
  14. Qt之移动无边框窗体
  15. js 主动触发 a 标签 href 链接写法,
  16. kjb文件 解析_批量修改MP3文件信息
  17. 关于CLR GC调优的一些问题
  18. 崩坏3桌面版怎么更换服务器,崩坏3【桌面版】安装常见问题解决办法
  19. 法拉克机器人自动怎么调_FANUC机器人程序自动启动介绍汇总.ppt
  20. Eclipse+ GNU ARM Eclipse Plug-in+ Sourcery G++ Lite Edition for ARM+OPENCD+Jlink的开源开发环境

热门文章

  1. 超图平台倾斜摄影发布流程
  2. css模糊遮罩效果_如何实现遮罩模糊样式?
  3. VS2010出现重复的代码项原因及解决方式
  4. 分享一组漂亮的html5后台登陆模板
  5. UML相关工具一览(2018年5月更新)
  6. 对待金融创新,央行应持更开明态度
  7. HTML页面防止表单重复提交
  8. 大数据之Hadoop简介及环境搭建
  9. 第2章 第2节-Dijkstra Astar
  10. SpringBoot ActiveMQ 整合使用