Qt如何连续PDF,我想导出QCharts上面的曲线,导出第一张后导出第二张会把第一张覆盖掉,怎么连续导出图片为PDF?
2条回答 默认 最新
- ccidc 2023-04-06 17:17关注
对于您的问题,可以使用QPrinter和QPainter来实现连续导出图片为PDF,在绘制完一张图片后,需要将下一张图片绘制在当前页面的底部,以实现连续的效果。具体实现步骤如下:
1.创建一个QPrinter对象,并设置输出格式为PDF。
QPrinter printer(QPrinter::HighResolution);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("charts.pdf");
2.创建一个QPainter对象,并将其与QPrinter绑定。QPainter painter(&printer);
3.将第一张图片绘制在painter上。4.重置painter的状态,使其准备绘制下一张图片。
painter.reset();
painter.translate(0, currentPageHeight);
5.将第二张图片绘制在painter上,此时它会被绘制在第一张图片的下方。6.重复步骤4和5,直到所有图片都被绘制在了painter上。
7.结束绘制并关闭QPrinter。
完整的实现代码如下:
// 创建 QPrinter 对象
QPrinter printer(QPrinter::HighResolution);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("charts.pdf");// 创建 QPainter 对象
QPainter painter(&printer);// 绘制第一张图片
painter.drawPixmap(0, 0, chart1Pixmap);
int currentPageHeight = printer.paperRect().height();// 绘制第二张图片
painter.reset();
painter.translate(0, currentPageHeight);
painter.drawPixmap(0, 0, chart2Pixmap);// 绘制第三张图片
painter.reset();
painter.translate(0, currentPageHeight * 2);
painter.drawPixmap(0, 0, chart3Pixmap);// 结束绘制并关闭 QPrinter
painter.end();
printer.newPage();
printer.setOutputFileName("");
以上代码仅为示例,具体实现可能需要根据实际情况进行调整。解决 无用评论 打赏 举报
悬赏问题
- ¥15 SPSS分类模型实训题步骤
- ¥15 求解决扩散模型代码问题
- ¥15 工创大赛太阳能电动车项目零基础要学什么
- ¥20 limma多组间分析最终p值只有一个
- ¥15 nopCommerce开发问题
- ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
- ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
- ¥15 pycharm输出和导师的一样,但是标红
- ¥15 想问问富文本拿到的html怎么转成docx的
- ¥15 我看了您的文章,遇到了个问题。