需求:將軟件處理的結果保存為一個報告文檔,文檔中包含表格、圖片、文字,格式為word的.doc和.pdf。生成word是為了便於用戶編輯。
開發環境:qt4.8.4+vs2010
在qt的官網上對於pdf的操作介紹如下:http://qt-project.org/wiki/Handling_PDF 。即通過QPrinter類來創建pdf;還有通過第三方庫PoDoFo
在qt的官網上對於word的操作介紹如下:http://qt-project.org/wiki/Handling_Microsoft_Word_file_format。即通過Word本身COM組件的形式,Qt的ActiveX框架來實現;還有通過xml來實現。本文主要介紹Qt ActiveX和html格式生成word文檔。
下面舉例詳細說明pdf和word文檔的生成:
1.pdf的生成
pdf文檔里要求有表格、圖片、文字,參考博客:http://blog.sina.com.cn/s/blog_a6fb6cc90101gvnx.html。里面有介紹文字、圖片、表格分別是怎樣通過QPrinter類來實現的。但是遇到一個麻煩就是怎樣把這三種格式的東西放在一起而且排版好呢,用上述博客里的方法嘗試之后,最終確定使用第三種生成表格(html格式)的方式來得到:
QPrinter printer_text;
printer_text.setOutputFormat(QPrinter::PdfFormat);
printer_text.setOutputFileName(pdfname);//pdfname為要保存的pdf文件名
QTextDocument text_document;
QString html = GeneratePi