PDFium-PDF开源之旅(1)-初探代码下载编译
近日,Google和Foxit合作开源了Foxit的PDF源代码。
叫PDFium
相关新闻不少。哈,虽说已经不是程序猿了。只是还是有兴趣跑起来围观看看。废话少说。先说编译代码的步骤(事实上Google的站点上都有,纯属翻译):
环境准备:
1. 我安装的环境是vs2010
2. 预先安装好Python, SVN, Git
注意我装的python 是2.7.3: https://www.python.org/download/releases/2.7.3
获代替码:
我准备把代码保存在“E:\project\code\openpdf\”下,
1.获取PDF源代码
打开命名行输入:
git clone https://pdfium.googlesource.com/pdfium
cd pdfium
这样PDF源代码就下载好了,只是这是不够的,还须要下再其它的一些project才干够
2.首先要下载的就是GYP。这个是用于生成各个平台的project文件的工具(全部的project文件都是通过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/cygwin@231940 v8/third_party/cygwin
生成Build文件
就是用于生成project文件。Google的server上是没有直接存放project文件的,是通过gyp文件生成各个平台的project文件。
网上说明的生成project文件的步骤是:
Windows平台:
build\gyp_pdfium
其它平台:
build/gyp_pdfium
我在windows平台上。直接双击执行gyp_pdfium.py这个文件。就自己主动生成了。
例如以下图:
至此,代码就全然准备好了。
能够開始编译,并一睹为快啦:
最上层的接口就是在fpdfsdk这个project,能够開始研究啦。很多其它内容待续。。。
。
。。
參考:https://code.google.com/p/pdfium/wiki/Build
原创作品,转载请注明出处。
不少人代码下载不下来。这里提供一个我下载好的代码:
http://pan.baidu.com/share/link?shareid=224438671&uk=3405782395
project文件须要自己生成哦,体积有点大,主要是包括了v8,icu的代码。还有就是svn的文件...
PDFium-PDF开源之旅(1)-初探代码下载编译的更多相关文章
- Android 程序分析环境搭建-Android 9 -代码下载编译
Android 9 -代码下载编译 一,翻墙下载: 1.背景: 背景: 现在Android framework 开发的同学,整体在公司里面解一些无关痛痒的bug,对于Android framework ...
- Jenkins进阶-Git多仓库代码下载编译 (13)
多仓库代码部署这个问题其实在13年做配置管理的时候,就遇到过这样的问题,而最近公司可视化图项目也需要多个仓库代码需要同时下载进行编译,由于仓库之间的代码编译有依赖关系,所以必须同时下载下来按照顺序进行 ...
- Android webRTC 代码下载编译
1.安装depot tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 然后把把depot ...
- Github-Client(ANDROID)开源之旅(四) ------ 简介Roboguice
Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC),Guice非常小而且快.Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数 ...
- Github-Client(ANDROID)开源之旅(三) ------ 巧用ViewPagerIndicator
接上篇博文:Github-Client(ANDROID)开源之旅(二) ------ 浅析ActionBarSherkLock 文中结合了网易新闻客户端讲解了开源库ActionBarSherklock ...
- 【SQL进阶】03.执行计划之旅1 - 初探
听到大牛们说执行计划,总是很惶恐,是对知识的缺乏的惶恐,所以必须得学习执行计划,以减少对这一块知识的惶恐,下面是对执行计划的第一讲-理解执行计划. 本系列[T-SQL]主要是针对T-SQL的总结. S ...
- iOS 初探代码混淆(OC)
iOS 初探代码混淆(OC) 前言 自己做iOS开发也有几年的时间了,平时做完项目基本就直接打包上传到Appstore上,然后做上架操作了.但是最近,客户方面提出了代码安全的要求.说是要做代码混淆,这 ...
- 腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一)
腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一) 在看Accept阶段代码之前, 我们再回想一下 Basic Paxos算法; 1. Basic Paxos 算法是为 ...
- ESP8266开发之旅 进阶篇⑤ 代码规范 —— 像写文章一样优美
1.前言 之前,一直在跟大伙分享怎么去玩蓝牙模块,怎么去玩wifi模块,怎么去玩json,然后有很多小伙伴就留言各种问题或者说直接怼他的代码过来让我看,然后我就一脸懵逼(代码中到处各种abcd ...
随机推荐
- Oratop工具——实时数据库性能监控工具
在任何系统优化过程中,“80/20原则”是我们一定要关注的问题.简单的说,就是我们系统80%的性能问题.现象,都是有少数几个甚至一个问题造成的.这就需要我们面对复杂的系统性能问题的时候,要学会“拨开云 ...
- ORACLE同义词总结
ORACLE同义词总结 同义词概念 Oracle的同义词(synonyms) 从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没有多 ...
- 占成本85% SSD深度选购教你如何看颗粒
颗粒是固态硬盘负责容量和传输的介质,在这一方面上与优盘产品是相同的,从外观上看,颗粒占据了整个固态硬盘内部70%左右的空间,其同样做为成本技术,根据厂商的用料不同,成为了固态硬盘内部核心材料. 颗粒的 ...
- 2016 Multi-University Training Contest 1 总结
算是组队后第一次打比赛吧. 09题开始就有人过了,看到题目,这不是轮廓线DP的裸题么?!!,一发WA告终,然后发现题目是有改动的.还是太心急了. 然后我读了第一题,是最小生成树求期望距离,我把题意说了 ...
- 黑马程序员_<<String类>>
--------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1. String类 1.概述 String ...
- JS学习笔记(三)函数
js中的方法名一般都是首字母小写,其余单词首字母大写的规范. 声明 function 函数名(参数列表) { // 函数体 return 返回值; } 调用 函数名(); (js中花括号喜欢用这种方式 ...
- BOW
bag of words(NLP): 最初的Bag of words,也叫做"词袋",在信息检索中,Bag of words model假定对于一个文本,忽略其词序和语法,句法,将 ...
- JavaScript之Ajax
简介:AJax是在2005年被Adaptive Path的Jesse James Garrett发明的,用户概括异步加载页面内容的技术---说通俗点,Ajax就是实现局部页面通过JavaScript与 ...
- 2014.9.23window对象
一.window对象 Wondow.navigate(url); 跳转页面(与超链接的区别:可以加逻辑条件) Var a = Math.random(); 0-1之间随机数 Var a = parse ...
- Java 中的resultset详解
结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等. 结果集读取数据 ...