先給出我當前收集的有用連接。git
// libharu在git的地址github
https://github.com/libharu/libharu
// libharu的編譯方法
https://github.com/libharu/libharu/wiki/Installation
// libharu--將2個png保存爲pdf
http://blog.csdn.net/superlym2005/article/details/5834390
// libharu和pdflib 兩種寫pdf庫文件使用心得
http://blog.csdn.net/cztjing/article/details/7789198
// 常見pdf開發庫的討論帖子
http://bbs.csdn.net/topics/360176044spa
編譯libharu,你須要libpng以及zlib。爲了節省時間,如何下載編譯libpng和zlib(你能夠參考:http://kingsz1.iteye.com/blog/543787),這裏不敘述。.net
1. zlib文件夾,libpng文件夾,lib文件夾,libharu文件夾命令行
進入libharu文件夾,在vs2010的命令行下執行: nmake script/Makefile.msvc_dlldebug
錯誤1:hpdf_streams.c
src\hpdf_streams.c(34) : fatal error C1083: Cannot open include file: 'zlib.h':
No such file or directoryblog
辦法:將Makefile.msvc_dll裏面的「CFLAGS=/MD -nologo -O2 -Iinclude -Iwin32\include -I"$(PNG_PREFIX)"\include -I"$(ZLIB_PREFIX)"\include -DHPDF_DLL_MAKE"修改成」CFLAGS=/MD -nologo -O2 -Iinclude -Iwin32\include -I"$(PNG_PREFIX)" -I"$(ZLIB_PREFIX)" -DHPDF_DLL_MAKE「ip
而後再執行nmake script/Makefile.msvc_dll開發
錯誤2:LINK : fatal error LNK1181: cannot open input file 'libpng13.lib'input
辦法:將Makefile.msvc_dll裏面的LDFLAGS= /LIBPATH:$(PNG_PREFIX)\lib /LIBPATH:$(ZLIB_PREFIX)\lib /LIBPATH:win32\msvc libpng13.lib zlib.lib改成」LDFLAGS= /LIBPATH:$(PNG_PREFIX)\lib /LIBPATH:$(ZLIB_PREFIX)\lib /LIBPATH:win32\msvc libpngd.lib zlibd.lib「
由於咱們編譯的是debug版本,這裏的2個lib爲debug版本的。
因此還要將」CFLAGS_DEMO=/MD -nologo -O2 -Iinclude -Iwin32\include -D__WIN32__ -DHPDF_DLL「改成」CFLAGS_DEMO=/MD -nologo -O2 -Iinclude -Iwin32\include -D__WIN32__ -DHPDF_DLL -DLIBHPDF_DEBUG「
同時打開libharu\win32\include\hpdf_config.h文件,將裏面的#undef LIBHPDF_DEBUG註釋起來.
另外將libpngd.lib和zlibd.lib拷貝到libharu\win32\msvc下面
而後再執行nmake script/Makefile.msvc_dll
錯誤3:libhpdf.def : error LNK2001: unresolved external symbol HPDF_3DAnnot_Set3DView
將libharu\win32\msvc\libhpdf.def裏面的HPDF_3DAnnot_Set3DView刪除。
而後再執行nmake script/Makefile.msvc_dll
這樣會在libharu下面生成libhpdfd.dll和libhpdfd.lib
編譯release就簡單多了,不須要考慮*d.lib, *d.dll等問題。