Qt做多了没有人逃得过导入导出pdf这个功能,有的话只是时候未到,注释都在代码里了,直接上代码了

图片生成:

QPrinter printer_pixmap(QPrinter::HighResolution);printer_pixmap.setPageSize(QPrinter::A4);  //设置纸张大小为A4printer_pixmap.setOutputFormat(QPrinter::PdfFormat);  //设置输出格式为pdfprinter_pixmap.setOutputFileName(sFilePdf1);   //设置输出路径QPainter painter_pixmap;//sFilePix是自定义的照片QPixmap pixmap(sFilePix);painter_pixmap.begin(&printer_pixmap);QRect rect = painter_pixmap.viewport();int multiple = rect.width()/pixmap.width();painter_pixmap.scale(multiple, multiple); //将图像(所有要画的东西)在pdf上放大multiple-1倍painter_pixmap.drawPixmap(0, 0, pixmap);  //画图painter_pixmap.end();

文本生成:

QPrinter printer_text;//    QPrinter printer_text(QPrinter::HighResolution);//加上QPrinter::HighResolution就会生成错误,他把pdf的分辨率默认为1200了printer_text.setOrientation(QPrinter::Landscape);printer_text.setPageSize(QPrinter::A4);  //设置纸张大小为A4printer_text.setOutputFormat(QPrinter::PdfFormat);  //设置输出格式为pdfprinter_text.setOutputFileName(sFilePdf2);   //设置输出路径QPainter *painter = new QPainter(this);painter->begin(&printer_text);painter->setRenderHint(QPainter::Antialiasing, true);// 设置画笔颜色、宽度painter->setPen(QPen(QColor(255, 255, 255), 2));// 设置画刷颜色painter->setBrush(QColor(255, 255, 255));QRect rect(0,0,800,600);//整张图设置画刷白底painter->fillRect(rect,QColor(255, 255, 255));painter->drawRect(rect);//画数据部分的线条painter->setPen(QPen(QColor(0, 0, 0), 1));QVector<QLine> lines;lines.append(QLine(QPoint(50,50),QPoint(750,50)));//上边lines.append(QLine(QPoint(750,50),QPoint(750,550)));//右边lines.append(QLine(QPoint(50,550),QPoint(750,550)));//下边lines.append(QLine(QPoint(50,50),QPoint(50,550)));//左边lines.append(QLine(QPoint(50,120),QPoint(750,120)));//名称下边lines.append(QLine(QPoint(50,180),QPoint(750,180)));//信息下边lines.append(QLine(QPoint(50,200),QPoint(750,200)));//条目下边lines.append(QLine(QPoint(50,490),QPoint(750,490)));//数据下边lines.append(QLine(QPoint(120,180),QPoint(120,200)));//类型分割边lines.append(QLine(QPoint(190,180),QPoint(190,200)));//类型分割边lines.append(QLine(QPoint(260,180),QPoint(260,200)));//类型分割边lines.append(QLine(QPoint(330,180),QPoint(330,200)));//类型分割边lines.append(QLine(QPoint(400,180),QPoint(400,490)));//结果和曲线分割边painter->drawLines(lines);QFont font;font.setPointSize(13);font.setFamily("黑体");font.setItalic(true);painter->setFont(font);//第一部分painter->drawText(50,50,700,40,Qt::AlignCenter,ui->lE_unit->text());//单位名称painter->drawText(QPoint(650,110),"No:");font.setPointSize(20);painter->setFont(font);painter->drawText(50,80,700,40,Qt::AlignCenter,ui->lE_report->text());//报告名称font.setPointSize(10);painter->setFont(font);//第二部分painter->drawText(50,120,700,60,Qt::AlignVCenter,QString("样本ID: ")+QString("11111111"));painter->drawText(210,120,700,60,Qt::AlignVCenter,QString("标本类型: ")+QString("ABC"));painter->drawText(370,120,700,60,Qt::AlignVCenter,QString("检测方法: ")+ui->lE_means->text());painter->drawText(600,120,700,60,Qt::AlignVCenter,QString("仪器: ")+ui->lE_instrument->text());//第三部分painter->drawText(50,180,70,20,Qt::AlignCenter,"序号");painter->drawText(120,180,70,20,Qt::AlignCenter,"检测项目");painter->drawText(190,180,70,20,Qt::AlignCenter,"Ct");painter->drawText(260,180,70,20,Qt::AlignCenter,"检测下限");painter->drawText(330,180,70,20,Qt::AlignCenter,"结果");//第四部分painter->drawText(50,210,70,20,Qt::AlignCenter,"1");painter->drawText(120,210,70,20,Qt::AlignCenter,"我");painter->drawText(190,210,70,20,Qt::AlignCenter,"真的");painter->drawText(260,210,70,20,Qt::AlignCenter,"不知道");painter->drawText(330,210,70,20,Qt::AlignCenter,"写啥");//第五部分painter->drawText(50,490,700,30,Qt::AlignVCenter,QString("送检者: ")+ui->lE_inspect->text());painter->drawText(230,490,700,30,Qt::AlignVCenter,QString("代码: ")+ui->lE_code->text());painter->drawText(410,490,700,30,Qt::AlignVCenter,QString("检验者: ")+ui->lE_detection->text());painter->drawText(590,490,700,30,Qt::AlignVCenter,QString("审核者: ")+ui->lE_audit->text());painter->drawText(50,520,700,30,Qt::AlignVCenter,QString("送检日期: ")+ui->lE_inspectDate->text());painter->drawText(410,520,700,30,Qt::AlignVCenter,QString("报告日期: ")+ui->lE_reportDate->text());painter->end();

Qt之生成PDF(图片生成,文本生成)相关推荐

  1. iText生成pdf(图片转PDF)

    前言 在学习的过程中笔者遇到过这种需求,就是将某个截取到的图片转化为PDF格式的.图片如何 转化为PDF格式的呢?首先想到的是PDF格式的文档是如何生成的,知道了这个就知道如何将图 片"插入 ...

  2. 文本生成 计算机语言,自然语言处理 -- 文本生成概述

    文本生成是自然语言处理中一个重要的研究领域,具有广阔的应用前景.本文主要介绍了文本生成的定义.任务.评价指标和实现方法.重点介绍了目前正在成为文本生成技术主流的数据驱动方法. 1.文本生成定义 自然语 ...

  3. qt生成pdf(用图片qgrabwidget抓取图片生成PDF;用文字生成pdf)

    1.用图片生成PDF: QPrinter printerPixmap(QPrinter::HighResolution);printerPixmap.setPageSize(QPrinter::A4) ...

  4. JQuery插件秀:生成PDF文件(文本+上传图片+电子签名)

    前言 需求如下:根据 docx 模板形成页面,让用户直接填写相关信息,在线生成 PDF 文件,无需用户下载 docx 模板填完信息再转为 PDF. 填写信息包括普通文本.上传图片.在线电子签名. 方案 ...

  5. java生成pdf(pd4ml+freemarker生成带图片和中文的pdf)

    因为需要图片和中文,所以使用了pd4ml+freemarker来生成pdf 需要maven包 <dependency><groupId>org.freemarker</g ...

  6. Itext生成pdf文件,itext+Freemarker生成pdf,(中文空白解决)

    来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...

  7. java实现pdf的生成下载打印,java生成pdf电子账单,java生成pdf合同模板

    最近公司要做个生成pdf电子账单凭证的功能,由于这个公司没有任何代码可借鉴,这个时候我就必须得自己搞明白具体的每一步应该怎么做,引什么jar包?用什么方式去实现?这篇博客中会给出从头到尾及其详细的代码 ...

  8. 文本生成任务之营销文本生成(Seq2seq+attention、Pointer Generator Network、Converage、Beam Search、优化技巧、文本增强)

    文章目录 引言 项目任务简介 0. 数据预处理 0.1 将json文件转化成txt文件 0.2 词典处理 0.3 自定义数据集SampleDataset(Dataset类) 0.4 生成Dataloa ...

  9. java实现保存合同模板_java实现pdf的生成下载打印,java生成pdf电子账单,java生成pdf合同模板...

    最近公司要做个生成pdf电子账单凭证的功能,由于这个公司没有任何代码可借鉴,这个时候我就必须得自己搞明白具体的每一步应该怎么做,引什么jar包?用什么方式去实现?这篇博客中会给出从头到尾及其详细的代码 ...

  10. Java 实现 生成PDF -(电子凭证生成原理分析)

    需求 实现:电子合同,电子回单.电子对账单等 需求插件(依赖) 1.基本插件 itextpdf 功能很强大,差不多可以实现PDF所有的功能.(如果你想实现有特殊需求的,如表单.PDF模板.水印等等都可 ...

最新文章

  1. winform datagridview 重新绘制datagridview的边框。
  2. IDEA使用自带数据库连接工具连接Mysql,及报错解决
  3. 用three.js写一个简单的3D射门游戏
  4. win7打开计算机死机,怎么样解决Win7系统运行程序引起的死机问题
  5. python元素定位input button_python+selenium 定位到元素,无法点击的解决方法
  6. 基因治疗光明现,钾盐钠盐大混战;深度学习助力癌早筛,母亲多动降低后代甲基化...
  7. 【EISCI征稿中】上海 · 首届长三角人工智能产业发展论坛AINIT2020
  8. flask 重定向(redirect)和会话(session)
  9. 接口XMPPConnection
  10. 虚拟应用DemoApp功能演示详解
  11. mecrosoft excel的单元格引用
  12. 瑞吉外卖QQ邮箱登录
  13. BUG记录:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is no
  14. 第五章第二十八题(显示每月第一天是星期几)(Display the first days of each month)
  15. C语言的数据类型大全,整型数据在内存中的存储方式
  16. input文本框与图片的对齐
  17. android sd 挂载流程_Android7.0 SD卡挂载流程
  18. 码云(gitee)的使用
  19. 区块链如何解决数据安全问题?
  20. 【tkinter组件专栏】Scrollbar:横滚竖滚滚动条

热门文章

  1. Kubernetes1.24版本高可用集群环境搭建(二进制方式)
  2. WebRTC之完整搭建Jitsi Meet指南
  3. 信号发生器电路的FPGA设计
  4. 人脑改造成超级计算机,让超级计算机变成“大脑”
  5. 习题:有效的数独(C语言)
  6. 2005年网络设备市场预测
  7. Python核心资料:Django+Scrapy+Hadoop+数据挖掘+机器学习+Python精选视频(限时福利免费领)
  8. 西门子博途1500双驱同步,伺服同步运行程序,3轴码垛博途程序
  9. 开发中是如何保证接口幂等性的?
  10. 超实用4款办公应用,轻松提早下班时间