qt Android 浏览pdf,Qt实现保存、浏览、预览、打印功能的示例代码.pdf

Qt实实现现保保存存、、浏浏览览、、预预览览、、打打印印功功能能的的示示例例代代码码

Qt提供了以文本、图片、HT ML等方式来实现对文档的 作,主要用到了QPrinter类和QPainter类,用到了QFileDialog文件窗口

、QPrintPreviewDialog预览窗口类和QPrintDialog打印窗口类,Qt5也提供了QPdfWriter类来实现对pdf 的 作,这里并不包括打

开pdf文件,Qt没有提供任何方法来直接像文件浏览器一样打开pdf文件,可以用第三方库来实现。

这里采用了图片的方式来实现保存、预览和打印,其实 三个功能基本上一样。

1、、保保存存PDF

((1))保保存存某某个个控控件件里里的的内内容容

一些输入类控件可以直接调用print()函数,一些显示类的控件可以直接调用render()函数,一些控件不具备这个功能。代码如下

void MainWindow ::on_btnSave_clicked()

{

QString fileName = QFileDialog::getSaveFileName(t is, tr("导出PDF文件"), QString(), "*.

pdf");

if (!fileName.isEmpty())

{

// 如果文件后缀为空,则默认使用.pdf

if (QFileInfo(fileName).suffix().isEmpty())

{

fileName.append(".pdf");

}

QPrinter printer;

// 指定输出格式为pdf

printer.setOutputFormat(QPrinter::PdfFormat);

printer.setOutputFileName(fileName);

// ui->textEdit->print(&printer);

ui->tableWidget->render(&printer);

}

}

((2))保保存存某某些些控控件件里里的的内内容容

这里需要将要保存的所有内容放在一个容器里面,比如放在QWidget上,同样可以用上面的方式来保存,下面用的是以图片的方

式来保存。代码如下:

void MainWindow ::on_btnSave_clicked()

{

QString fileName = QFileDialog::getSaveFileName(t is, tr("保存PDF文件"), QString(), "*.

pdf");

if (!fileName.isEmpty())

{

// 如果文件后缀为空,则默认使用.pdf

if (QFileInfo(fileName).suffix().isEmpty())

{

fileName.append(".pdf");

}

QPrinter printerPixmap(QPrinter::Hig Resolution);

//自定义纸张大小,这里要打印的内容都在stackedWidget上

printerPixmap.setPageSize(QPrinter::Custom);

printerPixmap.setPaperSize(QSizeF(ui->stackedWidget-> eig t(), ui->stackedWidget->widt

()), QPrinter::Point);

//设置纸张大小为A4,这里注释掉了,建议自定义纸张 ,否则保存的就会有很多空白

//printerPixmap.setPageSize(QPrinter::A4);

//横向打印

printerPixmap.setOrientation(QPrinter::Landscape);

//设置输出格式为pdf

printe

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值