? aclocal.m4 ? autom4te.cache ? config.h.in-autoheader ? config.h.in-autoheader2 ? xpdf_to_poppler.h ? lib/xpdf-changes.patch ? lib/pdf/Makefile ? lib/pdf/xpdf-3.02 ? lib/pdf/xpdf-3.02.tar.gz ? lib/readers/Makefile ? pdf2swf/fonts/Makefile Index: config.h.in =================================================================== RCS file: /cvsroot/swftools/swftools/config.h.in,v retrieving revision 1.39 diff -u -3 -p -r1.39 config.h.in --- config.h.in 13 Jul 2008 18:53:39 -0000 1.39 +++ config.h.in 13 Jul 2008 19:09:33 -0000 @@ -146,6 +146,15 @@ /* Define if OpenGL seems to work */ #undef HAVE_OPENGL +/* Define if you use poppler */ +#undef HAVE_POPPLER + +/* Define to 1 if you have the `poppler' library (-lpoppler). */ +#undef HAVE_LIBPOPPLER + +/* Define to 1 if you have the header file. */ +#undef HAVE_OUTPUTDEV_H + /* Define if you have the jpeg library (-ljpeg). */ /* Define if you have the jpeg library (-ljpeg). */ #undef HAVE_LIBJPEG @@ -238,5 +247,6 @@ #endif #endif +#include "xpdf_to_poppler.h" #endif Index: configure.in =================================================================== RCS file: /cvsroot/swftools/swftools/configure.in,v retrieving revision 1.130 diff -u -3 -p -r1.130 configure.in --- configure.in 13 Jul 2008 18:55:05 -0000 1.130 +++ configure.in 13 Jul 2008 19:09:33 -0000 @@ -21,6 +21,8 @@ AC_ARG_ENABLE(lame, [ --disable-lame don't compile any L.A.M.E. mp3 encoding code in], DISABLE_LAME=true) AC_ARG_WITH([external-libart], [ --with-external-libart use external libart library (at your own risk)], [EXTERNAL_LIBART=true]) +AC_ARG_WITH([poppler], +[ --with-poppler use poppler instead of xpdf (at your own risk)], [USE_POPPLER=true]) PACKAGE=swftools VERSION=2008-06-23-2005 @@ -135,6 +137,8 @@ fi AC_PROG_LN_S AC_CHECK_PROGS(UNCOMPRESS, gzip uncompress compress, ) +PKG_PROG_PKG_CONFIG + dnl Checks for system services OBJEXT="o" AREXT=".a" @@ -314,6 +318,29 @@ if test "x$EXTERNAL_LIBART" = "xtrue"; t fi AC_SUBST([art_in_source]) +xpdf_in_source='$(xpdf_objects)' +splash_in_source='$(splash_objects)' + +if test "x$USE_POPPLER" = "xtrue"; then + xpdf_in_source= + splash_in_source= + AC_DEFINE([HAVE_POPPLER],[1],[use poppler]) + PKG_CHECK_MODULES([POPPLER],[poppler poppler-splash],,[poppler_pkgconfig=no]) + if test "x$poppler_pkgconfig" = "xno"; then + AC_LANG_PUSH([C++]) + AC_CHECK_HEADERS([OutputDev.h],[ + AC_CHECK_LIB([poppler],[main],,[]) + ],[AC_MSG_ERROR([No poppler library found. This library is required.])]) + AC_LANG_POP + else + CPPFLAGS="$CPPFLAGS $POPPLER_CFLAGS" + AC_DEFINE([HAVE_POPPLER], [1]) + LIBS="$LIBS $POPPLER_LIBS" + fi +fi +AC_SUBST([xpdf_in_source]) +AC_SUBST([splash_in_source]) + # ------------------------------------------------------------------ RFX_CHECK_AVI2SWF @@ -506,6 +533,8 @@ AH_BOTTOM([ #endif #endif +#include "xpdf_to_poppler.h" + #endif // __config_h__ ]) Index: lib/Makefile.in =================================================================== RCS file: /cvsroot/swftools/swftools/lib/Makefile.in,v retrieving revision 1.84 diff -u -3 -p -r1.84 Makefile.in --- lib/Makefile.in 13 Jul 2008 18:46:27 -0000 1.84 +++ lib/Makefile.in 13 Jul 2008 19:09:33 -0000 @@ -13,6 +13,7 @@ lame_in_source = @lame_in_source@ h263_objects = h.263/dct.$(O) h.263/h263tables.$(O) h.263/swfvideo.$(O) actioncompiler_objects = action/assembler.$(O) action/compile.$(O) action/lex.swf4.$(O) action/lex.swf5.$(O) action/libming.$(O) action/swf4compiler.tab.$(O) action/swf5compiler.tab.$(O) action/actioncompiler.$(O) + actioncompiler_in_source = $(actioncompiler_objects) rfxswf_modules = modules/swfbits.c modules/swfaction.c modules/swfdump.c modules/swfcgi.c modules/swfbutton.c modules/swftext.c modules/swffont.c modules/swftools.c modules/swfsound.c modules/swfshape.c modules/swfobject.c modules/swfdraw.c modules/swffilter.c modules/swfrender.c h.263/swfvideo.c Index: lib/pdf/GFXOutputDev.cc =================================================================== RCS file: /cvsroot/swftools/swftools/lib/pdf/GFXOutputDev.cc,v retrieving revision 1.66 diff -u -3 -p -r1.66 GFXOutputDev.cc --- lib/pdf/GFXOutputDev.cc 19 Jun 2008 20:30:33 -0000 1.66 +++ lib/pdf/GFXOutputDev.cc 13 Jul 2008 19:09:34 -0000 @@ -38,9 +38,13 @@ #endif //xpdf header files #include "config.h" +#ifdef HAVE_POPPLER +#include +#include +#else #include "gfile.h" #include "GString.h" -#include "gmem.h" +#endif #include "Object.h" #include "Stream.h" #include "Array.h" @@ -54,12 +58,8 @@ #include "OutputDev.h" #include "GfxFont.h" #include "GfxState.h" -#include "CharCodeToUnicode.h" #include "NameToUnicodeTable.h" #include "GlobalParams.h" -#include "FoFiType1C.h" -#include "FoFiTrueType.h" -#include "GHash.h" #include "GFXOutputDev.h" // swftools header files @@ -123,6 +123,39 @@ struct fontentry { {"Symbol", "s050000l", s050000l_afm, s050000l_afm_len, s050000l_pfb, s050000l_pfb_len}, {"ZapfDingbats", "d050000l", d050000l_afm, d050000l_afm_len, d050000l_pfb, d050000l_pfb_len}}; +#ifdef HAVE_POPLER +char* mktmpname(char*ptr) { + static char tmpbuf[128]; + char*dir = getTempDir(); + int l = strlen(dir); + char*sep = ""; + if(!ptr) + ptr = tmpbuf; + if(l && dir[l-1]!='/' && dir[l-1]!='\\') { +#ifdef WIN32 + sep = "\\"; +#else + sep = "/"; +#endif + } + + // used to be mktemp. This does remove the warnings, but + // It's not exactly an improvement. +#ifdef HAVE_LRAND48 + sprintf(ptr, "%s%s%08x%08x",dir,sep,lrand48(),lrand48()); +#else +# ifdef HAVE_RAND + sprintf(ptr, "%s%s%08x%08x",dir,sep,rand(),rand()); +# else + static int count = 1; + sprintf(ptr, "%s%s%08x%04x%04x",dir,sep,time(0),(unsigned int)tmpbuf^((un +signed int)tmpbuf)>>16,count); + count ++; +# endif +#endif + return ptr; +} +#endif static int verbose = 0; static int dbgindent = 0; Index: lib/pdf/GFXOutputDev.h =================================================================== RCS file: /cvsroot/swftools/swftools/lib/pdf/GFXOutputDev.h,v retrieving revision 1.23 diff -u -3 -p -r1.23 GFXOutputDev.h --- lib/pdf/GFXOutputDev.h 8 Jul 2008 09:26:48 -0000 1.23 +++ lib/pdf/GFXOutputDev.h 13 Jul 2008 19:09:34 -0000 @@ -207,7 +207,7 @@ public: int width, int height, GfxImageColorMap*colorMap, GBool invert, GBool inlineImg, int mask, int *maskColors, Stream *maskStr, int maskWidth, int maskHeight, GBool maskInvert, GfxImageColorMap*maskColorMap); - int setGfxFont(char*id, char*name, char*filename, double maxSize, CharCodeToUnicode*ctu); +// int setGfxFont(char*id, char*name, char*filename, double maxSize, CharCodeToUnicode*ctu); void strokeGfxline(GfxState *state, gfxline_t*line, int flags); void clipToGfxLine(GfxState *state, gfxline_t*line); void fillGfxLine(GfxState *state, gfxline_t*line); Index: lib/pdf/InfoOutputDev.cc =================================================================== RCS file: /cvsroot/swftools/swftools/lib/pdf/InfoOutputDev.cc,v retrieving revision 1.12 diff -u -3 -p -r1.12 InfoOutputDev.cc --- lib/pdf/InfoOutputDev.cc 8 Jul 2008 09:26:37 -0000 1.12 +++ lib/pdf/InfoOutputDev.cc 13 Jul 2008 19:09:34 -0000 @@ -1,9 +1,18 @@ +#include "config.h" #include "Object.h" -#include "SplashTypes.h" +#include "InfoOutputDev.h" #include "SplashOutputDev.h" +#ifdef HAVE_POPPLER +#include +#include +#include +#include +#else +#include "SplashTypes.h" #include "SplashPath.h" +#include "SplashFont.h" #include "SplashFontFile.h" -#include "InfoOutputDev.h" +#endif #include "GfxState.h" #include "../log.h" #include Index: lib/pdf/InfoOutputDev.h =================================================================== RCS file: /cvsroot/swftools/swftools/lib/pdf/InfoOutputDev.h,v retrieving revision 1.8 diff -u -3 -p -r1.8 InfoOutputDev.h --- lib/pdf/InfoOutputDev.h 8 Jul 2008 09:26:25 -0000 1.8 +++ lib/pdf/InfoOutputDev.h 13 Jul 2008 19:09:34 -0000 @@ -23,11 +23,24 @@ #include "GfxFont.h" #include "OutputDev.h" -#include "SplashFont.h" #include "SplashOutputDev.h" +#ifdef HAVE_POPPLER +#include +#include +#include +#include +#else +#include "SplashTypes.h" #include "SplashPath.h" +#include "SplashFont.h" #include "SplashFontFile.h" +#endif + +#ifdef HAVE_POPPLER +#include +#else #include "GHash.h" +#endif struct GlyphInfo { Index: lib/pdf/Makefile.in =================================================================== RCS file: /cvsroot/swftools/swftools/lib/pdf/Makefile.in,v retrieving revision 1.23 diff -u -3 -p -r1.23 Makefile.in --- lib/pdf/Makefile.in 5 Apr 2008 07:24:20 -0000 1.23 +++ lib/pdf/Makefile.in 13 Jul 2008 19:09:34 -0000 @@ -1,7 +1,7 @@ # Generated automatically from Makefile.in by configure. top_builddir = ../.. -srcdir = . -top_srcdir = ../.. +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ include ../../Makefile.common all: ../libpdf$(A) pdf2swf$(E) @@ -10,6 +10,8 @@ libpdf: ../libpdf$(A) libpdf_objects = GFXOutputDev.$(O) InfoOutputDev.$(O) BitmapOutputDev.$(O) FullBitmapOutputDev.$(O) pdf.$(O) fonts.$(O) +xpdf_in_source = @xpdf_in_source@ + xpdf_objects = xpdf/GHash.$(O) xpdf/GList.$(O) xpdf/GString.$(O) xpdf/gmem.$(O) xpdf/gfile.$(O) \ xpdf/FoFiTrueType.$(O) xpdf/FoFiType1.$(O) xpdf/FoFiType1C.$(O) xpdf/FoFiBase.$(O) xpdf/FoFiEncodings.$(O) \ xpdf/OutputDev.$(O) xpdf/PDFDoc.$(O) xpdf/Error.$(O) xpdf/Stream.$(O) xpdf/Object.$(O) \ @@ -20,6 +22,8 @@ xpdf_objects = xpdf/GHash.$(O) xpdf/GLi xpdf/PSTokenizer.$(O) xpdf/FontEncodingTables.$(O) xpdf/BuiltinFont.$(O) xpdf/BuiltinFontTables.$(O) \ xpdf/GfxState.$(O) xpdf/Function.$(O) xpdf/Annot.$(O) xpdf/NameToCharCode.$(O) xpdf/UnicodeMap.$(O) \ xpdf/SecurityHandler.$(O) + +splash_in_source = @splash_in_source@ splash_objects = xpdf/SplashOutputDev.$(O) xpdf/SplashFont.$(O) xpdf/SplashState.$(O) xpdf/Splash.$(O) \ xpdf/SplashBitmap.$(O) xpdf/SplashClip.$(O) xpdf/SplashPattern.$(O) \ xpdf/SplashFontEngine.$(O) xpdf/SplashFontFile.$(O) xpdf/SplashFontFileID.$(O) \ @@ -27,7 +31,7 @@ splash_objects = xpdf/SplashOutputDev.$( xpdf/SplashFTFontEngine.$(O) xpdf/SplashFTFontFile.$(O) xpdf/SplashFTFont.$(O) fonts.$(O): fonts.c - $(C) -I ./ -I xpdf fonts.c -o $@ + $(C) fonts.c -o $@ cmyk.$(O): cmyk.cc $(CC) -I ./ -I xpdf cmyk.cc -o $@ GFXOutputDev.$(O): GFXOutputDev.cc GFXOutputDev.h CommonOutputDev.h ../gfxpoly.h @@ -136,26 +140,26 @@ xpdf/%.$(O): xpdf/%.cc $(CC) -I ./ -I xpdf $< -o $@ -../libpdf$(A): $(libpdf_objects) $(xpdf_objects) $(splash_objects) - $(AR) r ../libpdf$(A) $(libpdf_objects) $(xpdf_objects) $(splash_objects) +../libpdf$(A): $(libpdf_objects) $(xpdf_in_source) $(splash_in_source) + $(AR) r ../libpdf$(A) $(libpdf_objects) $(xpdf_in_source) $(splash_in_source) $(RANLIB) ../libpdf$(A) -xpdfapp_objects=xpdf/XPDF*.cc xpdf/PDFCore.cc xpdf/TextOutputDev.cc xpdf/xpdf.cc xpdf/CoreOutputDev.cc xpdf/UnicodeTypeTable.cc xpdf/PSOutputDev.cc -xxpdf$(E): $(xpdf_objects) xpdf/Splash*.cc - $(LL) $(CPPFLAGS) -DXPDFEXE -g -I xpdf -I . $(xpdfapp_objects) $(xpdf_objects) xpdf/Splash*.cc xpdf/parseargs.c -o xxpdf$(E) $(LIBS) -lXm -lX11 - -pdftoppm$(E): $(xpdf_objects) xpdf/Splash*.cc - $(LL) $(CPPFLAGS) -DXPDFEXE -g -I xpdf -I . xpdf/pdftoppm.cc $(xpdf_objects) xpdf/Splash*.cc xpdf/parseargs.c -o pdftoppm$(E) $(LIBS) -pdftotext$(E): $(xpdf_objects) $(splash_objects) - $(LL) $(CPPFLAGS) -DXPDFEXE -g -I xpdf -I . xpdf/pdftotext.cc $(xpdf_objects) xpdf/TextOutput*.cc xpdf/UnicodeType*.cc xpdf/parseargs.c -o pdftotext$(E) $(LIBS) +#xpdfapp_objects=xpdf/XPDF*.cc xpdf/PDFCore.cc xpdf/TextOutputDev.cc xpdf/xpdf.cc xpdf/CoreOutputDev.cc xpdf/UnicodeTypeTable.cc xpdf/PSOutputDev.cc +#xxpdf$(E): $(xpdf_objects) xpdf/Splash*.cc +# $(LL) $(CPPFLAGS) -DXPDFEXE -g -I xpdf -I . $(xpdfapp_objects) $(xpdf_objects) xpdf/Splash*.cc xpdf/parseargs.c -o xxpdf$(E) $(LIBS) -lXm -lX11 + +#pdftoppm$(E): $(xpdf_objects) xpdf/Splash*.cc +# $(LL) $(CPPFLAGS) -DXPDFEXE -g -I xpdf -I . xpdf/pdftoppm.cc $(xpdf_objects) xpdf/Splash*.cc xpdf/parseargs.c -o pdftoppm$(E) $(LIBS) +#pdftotext$(E): $(xpdf_objects) $(splash_objects) +# $(LL) $(CPPFLAGS) -DXPDFEXE -g -I xpdf -I . xpdf/pdftotext.cc $(xpdf_objects) xpdf/TextOutput*.cc xpdf/UnicodeType*.cc xpdf/parseargs.c -o pdftotext$(E) $(LIBS) gfx_objects = ../libgfxswf$(A) ../libgfx$(A) ../librfxswf$(A) ../libbase$(A) gfx_objects2 = $(gfx_objects) ../devices/lrf.$(O) ../libocr$(A) -pdf2swf$(E): ../../src/pdf2swf.c $(libpdf_objects) $(xpdf_objects) $(splash_objects) $(gfx_objects) - $(LL) $(CPPFLAGS) -g ../../src/pdf2swf.c $(libpdf_objects) $(xpdf_objects) $(splash_objects) $(gfx_objects) -o pdf2swf$(E) $(LIBS) -gfx2gfx$(E): ../../src/gfx2gfx.c $(libpdf_objects) $(xpdf_objects) $(splash_objects) $(gfx_objects2) - $(LL) $(CPPFLAGS) -g ../../src/gfx2gfx.c $(libpdf_objects) $(xpdf_objects) $(splash_objects) $(gfx_objects2) -o gfx2gfx$(E) $(LIBS) +pdf2swf$(E): ../../src/pdf2swf.c $(libpdf_objects) $(xpdf_in_source) $(splash_in_source) $(gfx_objects) + $(LL) $(CPPFLAGS) -g ../../src/pdf2swf.c $(libpdf_objects) $(xpdf_in_source) $(splash_in_source) $(gfx_objects) -o pdf2swf$(E) $(LIBS) +gfx2gfx$(E): ../../src/gfx2gfx.c $(libpdf_objects) $(xpdf_in_source) $(splash_in_source) $(gfx_objects2) + $(LL) $(CPPFLAGS) -g ../../src/gfx2gfx.c $(libpdf_objects) $(xpdf_in_source) $(splash_in_source) $(gfx_objects2) -o gfx2gfx$(E) $(LIBS) install: uninstall: