Qt之打印pdf文档
mainwindow.h
如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;
}class MainWindow : public QMainWindow {Q_OBJECT
public:explicit MainWindow ( QWidget *parent = 0 );~MainWindow();
private slots:void doPrint();void doPrintPreview();void printPreview ( QPrinter *printer );void createPdf();
private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H
mainwindow.cpp
如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPrinter>
#include <QPrintDialog>
#include <QPrintPreviewDialog>
#include <QFileDialog>
#include <QFileInfo>MainWindow::MainWindow ( QWidget *parent ) : QMainWindow ( parent ), ui ( new Ui::MainWindow ) {ui->setupUi ( this );QAction *action_print = new QAction ( tr ( "打印" ), this );QAction *action_printPreview = new QAction ( tr ( "打印预览" ), this );QAction *action_pdf = new QAction ( tr ( "生成pdf" ), this );connect ( action_print, SIGNAL ( triggered() ), this, SLOT ( doPrint() ) );connect ( action_printPreview, SIGNAL ( triggered() ), this, SLOT ( doPrintPreview() ) );connect ( action_pdf, SIGNAL ( triggered() ), this, SLOT ( createPdf() ) );ui->mainToolBar->addAction ( action_print );ui->mainToolBar->addAction ( action_printPreview );ui->mainToolBar->addAction ( action_pdf );
}MainWindow::~MainWindow() {delete ui;
}void MainWindow::doPrint() { /* 打印文档 */QPrinter printer; /* 创建打印机对象 */QPrintDialog dlg ( &printer, this ); /* 创建打印对话框 */if ( ui->textEdit->textCursor().hasSelection() ) { /* 如果编辑器中有选中区域,则打印选中区域 */dlg.addEnabledOption ( QAbstractPrintDialog::PrintSelection );}if ( dlg.exec() == QDialog::Accepted ) { /* 如果在对话框中按下了打印按钮,则执行打印操作 */ui->textEdit->print ( &printer );}
}void MainWindow::doPrintPreview() { /* 打印预览 */QPrinter printer;QPrintPreviewDialog preview ( &printer, this ); /* 创建打印预览对话框 *//* 当要生成预览页面时,发射paintRequested信号 */connect ( &preview, SIGNAL ( paintRequested ( QPrinter * ) ), \this, SLOT ( printPreview ( QPrinter * ) ) );preview.exec();
}void MainWindow::printPreview ( QPrinter *printer ) {ui->textEdit->print ( printer );
}void MainWindow::createPdf() { /* 生成PDF文件 */QString fileName = QFileDialog::getSaveFileName ( this, tr ( "导出PDF文件" ), QString(), "*.pdf" );if ( !fileName.isEmpty() ) {if ( QFileInfo ( fileName ).suffix().isEmpty() ) { /* 如果文件后缀为空,则默认使用“.pdf” */fileName.append ( ".pdf" );}QPrinter printer;printer.setOutputFormat ( QPrinter::PdfFormat ); /* 指定输出格式为pdf */printer.setOutputFileName ( fileName );ui->textEdit->print ( &printer );}
}
Qt之打印pdf文档相关推荐
- java pdf打印_Java 打印PDF文档
本文将介绍如何在Java应用程序中打印PDF文档.一般有以下三种常见打印方式:静默打印 显示打印对话框打印 打印PDF时自定义纸张大小 使用工具:Free Spire.PDF for Java 创建运 ...
- C# 打印PDF文档的10种方法
操作PDF文档时,打印是常见的需求之一.针对不同的打印需求,可分多种情况来进行,如设置静默打印.指定打印页码范围和打印纸张大小.双面打印.黑白打印等等.经过测试,下面将对常见的几种PDF打印需求做一些 ...
- javascript利用iframe打印pdf文档失败的问题
pdf文档不能在QQ浏览器(或者谷歌浏览器)直接打开 利用iframe打印pdf文档可能遇到的问题 利用$("#"+iframe的id)[0].contentWindow.prin ...
- Java调用打印机打印PDF文档的两种方法
最近,由于项目需求,需要增加系统调用打印机打印PDF文档功能.以前在Asp.Net项目中做过套打,但是现在的需求直接文档打印,下面是实现代码调用打印机的两种方法. 1.Java Print Servi ...
- java jar 打印_三种Java打印PDF文档的实例代码
以下内容归纳了通过Java程序打印PDF文档时的3种情形.即: 1 静默打印 2 显示打印对话框打印 3 打印PDF时自定义纸张大小 使用工具:Spire.PDF for Java Jar文件获取及导 ...
- C# 六种方案打印PDF文档
打印PDF文档是开发人员经久不变的话题,常见的打印需求大致有以下六种: 用默认打印机打印PDF文档 用虚拟打印机打印PDF文档 指定打印机及PDF文档的打印页码范围 静默打印PDF文档 双面打印PDF ...
- 使用PDF处理控件Aspose.PDF以编程方式打印PDF文档完整攻略
许多公司在很大程度上减少了纸张的使用.但是,在某些情况下打印很重要.例如,系统可能包含PDF格式的在线订单的详细信息.他们需要在分发在线订单进行交付时打印PDF.他们大规模处理项目,因此手动打印每个文 ...
- Java 打印PDF文档 - 指定打印机、自定义纸张大小、设置打印参数、显示打印对话框等
这篇文章介绍如何在Java应用程序中打印PDF文档以及进行一些打印设置,包括指定打印机.自定义纸张大小.设置打印参数.以及显示打印对话框等. 导入jar文件 本文所使用的PDF类库是Spire.PDF ...
- 利用Aspose.PDF以编程方式打印PDF文档
使用C#打印PDF文件 可以使用C#或VB.net在.NET应用程序中自动打印PDF文件.您可以按照以下简单步骤打印PDF文件: 创建一个PdfViewer类的对象 加载输入的PDF文档 打印PDF文 ...
- html 打印预览 兼容,vue下使用 pdf.js 预览 和 打印 PDF文档 兼容React
我使用前端开发框架是vue,有一个打印PDF文档的需求. 这个需求最开始是交给后台,但是明显不切实际, 因为后台服务器,根本就无法连接打印机. 所以这个预览加打印文档的需求就交到了前端, 开始我有想过 ...
最新文章
- 简述Linux目录结构和系统结构
- mysql的or能去重吗_mysql条件查询中AND与OR联合使用的注意事项!
- 在Android工程中加入AIDL文件时,gen目录生成的文件报错-问题解决
- 2019年4月最新勒索病毒样本分析及数据恢复
- Maven简单的配置Junit测试及使用简单的mock
- 沉淀2017,勇闯2018
- Mybatis中连接池介绍
- OpenGL画简单图形
- 接口批量同步数据_千手接口平台+电商ERP,助德嵘大药房征战拼多多
- Ubuntu 中将Python3 置为默认版本
- python之IO多路复用
- 一文详解python的类方法,普通方法和静态方法
- Excel图表4——平均线图
- Linux源码安装Mysql5.7
- 关掉EMOS的反病毒及反垃圾服务。
- 大牛深入讲解!6年老Android面经总结,系列教学
- 使用html语言替换字符串中的特殊标点符号
- springboot笔记整理(超详细,手把手教程!)
- strlen函数题目
- 先吃奶油还是先吃蛋糕--推迟满足感
热门文章
- 计算机和信息系统安全保密管理规定,信息系统安全和保密管理制度
- 2016网吧服务器系统,原版系统一键优化精简方案(Win10/Server2016/Server2019)
- win11电脑快捷键
- 关联性——组内相关系数
- 【华为机试题 HJ91】走方格的方案数
- IT之路,从迷茫“愤青”到团队项目经理,他是如何一步步走出来的?
- 建筑专业规范大全 2020版_房屋建筑工程现行规范标准目录汇编(2020版)—防水工程...
- 谈谈Java项目经验
- 做了三年Java,java简历包装项目经验
- 数字化转型实践:世界级 2B 数字化营销的方法框架