On Mon, Jul 14, 2008 at 11:28:04AM +0200, Matthias Kramm wrote:
> On Sun, Jul 13, 2008 at 09:10:59PM +0200, Patrice Dumas <[EMAIL PROTECTED]>
> wrote:
> > Also I forgot to say that I commented out the rules for programs that are
> > part of xpdf since they seemed not to be really maintained.
>
> Why do you think they're not maintained? They work nicely on my
> system (And are regularily used for debugging).
Ah, ok. It seemed to me that the list of files and object files were
less well maintained, and also they were not built in the default case.
But no problem, I attach my patch without that.
--
Pat
? 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 14 Jul 2008 10:13:08 -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 <OutputDev.h> 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 14 Jul 2008 10:13:08 -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 14 Jul 2008 10:13:08 -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 14 Jul 2008 10:13:09 -0000
@@ -38,9 +38,13 @@
#endif
//xpdf header files
#include "config.h"
+#ifdef HAVE_POPPLER
+#include <goo/GooString.h>
+#include <goo/gfile.h>
+#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 14 Jul 2008 10:13:09 -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 14 Jul 2008 10:13:09 -0000
@@ -1,9 +1,18 @@
+#include "config.h"
#include "Object.h"
-#include "SplashTypes.h"
+#include "InfoOutputDev.h"
#include "SplashOutputDev.h"
+#ifdef HAVE_POPPLER
+#include <splash/SplashTypes.h>
+#include <splash/SplashPath.h>
+#include <splash/SplashFont.h>
+#include <splash/SplashFontFile.h>
+#else
+#include "SplashTypes.h"
#include "SplashPath.h"
+#include "SplashFont.h"
#include "SplashFontFile.h"
-#include "InfoOutputDev.h"
+#endif
#include "GfxState.h"
#include "../log.h"
#include <math.h>
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 14 Jul 2008 10:13:09 -0000
@@ -23,11 +23,24 @@
#include "GfxFont.h"
#include "OutputDev.h"
-#include "SplashFont.h"
#include "SplashOutputDev.h"
+#ifdef HAVE_POPPLER
+#include <splash/SplashTypes.h>
+#include <splash/SplashPath.h>
+#include <splash/SplashFont.h>
+#include <splash/SplashFontFile.h>
+#else
+#include "SplashTypes.h"
#include "SplashPath.h"
+#include "SplashFont.h"
#include "SplashFontFile.h"
+#endif
+
+#ifdef HAVE_POPPLER
+#include <goo/GooHash.h>
+#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 14 Jul 2008 10:13:09 -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,8 +140,8 @@ 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
@@ -152,10 +156,10 @@ pdftotext$(E): $(xpdf_objects) $(splash_
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: