Qt如何导出pdf

 时间:2024-10-23 20:51:10

1、Qt5中新出来的类QPdfWriter,可以很快实现导出pdf,只需要调用QPainter绘画文字、图片即可。QPdfWriter中还有如下方法:void setCreator(const QString & creator)//设置PDF作者bool setPageLayout(const QPageLayout & newPageLayout)//设置新页面的页面布局bool setPageMargins(const QMarginsF & margins)//设置页边距bool setPageMargins(const QMarginsF & margins, QPageLayout::Unit units)bool setPageOrientation(QPageLayout::Orientation orientation)bool setPageSize(const QPageSize & pageSize)//设置页面大小A4,B4void setResolution(int resolution)//设置分辨率void setTitle(const QString & title)//设置标题比如绘画Text: QFilef("E://QPdfWriter.pdf");f.open(QIODevice::WriteOnly);QPdfWriter*writer=newQPdfWriter(&f);QPainter*p=newQPainter(writer);writer->setPageSize(QPagedPaintDevice::A5);p->drawText(QRect(100,100,2000,200),"test1");//第一个页面writer->newPage();p->drawText(QRect(100,100,2000,200),"test2");//第二个页面deletep;deletewriter;f.close();结果如下:

Qt如何导出pdf

2、QPrinter通过图片生成pdf代码如下: //图片生成pdfQPrinterprinterPixmap(QPrinter::HighResolution);printerPixmap.setPageSize(QPrinter::A4);//设置纸张大小为A4printerPixmap.setOutputFormat(QPrinter::PdfFormat);//设置输出格式为pdfprinterPixmap.setOutputFileName("E:\\test_pixmap.pdf");//设置输出路径QPixmappixmap=QPixmap::grabWidget(ui.celllViewWidget,ui.celllViewWidget->rect());//获取界面的图片QPainterpainterPixmap;painterPixmap.begin(&printerPixmap);QRectrect=painterPixmap.viewport();intmultiple=rect.width()/pixmap.width();painterPixmap.scale(multiple,multiple);//将图像(所有要画的东西)在pdf上放大multiple-1倍painterPixmap.drawPixmap(0,0,pixmap);//画图painterPixmap.end(); 效果如下:

Qt如何导出pdf

3、QPrinter将文本生成pdf//文本生成pdfQPrinterprinterText;printerText.setOutputFormat(QPrinter::PdfFormat);printerText.setOutputFileName("E:\\test_text.pdf");QPainterpainterText;painterText.begin(&printerText);QDateTimecurrent_date_time=QDateTime::currentDateTime();QStringcurrent_date=current_date_time.toString("yyyy-MM-ddhh:mm:ssddd");QPointpoint(10,10);for(inti=1;i<=5;i++){QStringmessage=QString("%1%2%3").arg(QString::number(i)).arg(current_date).arg(QStringLiteral("北京"));inty=point.y();point.setY(y+20);painterText.drawText(point,message);message.clear();}//printer_text.newPage();//生成新的一页,可继续插入painterText.end();效果如下:

Qt如何导出pdf

4、HTML生成pdf//Html生成PDFQFilefile("E://a.txt");if(!file.open(QIODevice::ReadOnly|QIODevice::Text))return;QTextStreamin(&file);QStringhtml=in.readAll();file.close();QPrinterprinterHtml;printerHtml.setPageSize(QPrinter::A4);printerHtml.setOutputFormat(QPrinter::PdfFormat);printerHtml.setOutputFileName("E:\\test_html.pdf");QTextDocumenttextDocument;textDocument.setHtml(html);textDocument.print(&printerHtml);textDocument.end();a.txt 文件中html内容:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/><title>无标题文档</title></head><body><tablewidth="200"border="1"><tr><thscope="row">序列</th><td>项目</td><td>价格</td></tr><tr><thscope="row">1</th><td>水立方</td><td>2$</td></tr><tr><thscope="row">2</th><td>鸟巢</td><td>4$</td></tr></table></body></html>效果如下

Qt如何导出pdf
  • 如何钓黑鱼?
  • SAP PP如何修改控制订单状态参数文件描述
  • 本田190ss和190tr该怎么选择
  • 藕塘里如何钓大鲫鱼
  • 如何打开iso文件
  • 热门搜索
    童话手抄报 艾滋病手抄报 水的手抄报 消防安全手抄报图片 创文明城市手抄报 绿色校园手抄报 五年级英语手抄报 红领巾心向党手抄报内容 爱祖国手抄报内容简短 放飞梦想手抄报