PDFium-PDF開源之旅(1)-初探程式碼下載編譯
近日,Google和Foxit合作開源了Foxit的PDF原始碼。叫PDFium
相關新聞不少,哈,雖說已經不是程式設計師了,不過還是有興趣跑起來圍觀看看。廢話少說,先說編譯程式碼的步驟(其實Google的網站上都有,純屬翻譯):
環境準備:
1. 我安裝的環境是vs2010
2. 預先安裝好Python, SVN, Git
獲取程式碼:
我準備把程式碼儲存在“E:\project\code\openpdf\”下,
1.獲取PDF原始碼
開啟命名行輸入:
git clone https://pdfium.googlesource.com/pdfium
cd pdfium
這樣PDF原始碼就下載好了,不過這是不夠的,還需要下再其他的一些工程才可以
2.首先要下載的就是GYP,這個是用於生成各個平臺的工程檔案的工具(所有的工程檔案都是通過GYP和gypi的檔案生成的)
svn co http://gyp.googlecode.com/svn/trunk build/gyp
3. V8 JavaScript引擎的下載(開源的部分提供了PDF的填表功能,所以用到了JavaScript引擎)
svn co http://v8.googlecode.com/svn/trunk v8
4. ICU下載,V8又依賴於ICU庫,所以繼續下載吧
svn co https://src.chromium.org/chrome/trunk/deps/third_party/icu46 v8/third_party/icu
5. 最後就是Cygwin的獲取啦(Windows Only),主要是用於生成V8的一些原始檔
svn co http://src.chromium.org/svn/trunk/deps/third_party/[email protected] v8/third_party/cygwin
生成Build檔案
就是用於生成工程檔案,Google的伺服器上是沒有直接存放工程檔案的,是通過gyp檔案生成各個平臺的工程檔案。
網上說明的生成工程檔案的步驟是:
Windows平臺:
build\gyp_pdfium
其他平臺:
build/gyp_pdfium
我在windows平臺上,直接雙擊執行gyp_pdfium.py這個檔案,就自動生成了。如下圖:
至此,程式碼就完全準備好了。
可以開始編譯,並一睹為快啦:
最上層的介面就是在fpdfsdk這個工程,可以開始研究啦!更多內容待續。。。。。。
另外,如果有需要也可以試試Foxit的官方SDK: Foxit SDK
原創作品,轉載請註明出處。
不少人程式碼下載不下來,這裡提供一個我下載好的程式碼:
http://pan.baidu.com/share/link?shareid=224438671&uk=3405782395
工程檔案需要自己生成哦,體積有點大,主要是包含了v8,icu的程式碼,還有就是svn的檔案...
相關推薦
PDFium-PDF開源之旅(1)-初探程式碼下載編譯
近日,Google和Foxit合作開源了Foxit的PDF原始碼。叫PDFium 相關新聞不少,哈,雖說已經不是程式設計師了,不過還是有興趣跑起來圍觀看看。廢話少說,先說編譯程式碼的步驟(其實Google的網站上都有,純屬翻譯): 環境準備: 1. 我安裝的環境是vs2
PDFium-PDF開源之旅(2)——執行除錯pdfium自帶的測試程式
PDFium-PDF開源之旅(2) ——執行除錯PDFium自帶的測試程式 趁熱打鐵週末,總算有時間繼續啦。廢話少說,切入正題. 編譯執行pdfium_test.exe 下載程式碼之後,原想直接寫個Demo,認真看了工程,PDFium是有自帶一個測試程式的,叫pdfium_
Hash-retrieval復現之旅(1)------------------------------malti-label 多標籤影象的檢索程式碼復現
本文參考論文是arxiv2015的關於多標籤檢索的論文Deep Semantic Ranking Based Hashing for Multi-Label Image Retrieval,作者 Fang Zhao Yongzhen Huang Li
C#多線程之旅(1)——介紹和基本概念
隔離 cnblogs 影響 3-0 同時 ima 並行 logic mes 閱讀目錄 一、多線程介紹 二、Join 和Sleep 三、線程怎樣工作 四、線程和進程 五、線程的使用和誤用 原文地址:C#多線程之旅(1)——介紹和基本概念 C#多線程之旅目錄: C#
微軟與Node.js的開源之旅
支持 全球 tro 更多 工具和平臺 .cn 我們 images tell 微軟近年來在開源領域可謂是大刀闊斧的前進中,繼2015年微軟與紅帽合作,微軟智能雲Azure與Linux進一步融合等舉措之後,2016年,微軟繼續加大開源之舉,大力推進Node.js的開發和開源社區
Android開發之旅1:環境搭建及HelloWorld
lan 及其 其它 ply 新項目 bsp 驗證 for 對話框 ——工欲善其事必先利其器 引言 本系列適合0基礎的人員,因為我就是從0開始的,此系列記錄我步入Android開發的一些經驗分享,望與君共勉!作為Android隊伍中的一個新人的
python之旅 1-29 補充內容,深淺copy
abc 相同 多少 刪除列 cti aec 保持 mage amp # l1 = [111,222,333,444,555] 將索引為奇數位的元素刪除. # l1 = [111,222,333,444,555] # del l1[1::2] # print(l1)
java學習之旅-1
ava 什麽 不用 補碼 void ret 負數 類型 是什麽 學了java差不多兩天了,要說和C語言的區別嘛,還是有很多的,但不得不說,先學了C語言再學其他的語言真的有很大幫助。首先呢,先看看java和C語言的基本格式吧。java的格式: public class De
[Python3填坑之旅]1、urllib模組網頁爬蟲訪問中文網址出錯
正在學習網頁爬蟲,用的Python3+urllib模組,當遇到連結裡有中文字元的時候總是報錯。之前以為是Python編碼的問題,不斷去嘗試不同的編碼去encode與decode,可以問題總是解決不了,沒有辦法繼續查閱資料,最後發現其實解決方法特別簡單。 問題描述 當我訪問帶有中文
架構必經之路2 - 熔斷機制 架構之旅1 - 扣減庫存
架構之旅1 - 扣減庫存 架構之旅2 - 熔斷機制 專案中要做一個熔斷機制,預防對第三方的介面呼叫壓力太大。下面我介紹下專案中用到的熔斷機制。 一、熔斷機制 1.熔斷檢測機制 (1)請求call到backend後,首先判
【Linux之旅-1】VMware虛擬機器中的Centos和windows共享資料夾
一、開啟虛擬機器,進入安裝好的centos系統,點選VM頂部導航欄中的“虛擬機器”按鈕,進入子選單選擇“安裝VMware Tools”,如下圖(我的已安裝過,因此顯示的是重新安裝) 二、在cent
菜鳥的微服務之旅(1)---認識微服務(下)
上文我們瞭解了為什麼微服務架構思想會出現,以及闡述了關於微服務的優缺點。 那本文我們繼續來了解關於微服務的東西。 首先,我們需要知道的是微服務架構和SOA有什麼區別呢? 前文我們提及SOA是通過將整體服務分成子系統,在開發過程中還是避免不了專案的臃腫導致的種種弊
架構之旅1
生活中,我們總是用各種電商app搶購商品,但是庫存數是很少的,特別是秒殺場景,商品可能就一件,那如何保證不會出現超賣的情況呢? 一、扣減庫存的三種方案 (1)下單減庫存 使用者下單時減庫存 優點:實時減庫存,避免付款時因庫存不足減庫存的問題 缺點:惡意買家大量下單,將
Android外掛化技術之旅 1 開篇 - 實現啟動外掛與呼叫外掛中的Activity和Service
前言 Android技術如今已很成熟了,元件化、外掛化、熱修復等等框架層出不窮,如果只停留在單純的會用框架上,技術永遠得不到成長,只有懂得其原理,能夠婉婉道來,能夠自己手動寫出,技術才會得到成長,與其焦慮未來,不如把握現在。本篇將手寫教大家寫出外掛化框架,外掛化技術是Android高階工程師必備的技術之一,
Html5學習之旅(1)
開始~~~~ <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> &l
Linux下PHP開發之旅-1.開發環境搭建
一.下載相關安裝包 從官網:https://www.apachefriends.org/download.html 下載對應版本的安裝包,由於學的版本為5.5,選擇5.6版本安裝包 二.執行安裝 由於下載的檔案直接就是xampp-linux-x64-5.6.39-0-i
如何開始你的 SOHO 之旅 (1)
仔細算算自己在家上班已經有差不多4年了,所以回想起整個過程,只有一種感受,那就是再也回不去了。我相信很多在家工作多年的朋友也會有同樣的感受,“自由”這東西一旦擁有就太難再放棄掉。 我現在無法想象我每天要在上下班的路上耽擱1-2個小時,每天要準時一大早起床,每週無論有
Java學習之旅1
1.圓角按鈕的設定 import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Graphics;
【SQL進階】03.執行計劃之旅1
聽到大牛們說執行計劃,總是很惶恐,是對知識的缺乏的惶恐,所以必須得學習執行計劃,以減少對這一塊知識的惶恐,下面是對執行計劃的第一講-理解執行計劃。 本系列【T-SQL】主要是針對T-SQL的總結。 一、為什麼需要執行計劃? (1)幫助分析 當我們想要去分析SQL語句存在很慢時,需要有一個
Web效能探索之旅-1.無線網路基礎
一、無所不在的連線 針對不通的使用場景,無線網路技術有很多種。 鑑於無線網路技術如此多樣,籠統地概括所有無線網路的效能優化手段是不可能的。好在大多數無線技術的原理都是相通的,衡量效能的指標和約束條件也具有普遍實用性。只要把影響無線效能的基本原理搞清楚,那其他問題自然也就迎刃而解了。 二、無線網路的效能基