PDF文件的读写(使用SDK).(二).编译生成免费的PoDoFo

PoDoFo是一个免费的开源的PDF开发库。PoDoFo这个名字很有趣,根据它附带的README.HTM文件说明,它源于:Portable  Document  Format。三个大写字母就是“PDF”,而用“o”来隔开。

 

PoDoFo下载地址:http://podofo.sourceforge.net/index.html

我写本文时,它刚发布0.9.1版没多久。

 

PoDoFo开发库需要依赖的GUN公共库比较多 ,但在WIN32下最少的依赖库需求只有三个,而其中需要编译的只有两个。

这三个至少需要的库,分别是:zlib, libjpeg和freetype。其中需要编译的则是:libjpeg和freetype。

编译libjpeg和freetype并不麻烦,它们的编译过程在PoDoFo自带的README.HTM中均有说明。只是我感觉README.HTM这个文件貌似比较老,不是针对最新的0.9.x版本编写的,因此实际的编译过程和上面所写的东西略有出入。

从网上下载的libjpeg压缩包中,自带有nmake的makefile文件,你仔细找找就可以发现,某些文件有vc之类的字样。不过这里需要注意的是,jconfig.h这个文件,是需要你自己指定的。一般来说,如果使用VC编译,可以直接copy jconfig.vc jconfig.h。这样就直接使用了它自带的jconfig.vc这个文件来编译。

至于freetype的编译就更简单了。因为它本身就带有vc 2005和vc2008的工程文件。你用vc2005或者vc2008打开它们,直接生成就是。

 

另外的zlib是不需要编译的,直接从网上下载下来就可以使用了。但需要注意的是,你下载下来的东西,必须要包含zlib1.dll,zlib1.lib和相关的.h文件。zlib1.dll是PoDoFo程序运行时需要的,而zlib1.lib和相关的.h文件,是编译PoDoFo需要的。

 

除了上面说的三个依赖模块外,在WIN32下,还可能会使用到libtiff这个库,这是关于tiff图像处理的,不是特别常用。另外,还可能会有libpng库,用来处理png图片。

 

由上,你若是使用PoDoFo来操纵PDF文件,则除了你自己本身写的程序外,则至少还包含zlib1.dll和PoDoFo.dll这两个动态链接库,你的程序才可以运行。不过还好,这些动态库都是绿色的。

 

根据PoDoFo中README.HTM的建议,在WIN32下编译PoDoFo模块,除了上面的准备外,最好先使用CMake这个工具生成VC的sln文件,然后再VC中打开sln文件,再进行编译。README.HTM中要求的CMake版本是2.6.x,而测试成功的是VC2008的sln文件生成。事实上CMake只要2.6.x以上版本都可以。我用的就是2.8.4版本,而VC我用的版本则是VC2005,同样也成功生成了sln文件,只不过,其中有个别测试工程的细微之处需要略为修正。README.HTM中提供的生成脚本如下(DOS控制台下的批处理文件):

 

del cmakecache.txt
set FTDIR=C:/developer/freetype-2.3.5
set FTLIBDIR=C:/developer/freetype-2.3.5/objs/win32/vc2008
set JPEGDIR=C:/Developer/jpeg
set ZLIBDIR=C:/developer/zlib123-dll
cmake -G "Visual Studio 9 2008" ../podofo-src -DCMAKE_INCLUDE_PATH="%FTDIR%/include;%JPEGDIR%/include;%JPEGDIR%;%ZLIBDIR%/include" -DCMAKE_LIBRARY_PATH="%FTLIBDIR%;%FTDIR%/lib;%JPEGDIR%/lib;%JPEGDIR%;%ZLIBDIR%/lib" -DPODOFO_BUILD_SHARED:BOOL=FALSE -DFREETYPE_LIBRARY_NAMES_DEBUG=freetype239MT_D -DFREETYPE_LIBRARY_NAMES_RELEASE=freetype239MT

 

或许这里还有很多述说不够详尽之处,还是看README.HTM吧。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值