From c24ecd9bc561623d9ffedc810f719aede47b3f00 Mon Sep 17 00:00:00 2001 From: kramm Date: Tue, 8 May 2007 13:33:58 +0000 Subject: [PATCH] added static font files --- lib/pdf/GFXOutputDev.cc | 91 +++++++++++++++++++++++++++++++---------------- lib/pdf/Makefile.in | 4 ++- lib/pdf/fonts.c | 28 +++++++++++++++ lib/pdf/fonts.h | 28 +++++++++++++++ 4 files changed, 119 insertions(+), 32 deletions(-) diff --git a/lib/pdf/GFXOutputDev.cc b/lib/pdf/GFXOutputDev.cc index 94240ac..5f4b111 100644 --- a/lib/pdf/GFXOutputDev.cc +++ b/lib/pdf/GFXOutputDev.cc @@ -70,6 +70,7 @@ #include "../devices/arts.h" #include "../devices/render.h" #include "../png.h" +#include "fonts.h" #include @@ -87,26 +88,32 @@ static int fontnum = 0; static char* lastfontdir = 0; -struct mapping { +struct fontentry { char*pdffont; char*filename; + char*afm; + int afmlen; + char*pfb; + int pfblen; + char*fullfilename; } pdf2t1map[] ={ -{"Times-Roman", "n021003l"}, -{"Times-Italic", "n021023l"}, -{"Times-Bold", "n021004l"}, -{"Times-BoldItalic", "n021024l"}, -{"Helvetica", "n019003l"}, -{"Helvetica-Oblique", "n019023l"}, -{"Helvetica-Bold", "n019004l"}, -{"Helvetica-BoldOblique", "n019024l"}, -{"Courier", "n022003l"}, -{"Courier-Oblique", "n022023l"}, -{"Courier-Bold", "n022004l"}, -{"Courier-BoldOblique", "n022024l"}, -{"Symbol", "s050000l"}, -{"ZapfDingbats", "d050000l"}}; - -static int verbose = 1; +{"Times-Roman", "n021003l", n021003l_afm, n021003l_afm_len, n021003l_pfb, n021003l_pfb_len}, +{"Times-Italic", "n021023l", n021023l_afm, n021023l_afm_len, n021023l_pfb, n021023l_pfb_len}, +{"Times-Bold", "n021004l", n021004l_afm, n021004l_afm_len, n021004l_pfb, n021004l_pfb_len}, +{"Times-BoldItalic", "n021024l", n021024l_afm, n021024l_afm_len, n021024l_pfb, n021024l_pfb_len}, +{"Helvetica", "n019003l", n019003l_afm, n019003l_afm_len, n019003l_pfb, n019003l_pfb_len}, +{"Helvetica-Oblique", "n019023l", n019023l_afm, n019023l_afm_len, n019023l_pfb, n019023l_pfb_len}, +{"Helvetica-Bold", "n019004l", n019004l_afm, n019004l_afm_len, n019004l_pfb, n019004l_pfb_len}, +{"Helvetica-BoldOblique", "n019024l", n019024l_afm, n019024l_afm_len, n019024l_pfb, n019024l_pfb_len}, +{"Courier", "n022003l", n022003l_afm, n022003l_afm_len, n022003l_pfb, n022003l_pfb_len}, +{"Courier-Oblique", "n022023l", n022023l_afm, n022023l_afm_len, n022023l_pfb, n022023l_pfb_len}, +{"Courier-Bold", "n022004l", n022004l_afm, n022004l_afm_len, n022004l_pfb, n022004l_pfb_len}, +{"Courier-BoldOblique", "n022024l", n022024l_afm, n022024l_afm_len, n022024l_pfb, n022024l_pfb_len}, +{"Symbol", "s050000l", s050000l_afm, s050000l_afm_len, s050000l_pfb, s050000l_pfb_len}, +{"ZapfDingbats", "d050000l", d050000l_afm, d050000l_afm_len, d050000l_pfb, d050000l_pfb_len}}; + + +static int verbose = 0; static int dbgindent = 0; static void dbg(char*format, ...) { @@ -1423,35 +1430,57 @@ void GFXOutputDev::restoreState(GfxState *state) { statepos--; } +char* writeOutStdFont(fontentry* f) +{ + FILE*fi; + char namebuf1[512]; + char namebuf2[512]; + char* tmpFileName = mktmpname(namebuf1); + + sprintf(namebuf2, "%s.afm", tmpFileName); + fi = fopen(namebuf2, "wb"); + if(!fi) + return 0; + fwrite(f->afm, 1, f->afmlen, fi); + fclose(fi); + + sprintf(namebuf2, "%s.pfb", tmpFileName); + fi = fopen(namebuf2, "wb"); + if(!fi) + return 0; + fwrite(f->pfb, 1, f->pfblen, fi); + fclose(fi); + + return strdup(namebuf2); +} + char* GFXOutputDev::searchFont(char*name) { int i; char*filename=0; - int is_standard_font = 0; msg(" SearchFont(%s)", name); /* see if it is a pdf standard font */ - for(i=0;i Couldn't save default font- is the Temp Directory writable?"); + } else { + msg(" Storing standard PDF font %s at %s", name, pdf2t1map[i].fullfilename); + } + } + return strdup(pdf2t1map[i].fullfilename); } } - /* look in all font files */ + /* else look in all font files */ for(i=0;i Using %s for %s", fonts[i].filename, name); - } + if(strstr(fonts[i].filename, name)) { return strdup(fonts[i].filename); } } diff --git a/lib/pdf/Makefile.in b/lib/pdf/Makefile.in index 9db3112..91ed4d8 100644 --- a/lib/pdf/Makefile.in +++ b/lib/pdf/Makefile.in @@ -8,7 +8,7 @@ all: ../libpdf$(A) pdf2swf libpdf: ../libpdf$(A) -libpdf_objects = GFXOutputDev.$(O) InfoOutputDev.$(O) pdf.$(O) +libpdf_objects = GFXOutputDev.$(O) InfoOutputDev.$(O) pdf.$(O) fonts.$(O) 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) \ @@ -21,6 +21,8 @@ xpdf_objects = xpdf/GHash.$(O) xpdf/GList.$(O) xpdf/GString.$(O) xpdf/gmem.$(O) xpdf/GfxState.$(O) xpdf/Function.$(O) xpdf/Annot.$(O) xpdf/NameToCharCode.$(O) xpdf/UnicodeMap.$(O) \ xpdf/SecurityHandler.$(O) +fonts.$(O): fonts.c + $(C) -I ./ -I xpdf fonts.c -o $@ cmyk.$(O): cmyk.cc $(CC) -I ./ -I xpdf cmyk.cc -o $@ GFXOutputDev.$(O): GFXOutputDev.cc GFXOutputDev.h diff --git a/lib/pdf/fonts.c b/lib/pdf/fonts.c index b159df3..e61ee7c 100644 --- a/lib/pdf/fonts.c +++ b/lib/pdf/fonts.c @@ -1,3 +1,4 @@ +int d050000l_afm_len = 9381; char* d050000l_afm = "StartFontMetrics 3.0\nComment Copyright URW Software, Copyright 1997 by URW\nCom" "ment Creation Date: 10/19/1999\nComment See the file COPYING (GNU General Public" @@ -121,6 +122,7 @@ char* d050000l_afm = "75 691 ;\nC -1 ; WX 278 ; N .notdef ; B 0 0 0 0 ;\nEndCharMetrics\nEndFontMetric" "s\n" ; +int d050000l_pfb_len = 45955; char* d050000l_pfb = "\x80\x1\xb6\x12\x0\x0%!PS-AdobeFont-1.0: Dingbats 001.005\n%%CreationDate: Tue O" "ct 19 1999\n% Copyright URW Software, Copyright 1997 by URW\n% URW Software, Cop" @@ -1694,6 +1696,7 @@ char* d050000l_pfb = "00000000000000000000000000000000000000000000000\r0000000000000000000000000000000" "000000000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n019003l_afm_len = 31763; char* n019003l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -2110,6 +2113,7 @@ char* n019003l_afm = " s -12\nKPX y semicolon -27\nKPX zero four -2\nKPX zero one -46\nKPX zero seven " "-39\nEndKernPairs\nEndKernData\nEndFontMetrics\n" ; +int n019003l_pfb_len = 36026; char* n019003l_pfb = "\x80\x1]\x6\x0\x0%!PS-AdobeFont-1.0: NimbusSanL-Regu 1.05\n%%CreationDate: Wed D" "ec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development\n" @@ -3387,6 +3391,7 @@ char* n019003l_pfb = "00000000000000000000000000000000000000000000000000\r0000000000000000000000000000" "000000000000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n019004l_afm_len = 31595; char* n019004l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -3801,6 +3806,7 @@ char* n019004l_afm = "X y semicolon -33\nKPX zero four 5\nKPX zero one -19\nKPX zero seven -10\nEndKer" "nPairs\nEndKernData\nEndFontMetrics\n" ; +int n019004l_pfb_len = 35941; char* n019004l_pfb = "\x80\x1W\x6\x0\x0%!PS-AdobeFont-1.0: NimbusSanL-Bold 1.05\n%%CreationDate: Wed D" "ec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development\n" @@ -5077,6 +5083,7 @@ char* n019004l_pfb = "00000000000000000000000000000000000000000000000000000000\r0000000000000000000000" "000000000000000000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n019023l_afm_len = 32114; char* n019023l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -5497,6 +5504,7 @@ char* n019023l_afm = "30\nKPX y period -80\nKPX y s -23\nKPX y semicolon -40\nKPX zero four -11\nKPX z" "ero one -56\nKPX zero seven -50\nEndKernPairs\nEndKernData\nEndFontMetrics\n" ; +int n019023l_pfb_len = 38314; char* n019023l_pfb = "\x80\x1n\x6\x0\x0%!PS-AdobeFont-1.0: NimbusSanL-ReguItal 1.05\n%%CreationDate: W" "ed Dec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Developme" @@ -6850,6 +6858,7 @@ char* n019023l_pfb = "0000000000000000000000000000000000000000000000000000000\r00000000000000000000000" "00000000000000000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n019024l_afm_len = 31901; char* n019024l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -7268,6 +7277,7 @@ char* n019024l_afm = "-43\nKPX zero four -3\nKPX zero one -29\nKPX zero seven -21\nEndKernPairs\nEndKe" "rnData\nEndFontMetrics\n" ; +int n019024l_pfb_len = 39013; char* n019024l_pfb = "\x80\x1h\x6\x0\x0%!PS-AdobeFont-1.0: NimbusSanL-BoldItal 1.05\n%%CreationDate: W" "ed Dec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Developme" @@ -8652,6 +8662,7 @@ char* n019024l_pfb = "0000000000000000000000000000000000000000\r00000000000000000000000000000000000000" "00000000000000000000000000\rcleartomark\n\x80\x3" ; +int n021003l_afm_len = 31943; char* n021003l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -9070,6 +9081,7 @@ char* n021003l_afm = "X y period -73\nKPX y s -26\nKPX y semicolon -23\nKPX zero four 12\nKPX zero one" " -55\nKPX zero seven -5\nEndKernPairs\nEndKernData\nEndFontMetrics\n" ; +int n021003l_pfb_len = 46026; char* n021003l_pfb = "\x80\x1m\x6\x0\x0%!PS-AdobeFont-1.0: NimbusRomNo9L-Regu 1.05\n%%CreationDate: We" "d Dec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Developmen" @@ -10718,6 +10730,7 @@ char* n021003l_pfb = "0000000000000000000000000000000000000000000000000000\r00000000000000000000000000" "00000000000000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n021004l_afm_len = 31889; char* n021004l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -11136,6 +11149,7 @@ char* n021004l_afm = "KPX zero four 11\nKPX zero one -31\nKPX zero seven 7\nEndKernPairs\nEndKernData\n" "EndFontMetrics\n" ; +int n021004l_pfb_len = 44729; char* n021004l_pfb = "\x80\x1i\x6\x0\x0%!PS-AdobeFont-1.0: NimbusRomNo9L-Medi 1.05\n%%CreationDate: We" "d Dec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Developmen" @@ -12732,6 +12746,7 @@ char* n021004l_pfb = "00000000000000000000000000000000000000000000000\r0000000000000000000000000000000" "000000000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n021023l_afm_len = 31920; char* n021023l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -13150,6 +13165,7 @@ char* n021023l_afm = " y s -19\nKPX y semicolon -45\nKPX zero four 14\nKPX zero one -50\nKPX zero seve" "n -3\nEndKernPairs\nEndKernData\nEndFontMetrics\n" ; +int n021023l_pfb_len = 45458; char* n021023l_pfb = "\x80\x1~\x6\x0\x0%!PS-AdobeFont-1.0: NimbusRomNo9L-ReguItal 1.05\n%%CreationDate" ": Wed Dec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Develo" @@ -14775,6 +14791,7 @@ char* n021023l_pfb = "000000000000000000000000000000000000000000000000000000\r000000000000000000000000" "0000000000000000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n021024l_afm_len = 32028; char* n021024l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -15194,6 +15211,7 @@ char* n021024l_afm = "7\nKPX y period -26\nKPX y s -13\nKPX y semicolon -44\nKPX zero four -1\nKPX zer" "o one -50\nKPX zero seven -12\nEndKernPairs\nEndKernData\nEndFontMetrics\n" ; +int n021024l_pfb_len = 44656; char* n021024l_pfb = "\x80\x1y\x6\x0\x0%!PS-AdobeFont-1.0: NimbusRomNo9L-MediItal 1.05\n%%CreationDate" ": Wed Dec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Develo" @@ -16784,6 +16802,7 @@ char* n021024l_pfb = "000000000000000000000000000000000000000000000000000000000\r000000000000000000000" "0000000000000000000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n022003l_afm_len = 31926; char* n022003l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -17202,6 +17221,7 @@ char* n022003l_afm = "X y s -30\nKPX y semicolon -72\nKPX zero four -58\nKPX zero one -81\nKPX zero se" "ven -73\nEndKernPairs\nEndKernData\nEndFontMetrics\n" ; +int n022003l_pfb_len = 45758; char* n022003l_pfb = "\x80\x1[\x6\x0\x0%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05\n%%CreationDate: Wed D" "ec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development\n" @@ -18836,6 +18856,7 @@ char* n022003l_pfb = "00000000000000000000000000000000000000000000000000000000\r0000000000000000000000" "000000000000000000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n022004l_afm_len = 31779; char* n022004l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -19252,6 +19273,7 @@ char* n022004l_afm = "eriod -155\nKPX y s -21\nKPX y semicolon -79\nKPX zero four -59\nKPX zero one -7" "6\nKPX zero seven -68\nEndKernPairs\nEndKernData\nEndFontMetrics\n" ; +int n022004l_pfb_len = 50493; char* n022004l_pfb = "\x80\x1U\x6\x0\x0%!PS-AdobeFont-1.0: NimbusMonL-Bold 1.05\n%%CreationDate: Wed D" "ec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development\n" @@ -21053,6 +21075,7 @@ char* n022004l_pfb = "00000000000000000000000000000000000000000000000\r0000000000000000000000000000000" "000000000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n022023l_afm_len = 32136; char* n022023l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -21474,6 +21497,7 @@ char* n022023l_afm = "KPX zero four -64\nKPX zero one -91\nKPX zero seven -82\nEndKernPairs\nEndKernDa" "ta\nEndFontMetrics\n" ; +int n022023l_pfb_len = 44404; char* n022023l_pfb = "\x80\x1m\x6\x0\x0%!PS-AdobeFont-1.0: NimbusMonL-ReguObli 1.05\n%%CreationDate: W" "ed Dec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Developme" @@ -23062,6 +23086,7 @@ char* n022023l_pfb = "000000000000000000000000000000000000000000\r000000000000000000000000000000000000" "0000000000000000000000000000\rcleartomark\n\x80\x3" ; +int n022024l_afm_len = 31961; char* n022024l_afm = "StartFontMetrics 3.0\nComment Copyright (URW)++,Copyright 1999 by (URW)++ Design" " & Development\nComment Creation Date: 12/22/1999\nComment See the file COPYING " @@ -23481,6 +23506,7 @@ char* n022024l_afm = "-65\nKPX zero one -81\nKPX zero seven -79\nEndKernPairs\nEndKernData\nEndFontMet" "rics\n" ; +int n022024l_pfb_len = 51527; char* n022024l_pfb = "\x80\x1g\x6\x0\x0%!PS-AdobeFont-1.0: NimbusMonL-BoldObli 1.05\n%%CreationDate: W" "ed Dec 22 1999\n% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Developme" @@ -25326,6 +25352,7 @@ char* n022024l_pfb = "00000000000000000000000000000000000000000\r0000000000000000000000000000000000000" "000000000000000000000000000\rcleartomark\n\x80\x3" ; +int s050000l_afm_len = 9686; char* s050000l_afm = "StartFontMetrics 3.0\nComment Copyright URW Software, Copyright 1997 by URW\nCom" "ment Creation Date: 10/21/1999\nComment See the file COPYING (GNU General Public" @@ -25452,6 +25479,7 @@ char* s050000l_afm = " 935 ;\nC 254 ; WX 494 ; N bracerightbt ; B 17 -70 255 926 ;\nC -1 ; WX 250 ; N " ".notdef ; B 0 0 0 0 ;\nEndCharMetrics\nEndFontMetrics\n" ; +int s050000l_pfb_len = 33709; char* s050000l_pfb = "\x80\x1\xfb\x15\x0\x0%!PS-AdobeFont-1.0: StandardSymL 001.005\n%%CreationDate: T" "hu Oct 21 1999\n% Copyright URW Software, Copyright 1997 by URW\n% URW Software," diff --git a/lib/pdf/fonts.h b/lib/pdf/fonts.h index 3e08c80..79a897f 100644 --- a/lib/pdf/fonts.h +++ b/lib/pdf/fonts.h @@ -6,33 +6,61 @@ extern "C" { #endif extern char* d050000l_afm; +extern int d050000l_afm_len; extern char* d050000l_pfb; +extern int d050000l_pfb_len; extern char* n019003l_afm; +extern int n019003l_afm_len; extern char* n019003l_pfb; +extern int n019003l_pfb_len; extern char* n019004l_afm; +extern int n019004l_afm_len; extern char* n019004l_pfb; +extern int n019004l_pfb_len; extern char* n019023l_afm; +extern int n019023l_afm_len; extern char* n019023l_pfb; +extern int n019023l_pfb_len; extern char* n019024l_afm; +extern int n019024l_afm_len; extern char* n019024l_pfb; +extern int n019024l_pfb_len; extern char* n021003l_afm; +extern int n021003l_afm_len; extern char* n021003l_pfb; +extern int n021003l_pfb_len; extern char* n021004l_afm; +extern int n021004l_afm_len; extern char* n021004l_pfb; +extern int n021004l_pfb_len; extern char* n021023l_afm; +extern int n021023l_afm_len; extern char* n021023l_pfb; +extern int n021023l_pfb_len; extern char* n021024l_afm; +extern int n021024l_afm_len; extern char* n021024l_pfb; +extern int n021024l_pfb_len; extern char* n022003l_afm; +extern int n022003l_afm_len; extern char* n022003l_pfb; +extern int n022003l_pfb_len; extern char* n022004l_afm; +extern int n022004l_afm_len; extern char* n022004l_pfb; +extern int n022004l_pfb_len; extern char* n022023l_afm; +extern int n022023l_afm_len; extern char* n022023l_pfb; +extern int n022023l_pfb_len; extern char* n022024l_afm; +extern int n022024l_afm_len; extern char* n022024l_pfb; +extern int n022024l_pfb_len; extern char* s050000l_afm; +extern int s050000l_afm_len; extern char* s050000l_pfb; +extern int s050000l_pfb_len; #ifdef __cplusplus } -- 1.7.10.4