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吧。