Qt制作报表


Qt应用程序中我们会处理一些数据,得到一些结果,为了使结果显而易见,我们通常希望把结果以一定的格式打印出来。最开始想到的就是打印成PDF格式,毕竟PDF的可移植性好,而且打印结果不容易被他人修改。

搜索了一些资料后,发现了两个开源库limereport和KDReport比较好用。仔细研究了limereport的例子后发现,limereport主要是用于数据显示,不能在其中插入描述文本,一定格式的图片等,所以最后选择放弃。选定KDReport。

编译KDReport

KDReprot依赖KDChart,所以我们首先编译KDChart。

在GitHub官网上下载KDChart最新的Release版本,解压下载后的文件使用CMake构建Visual Studio项目,然后编译。

然后下载KDReport最新的Release版本,解压下载后的文件,使用CMake构建Visual Studio项目。

注意这里可能会出现一些错误。

  1. 需要配置正确的KDChart编译库路径(KDChart_DIR)。
  2. 设置CMAKE_BUILD_TYPE(STRING, 默认设置位Debug)。
  3. 添加CMAKE_INSTALL_PREFIX字段,用于设置编译后的安装目录。
  4. 特别注意:KDReport的CMakeLists.txt少了Network模块的链接,可能会生成错误,需要在KDReport根目录的CMakeList.txt添加上Qt5::Network的,添加后内容如下。(编译版本:KDReport 2.0.0)
  set(Qt_VERSION_MAJOR 5)
  set(QT_MIN_VERSION 5.9.0)
  find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Widgets PrintSupport Xml Network)
  list(APPEND QT_LIBRARIES Qt5::Core Qt5::Widgets Qt5::PrintSupport Qt5::Xml Qt5::Network)
  set(${PROJECT_NAME}_LIBRARY_QTID "")

编译完成后,下面我们运行一个KDReport的例子,验证下编译是否完全正确。首先将KDChart编译生成的DLL拷贝到当前运行目录,然后双击HelloWorld.exe,运行结果如下。说明一切运行正确。

利用KDReport封装一个指定格式的PDF文档输出例子

稍后添加一个GitHub地址链接


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM