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