近日,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)-初探代码下载编译的更多相关文章

  1. Android 程序分析环境搭建-Android 9 -代码下载编译

    Android 9 -代码下载编译 一,翻墙下载: 1.背景: 背景: 现在Android framework 开发的同学,整体在公司里面解一些无关痛痒的bug,对于Android framework ...

  2. Jenkins进阶-Git多仓库代码下载编译 (13)

    多仓库代码部署这个问题其实在13年做配置管理的时候,就遇到过这样的问题,而最近公司可视化图项目也需要多个仓库代码需要同时下载进行编译,由于仓库之间的代码编译有依赖关系,所以必须同时下载下来按照顺序进行 ...

  3. Android webRTC 代码下载编译

    1.安装depot tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 然后把把depot ...

  4. Github-Client(ANDROID)开源之旅(四) ------ 简介Roboguice

    Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC),Guice非常小而且快.Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数 ...

  5. Github-Client(ANDROID)开源之旅(三) ------ 巧用ViewPagerIndicator

    接上篇博文:Github-Client(ANDROID)开源之旅(二) ------ 浅析ActionBarSherkLock 文中结合了网易新闻客户端讲解了开源库ActionBarSherklock ...

  6. 【SQL进阶】03.执行计划之旅1 - 初探

    听到大牛们说执行计划,总是很惶恐,是对知识的缺乏的惶恐,所以必须得学习执行计划,以减少对这一块知识的惶恐,下面是对执行计划的第一讲-理解执行计划. 本系列[T-SQL]主要是针对T-SQL的总结. S ...

  7. iOS 初探代码混淆(OC)

    iOS 初探代码混淆(OC) 前言 自己做iOS开发也有几年的时间了,平时做完项目基本就直接打包上传到Appstore上,然后做上架操作了.但是最近,客户方面提出了代码安全的要求.说是要做代码混淆,这 ...

  8. 腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一)

    腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一) 在看Accept阶段代码之前, 我们再回想一下 Basic Paxos算法; 1.  Basic Paxos 算法是为 ...

  9. ESP8266开发之旅 进阶篇⑤ 代码规范 —— 像写文章一样优美

    1.前言     之前,一直在跟大伙分享怎么去玩蓝牙模块,怎么去玩wifi模块,怎么去玩json,然后有很多小伙伴就留言各种问题或者说直接怼他的代码过来让我看,然后我就一脸懵逼(代码中到处各种abcd ...

随机推荐

  1. spoj ONP - Transform the Expression 中缀转后缀

    题目链接 将中缀表达式转化为后缀表达式. 数字的话直接放到答案的字符串里. 如果是左括号就进栈, 右括号就让栈里的符号都出来直到第一个左括号. 否则的话比较当前符号的优先级和栈顶符号的优先级. #in ...

  2. DMVsinSQLServer -- 备

    /*************************************************************************************************** ...

  3. (7) 引用Objective-C class library

    原文 引用Objective-C class library 这个范例是如何在Xamarin.ios中去使用一个我们自行在Xcode中开发的Objective-c Class Library. 主要会 ...

  4. 使用C#开发Metro 风格应用的路线图 -- 触屏操作

    原文 http://www.cnblogs.com/icuit/archive/2012/05/01/2478312.html win8支持多点触摸技术,而我们在屏幕上所做的各种操作,也最终转换为输入 ...

  5. LBYL与EAFP两种防御性编程风格

    检查数据可以让程序更健壮,用术语来说就是防御性编程. 检查数据的时候,有这样的两种不同的风格. LBYL:Look Before You Leap   EAFP:It's Easier to Ask ...

  6. shell脚本中常见的一些特殊符号和作用详解

    这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下   在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我 ...

  7. MFC DLL资源动态切换

    在MFC使用过程中,遇到DLL资源与主EXE资源冲突问题. 出现这样的Bug,一时无从下手. 报错位置在核心代码中dlgcore.cpp. [cpp] view plaincopy BOOL AFXA ...

  8. 调试qemu

    最近需要给libvirt增加一个新feature,该feature基于qemu的最新代码. 我需要关心的: http://wiki.qemu.org/Features/Migration 需要自己编译 ...

  9. linux 使用sudo开放普通用户权限

    整理一下以前写的东东,刚才又忘了- ---------------------------------------------------------------------------------- ...

  10. Unity 3d 实施刚体力

    1.选中已经添加了刚体的物体,然后添加恒定力组件. 此组件可以给刚体中添加恒定的力或扭矩力,常用于一次性发射的刚体,如模拟火箭的发射.这种物体的初始速度不是很大,但是随着时间的推移,加速度会越来越大. ...