首页 > 其他分享 >Qt 将 widget 打印到 pdf

Qt 将 widget 打印到 pdf

时间:2023-04-24 11:11:42浏览次数:34  
标签:widget printer Qt scale pdf margin painter QPrinter

一开始直接render到QPrinter里发现渲染出的图很小,原因是没有把两者的尺寸对齐到一致
这里我们按printer和widget的比例缩放:

def exportToPDF(w : QWidget, file_name):
        printer = QPrinter()
        printer.setPageSize(QPrinter.A4)
        printer.setOutputFormat(QPrinter.PdfFormat)
        printer.setOutputFileName(file_name)

        painter = QPainter(printer)
        xscale = printer.pageRect().width() / w.width()
        yscale = printer.pageRect().height() / w.height()
        scale = min(xscale, yscale)
        painter.scale(scale, scale)
        margin = 5
        w.render(painter, QPoint(margin, margin))
        painter.end()

标签:widget,printer,Qt,scale,pdf,margin,painter,QPrinter
From: https://www.cnblogs.com/miyanyan/p/17348838.html

相关文章

  • C#开发的免费PDF转换、压缩、拆分、合并助手
    《骑士科技星火计划》现推出首款产品—《工程人PDF助手》,为工程人打造属于自己的PDF功能助手,具有PDF转换、压缩、拆分及合并等功能。《工程人PDF助手》为《骑士科技星火计划》首款产品,安装步骤简单,操作便捷,供各位工程人免费使用! 获取方式欢迎关注公众号《工程人的编程课堂》,后......
  • Python 实时生成曲线的两种方法-Matplotlib/Pyqtgraph
    前言Matplotlib更倾向于制作出版质量的图形,对matlab程序员来说更直观。pyqtgraph不像matplotlib那样完整/成熟,但运行速度要快得多,而且pyqtgraph旨在用于数据采集和分析应用程序,对于python/qt程序员来说更直观。Matplotlib(据我所知)不包括许多pyqtgraph的功能,例如图像......
  • 团队博客 --PDF智能简历识别
    到今天为止,我们的项目已经完成,这里我将对这一阶段的进行总结。在第一阶段我们的团队罗列了开发这一项目的问题,按照复杂问题流程化,划分出来了许多小的问题,大体上分为前端界面开发,后端业务逻辑以及数据库设计。在这一阶段,我们的队长为我们每一个人划分了明确的任务 第二阶段就是......
  • 【Qt6】QWindow类可以做什么
    原来的水文标题是“用VSCode搞Qt6”,想想还是直接改为“Qt6”,反正这个用不用VSCode也能搞。虽然我知道大伙伴们都很讨厌CMake,但毕竟这厮几乎成了C++的玩家规范了。Qt也算识大体,支持用CMake来构建程序。所以,只要你用的是能写C++的工具,理论上都能搞Qt。创建应用程序......
  • 一统天下 flutter - widget Sliver: SliverGrid - 网格(需要在 CustomScrollView 中使
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-widgetSliver:SliverGrid-网格(需要在CustomScrollView中使用)示例如下:lib\widget\sliver\sliver_grid.dart/**SliverGrid-网格(需要在CustomScrollView中使用)*/import'dart:......
  • 一统天下 flutter - widget Sliver: SliverAppBar/FlexibleSpaceBar - 可展开/收缩的
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-widgetSliver:SliverAppBar/FlexibleSpaceBar-可展开/收缩的标题栏(需要在CustomScrollView中使用)示例如下:lib\widget\sliver\sliver_app_bar.dart/**SliverAppBar/FlexibleSpaceBar......
  • 一统天下 flutter - widget Sliver: SliverToBoxAdapter - 为不可滚动组件提供 sliver
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-widgetSliver:SliverToBoxAdapter-为不可滚动组件提供sliver效果示例如下:lib\widget\sliver\sliver_to_box_adapter.dart/**SliverToBoxAdapter-为不可滚动组件提供sliver效果......
  • 一统天下 flutter - widget Sliver: NestedScrollView - 为可滚动组件提供 sliver 效
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-widgetSliver:NestedScrollView-为可滚动组件提供sliver效果示例如下:lib\widget\sliver\nested_scroll_view.dart/**NestedScrollView-为可滚动组件提供sliver效果*/import......
  • 一统天下 flutter - widget Sliver: SliverPersistentHeader - 自定义可展开/收缩的标
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-widgetSliver:SliverPersistentHeader-自定义可展开/收缩的标题栏示例如下:lib\widget\sliver\sliver_persistent_header.dart/**SliverPersistentHeader-自定义可展开/收缩的标题栏......
  • RK3588 Qt 交叉编译之四:配置及编译报错记录
    运行时出现错误提示:QIconvCodec::convertToUnicode:usingLatin-1forconversion,iconv_openfailedQIconvCodec::convertFromUnicode:usingLatin-1forconversion,iconv_openfailed原因是缺少iconv库,解决方案如下:./configure后添加编译-no-iconv运行时出现错误提......