1. 程式人生 > >Qt顯示PDF系列之一

Qt顯示PDF系列之一

Qt 只提供了對pdf檔案的讀寫介面,顯示介面並沒有。如下實現顯示。據我所知有以下幾種方法:

1.將pdf顯示為web頁面,需要用到類似PDFObject.js類 該類實現了網頁對PDF的解析,然後Qt通過瀏覽器控制元件進行載入。這裡要求html編寫者提供一個傳入檔案路徑的介面,Qt通runJacaScritp介面呼叫傳入。這種方法叫簡單,而且效果還不錯。

2.通過com元件載入

Qt 提供了QAxwidget和QAxobject介面用於對com介面進行呼叫,該類可以實現對pdf,flash,office相關文件進行顯示。不要要求本機安裝相應的軟體,對PPT顯示效果較差。

這是最簡單的方式。

3.通過開源庫poppler進行載入,這個是linux平臺的庫,如果你是windows,網上只有一個32位版本的可用,不過顯示都是64位程式,作用不大,要自己編譯折騰死人,要編譯GLi等好多依賴庫。

4.通過谷歌開源專案pdfium進行載入.該庫跟3一樣也是折騰死人不償命,不過好在本人已經入坑了並且編譯除了32和64版本,我將在該系列的最後一張提供連結。

後面的章節將對上面2,3,4中方法進行講解,第一種方法簡單,就不用講解了看看PDFObject.js如何載入pdf就OK了

相關推薦

Qt顯示PDF系列之一

Qt 只提供了對pdf檔案的讀寫介面,顯示介面並沒有。如下實現顯示。據我所知有以下幾種方法: 1.將pdf顯示為web頁面,需要用到類似PDFObject.js類 該類實現了網頁對PDF的解析,然後Qt通過瀏覽器控制元件進行載入。這裡要求html編寫者提供一個傳入檔案路徑的

Qt顯示pdf系列4——封裝pdfium庫為動態庫,顯示pdf

 承接上篇,pdfium的lib檔案是已經編譯出來了,理論上已經可以開始直接用了,官方提供的測試demo中基本上介紹了用法的整套流程,你可以選擇匯出一頁頁的(圖片)檔案,也可以直接取出Buffer丟給支援圖形庫去渲染。 序  但是需要注意的是,他在

Qt顯示pdf系列2——QAxWidget開啟Office檔案及pdf

 承接上章,該扯皮的扯完了,直接進入正題: 序  顧名思義,這篇先介紹下QAxwidget來操作office和pdf  QAxwidget,即一個ActiveX控制元件的qt版本,方便我們在qt程式中呼叫顯示,可以直接呼叫com元件。關於QAxw

Qt入門教程系列之一 安裝Qt

一、下載Qt 官網給出的都是線上安裝包,個人覺得還是離線安裝包好用,給出兩個離線安裝包下載地址 最新的Qt版本的是5.11.1,下載地址是 下載頁面如下 二、安裝 只貼出Windows和Ubuntu的安裝教程,因為我只有這兩個系統。 1、W

Qt顯示PDF之二 QAxWidget, QAxWidget

 1. QAxWidget顯示pdf非常簡單:直接上程式碼 classSCPdfWidget:publicQAxWidget { public: //SCPdfWidget(QWidget*parent=NULL); SCPdfWidget(QWidget*parent

VGA系列之一:VGA顯示網絡圖片

參數 sed 學習 nal 計數 2個 導入 查看 這一 一休哥是在讀研究生的時候開始正式接觸FPGA的,之所以這麽說呢,是因為之前本科參加電賽的時候也學過一點FPGA的知識,可惜學習周期太短導致那次電賽慘敗。可能世上就是有這麽巧的事,剛上研究生的第一天,老板就給了我一塊F

VGA系列之一:VGA顯示網路圖片

一休哥是在讀研究生的時候開始正式接觸FPGA的,之所以這麼說呢,是因為之前本科參加電賽的時候也學過一點FPGA的知識,可惜學習週期太短導致那次電賽慘敗。可能世上就是有這麼巧的事,剛上研究生的第一天,老闆就給了我一塊FPGA板,讓我自己玩去,從此就踏上了這條不歸路

HDMI系列之一:基於Nios II的HDMI顯示圖片

一休哥將在本文中介紹一個基於Nios II的HDMI顯示圖片的工程。我將主要分三個部分來介紹這一工程,從而實現工程效果。 1、 Nios II的常規使用套路 2、 自定義HDMI IP核的製作 3、 Nios II顯示圖片 本文涉及到的全部資料連結

使用QT搭建點雲顯示框架系列五·基於QT的QML影象選點、動態繪製十字絲功能 ,以及紋理對映

本文所有原始碼分享就看我最新的文章,歡迎各位大佬前來交流。http://blog.csdn.net/qq_30547073/article/details/79092419上一次利用QTeststream讀取了任意格式的點雲。這一次我花了一天的時間學習並實現了一個基於QML的

Tomcat7源碼分析學習系列之一-----tomcat的啟動文件startup的註釋

addition mission etl %0 很好 fine copy 文件結尾 存在 1. Windows系統,tomcat啟動文件startup.bat @echo off       rem 關閉回顯,不顯示下面的命令;rem Licensed to the Apa

初識RabbitMQ系列之一:簡單介紹

核心概念 out queue producer 概念 images logs 紅色 .org 一:RabbitMQ是什麽? 眾所周知,MQ是Message Queue(消息隊列)的意思,RabbitMQ就是眾多MQ框架其中的一款,開源實現了AMQP協議(官網:http:/

不容易系列之一(錯排)

tdi cstring 輸入 font style str 而且 scanf 什麽 題目: 大家常常感慨,要做好一件事情真的不容易,確實,失敗比成功容易多了! 做好“一件”事情尚且不易,若想永遠成功而總從不失敗,那更是難上加難了,就像花錢總是比掙錢容易的道理一樣。 話雖這樣

緩存系列之一:buffer、cache與瀏覽器緩存

網站 按鈕 強制 根據 3.4 發生 htm 多少 pan 緩存系列之一:buffer、cache與瀏覽器緩存 一:緩存是為了調節速度不一致的兩個或多個不同的物質的速度,在中間對速度較快的一方起到一個加速訪問速度較慢的一方的作用,比如CPU的一級、二級緩存是保存了CPU最近

數據庫面試系列之一:內連接和外連接

數據庫 面試 log 全外連接 nbsp 結果 連接 -1 .cn 內連接是返回關系表中既滿足查詢條件又滿足連接條件的元組 外連接是返回關系表中滿足查詢條件的但不一定滿足連接條件的元組 外連接分為:左外連接,右外連接,全外連接 左外連接是返回左表中滿足查詢條件但不一定滿

docker系列之一 image和container

docker 想要 通過 其中 images 刪除 滿了 能夠 agg docker images往往不知不覺就占滿了硬盤空間,為了清理冗余的image,可采用以下方法: 1.進入root權限 sudo su 2.停止所有的container,這樣才能夠刪除其中的image

.Net Core 系列之一 hello world

按鈕 16px bin release 重新 get 完成 community 可能 OS:   win10 企業版 中文環境 .Net Core:   切記不要裝64版本,否則可能會出現vs2017無法生成.net core 2.0的項目   dotnet-sdk

【Kafka踩坑系列之一】消費者拉不出數據

dex -c 通知 還得 gin div 消費 發現 拉取 一、Bug背景 因業務需要,我們部署了兩個Kafka集群。Kafka集群A的版本號為:0.11.0.1,Kafka集群B的版本號為0.9.0.1。 因兩個Kafka集群的版本號不一致,嘗試了

項目管理碎碎念系列之一:幹系人管理

關系 mbo ans con lock iar odi 所在 alt 初次見到“項目幹系人”這個詞,我是有點蒙圈的,因為這不太符合中文平時的表達。 其實所謂“項目幹系人”,英文稱作“Project Stakeholder”,翻譯成利益相關者,對其含義就一目了然

mongo 3.4分片集群系列之一:淺談分片集群

通過 分片集群 分配 指定 可擴展性 key 負載 snap 無法 這篇為理論篇,稍後會有實踐篇 1、分片集群是個啥玩意兒 要回答這個問題,首先得知道它是由什麽東東組成的。 MongoDB分片集群由以下組件組成: mongos:mongos作為查詢路由器,提供客戶端應用程

Vue.js系列之一初識Vue

method ntp 前端 spl 也會 date() 代碼 剖析 script 在看vue.js之前,可以先看這兩篇文章,對於為什麽要使用vue會有一定幫助 1、 Vue.js !important 2、界面之下:還原真實的MV*模式 !important 3、web前端