先给出我当前收集的有用连接。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等问题。