利用Qt將網頁儲存為PDF
blog文章地址http://www.godebug.org/index.php/archives/129/ 起因是在群裡和大家討論自己做一個圖靈社群的客戶端,說沒有API不好搞,後來fairjm童鞋發了個java版的豆瓣日誌轉pdf的文章,我忽然想用C++來做這個不知道難度如何,於是就趁昨天和今天中午午休的時候開始了折騰。 最開始是想找個http庫下載網頁,然後找個xml庫來解析網頁,然後找到要獲取的部分,似乎應該不難,http庫有curl和avhttp,xml解析可以用boost的ptree、slimxml或者tinyxml之類的應該都可以。但是轉念一想,這樣只是能夠獲取到文字,如果有圖片,還需要自己下載,更操蛋的是字型、排版、CSS什麼的怎麼辦?js指令碼DOM操作怎麼辦?這些都搞定了我就可以自己寫瀏覽器了,摔! 那就只能找現成的瀏覽器核心來搞了,這個一般就是webkit、cef或者通過COM呼叫IE的核心了,然後我就想到了qt自帶的webkit,使用比較方便,而且正好可以解決下一個問題——怎樣生成PDF,Qt的QPdfWriter或者QPrinter都可以直接生成pdf。 思路有了,馬上開工!
先上程式碼!https://github.com/avdbg/save_pdf
不要吐槽為啥一下就commit了一個完整的工程,我是故意的哈哈哈哈
對照註釋很容易就能看懂 就是建立了個印表機輸出到一個PDF檔案,然後用QWebElement.render()函式渲染到這個PDF 至於只列印文章,就是靠查詢element找到對應的QWebElement,然後用同樣的方法列印到PDF 列印出來的還算可以,文字也都可以複製,不過超連結和按鈕什麼的都沒法點,將就一下用吧,如果看官老爺要求更高的話可以看看這個開源專案http://wkhtmltopdf.org/
相關文章
- 利用NODEJS+Puppeteer實現伺服器儲存網頁為圖片和PDFNodeJS伺服器網頁
- 使用canvas儲存網頁為pdf檔案支援跨域Canvas網頁跨域
- 利用SelectPdf外掛將網頁生成PDF網頁
- 如何將html程式碼儲存為Pdf檔案HTML
- 將網頁儲存為圖片形式程式碼例項網頁
- 使用JavaScript將當前頁面儲存成PDF,支援圖片和文字的儲存JavaScript
- 如何將網頁儲存成mhtml格式網頁HTML
- C#/VB.NET 將OFD儲存為PDF檔案流C#
- 微信長按網頁儲存為截圖網頁
- 如何將一個pdf拆分為多個單頁pdf?
- 網頁密碼儲存網頁密碼
- js實現的將網頁儲存為圖片簡單解釋介紹JS網頁
- Java 將PDF轉為HTML時儲存到流JavaHTML
- 利用命令列將pdf轉換為長圖命令列
- 利用vbs指令碼將word文件轉換為pdf指令碼
- 將動態aspx頁面,儲存為靜態htm檔案 (轉)
- 將Oracle作為NoSQL文件儲存OracleSQL
- 將FileSystem轉換為ASM儲存ASM
- Java 將PDF轉為PDF/AJava
- 如何免費將PDF轉成HTML網頁?HTML網頁
- C#生轉換網頁為pdfC#網頁
- C# word或者excel儲存或匯出為PDFC#Excel
- 將網站儲存成圖片網站
- asp.net利用儲存過程分頁程式碼ASP.NET儲存過程
- 如何將MAC的檔案儲存至NAS網路儲存?Mac
- Delphi儲存網頁中的圖片網頁
- Java 將PDF轉為線性PDFJava
- win10瀏覽器如何儲存網頁_win10瀏覽器怎麼儲存網頁Win10瀏覽器網頁
- JS 將HTML頁面轉為PDF或者World 並下載JSHTML
- Python 將PDF轉為PDF/A、PDF/X,以及PDF/A轉回PDFPython
- Android下載網路pdf檔案儲存至本地Android
- 可用。儲存分頁
- 段頁式儲存
- C# 將PDF轉為線性化PDFC#
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- MATLAB將figure視窗儲存為圖片Matlab
- Matlab將.mat檔案儲存為.txt檔案Matlab
- 分頁儲存過程儲存過程