X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpdf%2Fxpdf-changes.patch;h=83adec36612a025fba5f53d7d0f4dc8dd5f62a5a;hb=bf04757cd94e94c1f67fa3d2a4e3e59fa5bce0c0;hp=2247f5fdd005ad4948b940d9851cb1da90176254;hpb=b0d6b177b15ec7aff4c132353366b946aa382a89;p=swftools.git diff --git a/lib/pdf/xpdf-changes.patch b/lib/pdf/xpdf-changes.patch index 2247f5f..83adec3 100644 --- a/lib/pdf/xpdf-changes.patch +++ b/lib/pdf/xpdf-changes.patch @@ -39,24 +39,6 @@ diff -u -r1.9 -r1.10 } Gfx::Gfx(XRef *xrefA, OutputDev *outA, Dict *resDict, -@@ -3783,6 +3789,7 @@ - pushResources(resDict); - - // save current graphics state -+ GfxState*mystate = state; - saveState(); - - // kill any pre-existing path -@@ -3848,6 +3855,9 @@ - - // restore graphics state - restoreState(); -+ if(state!=mystate) { -+ fprintf(stderr, "Invalid state nesting in PDF file- file broken?\n"); -+ } - - // pop resource stack - popResources(); Index: GfxFont.h =================================================================== RCS file: /home/kramm/cvs/swftools.cache.cvsroot/swftools.cache/pdf2swf/xpdf/GfxFont.h,v @@ -492,7 +474,7 @@ Index: config.h @@ -53,9 +53,9 @@ // user config file name, relative to the user's home directory - #if defined(VMS) || defined(WIN32) + #if defined(VMS) || (defined(WIN32) && !defined(__CYGWIN32__)) -#define xpdfUserConfigFile "xpdfrc" +#define xpdfUserConfigFile "pdf2swf.conf" #else @@ -792,8 +774,8 @@ diff -u -r1.5 -r1.6 } void SplashFont::initCache() { ---- xpdf/SplashFTFont.cc.orig 2008-09-09 21:31:01.000000000 +0200 -+++ xpdf/SplashFTFont.cc 2008-10-05 17:37:32.000000000 +0200 +--- xpdf/SplashFTFont.cc.orig 2009-03-08 17:19:08.000000000 +0100 ++++ xpdf/SplashFTFont.cc 2009-03-15 19:18:11.000000000 +0100 @@ -46,6 +46,7 @@ int x, y; @@ -835,7 +817,16 @@ diff -u -r1.5 -r1.6 ff = (SplashFTFontFile *)fontFile; ff->face->size = sizeObj; FT_Set_Transform(ff->face, &textMatrix, NULL); -@@ -268,6 +281,8 @@ +@@ -262,17 +275,24 @@ + // skip the TrueType notdef glyph + return NULL; + } +- if (FT_Load_Glyph(ff->face, gid, FT_LOAD_NO_BITMAP)) { ++ int error = 0; ++ if ((error=FT_Load_Glyph(ff->face, gid, FT_LOAD_NO_BITMAP|FT_LOAD_NO_HINTING))) { ++ fprintf(stderr, "Truetype wasn't able to load glyph %d, error %d\n", gid, error); + return NULL; + } if (FT_Get_Glyph(slot, &glyph)) { return NULL; } @@ -844,6 +835,15 @@ diff -u -r1.5 -r1.6 path.path = new SplashPath(); path.textScale = textScale; path.needClose = gFalse; +- FT_Outline_Decompose(&((FT_OutlineGlyph)glyph)->outline, ++ error = FT_Outline_Decompose(&((FT_OutlineGlyph)glyph)->outline, + &outlineFuncs, &path); ++ if(error) { ++ fprintf(stderr, "Truetype wasn't able to read glyph %d, error %d\n", gid, error); ++ } + if (path.needClose) { + path.path->close(); + } --- xpdf/SplashFTFont.h.orig 2008-09-09 21:31:01.000000000 +0200 +++ xpdf/SplashFTFont.h 2008-10-04 17:39:57.000000000 +0200 @@ -42,6 +42,9 @@ @@ -976,3 +976,19 @@ diff -u -r1.5 -r1.6 return gFalse; } *name = new GString(s); +--- xpdf/Gfx.cc.orig 2009-03-08 17:10:40.000000000 +0100 ++++ xpdf/Gfx.cc 2009-03-08 17:18:23.000000000 +0100 +@@ -3188,8 +3188,11 @@ + u, (int)(sizeof(u) / sizeof(Unicode)), &uLen, + &dx, &dy, &originX, &originY); + dx = dx * state->getFontSize() + state->getCharSpace(); +- if (n == 1 && *p == ' ') { +- dx += state->getWordSpace(); ++ if (n == 1 && (*p == ' ' || *p == 0)) { ++ double w=state->getWordSpace(); ++ if (w==0 && dx==0) ++ w=state->getFontSize()/3; // workaround for zero word space ++ dx += w; + } + dx *= state->getHorizScaling(); + dy *= state->getFontSize();