【第六篇】Qt学习与使用---在qt中打印PDF文件(不是生成PDF)
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)相关推荐
- QT学习:使用JSON/XML等非ts文件实现多语言国际化
注意:如果不是CSDN网站显示本篇文章,请于底部点击"阅读原文"来阅读本篇文章! QT学习:使用JSON/XML等非ts文件实现多语言国际化 解析Json 重载translate ...
- 【QT学习笔记】基于QT的天气预报
[QT学习笔记]基于QT的天气预报 前言 那就开始吧! 先看一下效果 颜面最重要,画个UI 构造实现 怎么开始? 开始解析数据 关于城市切换 ok 最后源码献上 感谢 前言 学习qt已经有一段时间了, ...
- qt学习总结之探索Qt的安装目录结构
一般地,安装完一个软件后,我习惯到安装目录去看一下目录以及文件.对于Qt这样一个"复杂的软件",了解其文件目录结构虽然不是掌握编程所必须的,但是对其适当的了解能够让我们对 Qt 的 ...
- Qt学习之Windows下Qt应用程序打包成exe安装包
本文介绍如何将exe可执行程序打包成exe安装包,打包完的安装包可以直接在Windows下安装,需要用到 Inno Setup 安装程序制作软件工具,工具下载完之后直接安装即可. 工具下载: 打包安装 ...
- python调用qt动态库_QT开发——动态库(.so文件)的生成与调用
1.qmake方式生成和调用动态库 链接:https://blog.csdn.net/lywzgzl/article/details/42805991 2.cmake方式生成和调用动态库 2.1创建共 ...
- Qt学习之路(17): Qt标准对话框之QMessageBox
好久没有更新博客,主要是公司里面还在验收一些东西,所以没有及时更新.而且也在写一个基于Qt的画图程序,基本上类似于PS的东西,主要用到的是Qt Graphics View Framework.好了,现 ...
- Qt学习之路(35): Qt容器类之顺序存储容器
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/245988 本来计划 ...
- Qt 学习之路 :Qt 线程相关类
希望上一章有关事件循环的内容还没有把你绕晕.本章将重新回到有关线程的相关内容上面来.在前面的章节我们了解了有关QThread类的简单使用.不过,Qt 提供的有关线程的类可不那么简单,否则的话我们也 ...
- Qt学习之路(37): Qt容器类之关联存储容器
2019独角兽企业重金招聘Python工程师标准>>> 今天我们来说说Qt容器类中的关联存储容器.所谓关联存储容器,就是容器中存储的一般是二元组,而不是单个的对象.二元组一般表述为& ...
最新文章
- java平台类成员访问修饰符_JAVA类的修饰符及访问权限
- 《机器学习与数据科学(基于R的统计学习方法)》——2.11 R中的SQL等价表述...
- Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务
- VTK:图片之ImageMirrorPad
- [Spring5]IOC容器_Bean管理XML方式_自动装配
- java 做项目踩坑,web项目踩坑过程
- Unreal4 IOS上使用第三方库和C++11 特性问题解决
- 我发现了3572个漏洞 今天又是崭新的一天
- Pytorch基础(二) 初始自动微分
- Unity渲染管线详解
- 数学建模LaTeX入门
- android高通camera驱动调试,高通Camera模块驱动指南资料
- 如何编写产品说明文档?
- Qt之移动无边框窗体
- js 主动触发 a 标签 href 链接写法,
- kjb文件 解析_批量修改MP3文件信息
- 关于CLR GC调优的一些问题
- 崩坏3桌面版怎么更换服务器,崩坏3【桌面版】安装常见问题解决办法
- 法拉克机器人自动怎么调_FANUC机器人程序自动启动介绍汇总.ppt
- Eclipse+ GNU ARM Eclipse Plug-in+ Sourcery G++ Lite Edition for ARM+OPENCD+Jlink的开源开发环境