pdf2json 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +9 -0
- data/bin/.gitkeep +0 -0
- data/ext/extconf.rb +30 -0
- data/lib/pdf2json.rb +8 -0
- data/pdf2json-0.52-source/AUTHORS +24 -0
- data/pdf2json-0.52-source/CHANGES +11 -0
- data/pdf2json-0.52-source/Makefile +84 -0
- data/pdf2json-0.52-source/Makefile.in +84 -0
- data/pdf2json-0.52-source/aclocal.m4 +274 -0
- data/pdf2json-0.52-source/aconf-win32.h +86 -0
- data/pdf2json-0.52-source/aconf.h +42 -0
- data/pdf2json-0.52-source/aconf.h.in +41 -0
- data/pdf2json-0.52-source/autom4te.cache/output.0 +6908 -0
- data/pdf2json-0.52-source/autom4te.cache/requests +76 -0
- data/pdf2json-0.52-source/autom4te.cache/traces.0 +466 -0
- data/pdf2json-0.52-source/config.log +1259 -0
- data/pdf2json-0.52-source/config.status +1050 -0
- data/pdf2json-0.52-source/configure +6908 -0
- data/pdf2json-0.52-source/configure.ac +93 -0
- data/pdf2json-0.52-source/doc/pdffonts.1 +130 -0
- data/pdf2json-0.52-source/doc/pdffonts.cat +107 -0
- data/pdf2json-0.52-source/doc/pdffonts.hlp +117 -0
- data/pdf2json-0.52-source/doc/pdfimages.1 +102 -0
- data/pdf2json-0.52-source/doc/pdfimages.cat +92 -0
- data/pdf2json-0.52-source/doc/pdfimages.hlp +101 -0
- data/pdf2json-0.52-source/doc/pdfinfo.1 +158 -0
- data/pdf2json-0.52-source/doc/pdfinfo.cat +119 -0
- data/pdf2json-0.52-source/doc/pdfinfo.hlp +129 -0
- data/pdf2json-0.52-source/doc/pdftoppm.1 +115 -0
- data/pdf2json-0.52-source/doc/pdftoppm.cat +105 -0
- data/pdf2json-0.52-source/doc/pdftoppm.hlp +114 -0
- data/pdf2json-0.52-source/doc/pdftops.1 +229 -0
- data/pdf2json-0.52-source/doc/pdftops.cat +221 -0
- data/pdf2json-0.52-source/doc/pdftops.hlp +231 -0
- data/pdf2json-0.52-source/doc/pdftotext.1 +137 -0
- data/pdf2json-0.52-source/doc/pdftotext.cat +120 -0
- data/pdf2json-0.52-source/doc/pdftotext.hlp +133 -0
- data/pdf2json-0.52-source/doc/sample-xpdfrc +91 -0
- data/pdf2json-0.52-source/doc/xpdf.1 +513 -0
- data/pdf2json-0.52-source/doc/xpdf.cat +476 -0
- data/pdf2json-0.52-source/doc/xpdf.hlp +489 -0
- data/pdf2json-0.52-source/doc/xpdfrc.5 +480 -0
- data/pdf2json-0.52-source/doc/xpdfrc.cat +474 -0
- data/pdf2json-0.52-source/doc/xpdfrc.hlp +479 -0
- data/pdf2json-0.52-source/fofi/.DS_Store +0 -0
- data/pdf2json-0.52-source/fofi/FoFiBase.cc +156 -0
- data/pdf2json-0.52-source/fofi/FoFiBase.h +57 -0
- data/pdf2json-0.52-source/fofi/FoFiBase.o +0 -0
- data/pdf2json-0.52-source/fofi/FoFiEncodings.cc +994 -0
- data/pdf2json-0.52-source/fofi/FoFiEncodings.h +36 -0
- data/pdf2json-0.52-source/fofi/FoFiEncodings.o +0 -0
- data/pdf2json-0.52-source/fofi/FoFiTrueType.cc +2027 -0
- data/pdf2json-0.52-source/fofi/FoFiTrueType.h +174 -0
- data/pdf2json-0.52-source/fofi/FoFiTrueType.o +0 -0
- data/pdf2json-0.52-source/fofi/FoFiType1.cc +252 -0
- data/pdf2json-0.52-source/fofi/FoFiType1.h +59 -0
- data/pdf2json-0.52-source/fofi/FoFiType1.o +0 -0
- data/pdf2json-0.52-source/fofi/FoFiType1C.cc +2603 -0
- data/pdf2json-0.52-source/fofi/FoFiType1C.h +233 -0
- data/pdf2json-0.52-source/fofi/FoFiType1C.o +0 -0
- data/pdf2json-0.52-source/fofi/Makefile +70 -0
- data/pdf2json-0.52-source/fofi/Makefile.dep +0 -0
- data/pdf2json-0.52-source/fofi/Makefile.in +70 -0
- data/pdf2json-0.52-source/fofi/libfofi.a +0 -0
- data/pdf2json-0.52-source/fofi/vms_make.com +0 -0
- data/pdf2json-0.52-source/freetype.win32/.DS_Store +0 -0
- data/pdf2json-0.52-source/freetype.win32/include/.DS_Store +0 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/config/ftconfig.h +528 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/config/ftheader.h +780 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/config/ftmodule.h +32 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/config/ftoption.h +733 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/config/ftstdlib.h +173 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/freetype.h +3919 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftadvanc.h +179 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftbbox.h +94 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftbdf.h +209 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftbitmap.h +227 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftcache.h +1128 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftchapters.h +103 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftcid.h +166 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/fterrdef.h +244 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/fterrors.h +206 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftgasp.h +120 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftglyph.h +613 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftgxval.h +358 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftgzip.h +102 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftimage.h +1313 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftincrem.h +353 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftlcdfil.h +213 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftlist.h +277 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftlzw.h +99 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftmac.h +274 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftmm.h +378 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftmodapi.h +483 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftmoderr.h +155 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftotval.h +203 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftoutln.h +537 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftpfr.h +172 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftrender.h +230 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftsizes.h +159 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftsnames.h +200 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftstroke.h +716 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftsynth.h +80 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftsystem.h +347 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/fttrigon.h +350 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/fttypes.h +588 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftwinfnt.h +274 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ftxf86.h +83 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/autohint.h +231 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftcalc.h +179 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftdebug.h +250 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftdriver.h +422 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftgloadr.h +168 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftmemory.h +380 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftobjs.h +1428 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftpic.h +67 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftrfork.h +196 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftserv.h +620 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftstream.h +539 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/fttrace.h +139 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftvalid.h +150 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/internal.h +51 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/pcftypes.h +56 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/psaux.h +873 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/pshints.h +712 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svbdf.h +77 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svcid.h +83 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svgldict.h +82 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svgxval.h +72 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svkern.h +51 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svmm.h +104 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svotval.h +55 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svpfr.h +66 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svpostnm.h +79 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svpscmap.h +164 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svpsinfo.h +92 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svsfnt.h +102 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svttcmap.h +106 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svtteng.h +53 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svttglyf.h +67 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svwinfnt.h +50 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svxf86nm.h +55 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/sfnt.h +897 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/t1types.h +270 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/tttypes.h +1543 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/t1tables.h +504 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ttnameid.h +1247 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/tttables.h +759 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/tttags.h +107 -0
- data/pdf2json-0.52-source/freetype.win32/include/freetype/ttunpat.h +59 -0
- data/pdf2json-0.52-source/freetype.win32/include/ft2build.h +39 -0
- data/pdf2json-0.52-source/freetype.win32/lib/freetype_a.lib +0 -0
- data/pdf2json-0.52-source/goo/.DS_Store +0 -0
- data/pdf2json-0.52-source/goo/FixedPoint.cc +118 -0
- data/pdf2json-0.52-source/goo/FixedPoint.h +155 -0
- data/pdf2json-0.52-source/goo/FixedPoint.o +0 -0
- data/pdf2json-0.52-source/goo/GHash.cc +380 -0
- data/pdf2json-0.52-source/goo/GHash.h +78 -0
- data/pdf2json-0.52-source/goo/GHash.o +0 -0
- data/pdf2json-0.52-source/goo/GList.cc +97 -0
- data/pdf2json-0.52-source/goo/GList.h +96 -0
- data/pdf2json-0.52-source/goo/GList.o +0 -0
- data/pdf2json-0.52-source/goo/GMutex.h +49 -0
- data/pdf2json-0.52-source/goo/GString.cc +724 -0
- data/pdf2json-0.52-source/goo/GString.cc.fixed +718 -0
- data/pdf2json-0.52-source/goo/GString.h +136 -0
- data/pdf2json-0.52-source/goo/GString.o +0 -0
- data/pdf2json-0.52-source/goo/ImgWriter.o +0 -0
- data/pdf2json-0.52-source/goo/JpegWriter.o +0 -0
- data/pdf2json-0.52-source/goo/Makefile +72 -0
- data/pdf2json-0.52-source/goo/Makefile.dep +0 -0
- data/pdf2json-0.52-source/goo/Makefile.in +72 -0
- data/pdf2json-0.52-source/goo/PNGWriter.o +0 -0
- data/pdf2json-0.52-source/goo/gfile.cc +731 -0
- data/pdf2json-0.52-source/goo/gfile.h +138 -0
- data/pdf2json-0.52-source/goo/gfile.o +0 -0
- data/pdf2json-0.52-source/goo/gmem.cc +264 -0
- data/pdf2json-0.52-source/goo/gmem.h +79 -0
- data/pdf2json-0.52-source/goo/gmem.o +0 -0
- data/pdf2json-0.52-source/goo/gmempp.cc +32 -0
- data/pdf2json-0.52-source/goo/gmempp.o +0 -0
- data/pdf2json-0.52-source/goo/gtypes.h +29 -0
- data/pdf2json-0.52-source/goo/libGoo.a +0 -0
- data/pdf2json-0.52-source/goo/parseargs.c +190 -0
- data/pdf2json-0.52-source/goo/parseargs.h +71 -0
- data/pdf2json-0.52-source/goo/parseargs.o +0 -0
- data/pdf2json-0.52-source/goo/vms_directory.c +214 -0
- data/pdf2json-0.52-source/goo/vms_dirent.h +67 -0
- data/pdf2json-0.52-source/goo/vms_make.com +82 -0
- data/pdf2json-0.52-source/goo/vms_sys_dirent.h +54 -0
- data/pdf2json-0.52-source/goo/vms_unix_time.h +102 -0
- data/pdf2json-0.52-source/goo/vms_unix_times.c +42 -0
- data/pdf2json-0.52-source/goo/vms_unlink.c +22 -0
- data/pdf2json-0.52-source/ms_make.bat +199 -0
- data/pdf2json-0.52-source/splash/.DS_Store +0 -0
- data/pdf2json-0.52-source/splash/Makefile +103 -0
- data/pdf2json-0.52-source/splash/Makefile.dep +0 -0
- data/pdf2json-0.52-source/splash/Makefile.in +103 -0
- data/pdf2json-0.52-source/splash/Splash.cc +3310 -0
- data/pdf2json-0.52-source/splash/Splash.h +293 -0
- data/pdf2json-0.52-source/splash/Splash.o +0 -0
- data/pdf2json-0.52-source/splash/SplashBitmap.cc +188 -0
- data/pdf2json-0.52-source/splash/SplashBitmap.h +64 -0
- data/pdf2json-0.52-source/splash/SplashBitmap.o +0 -0
- data/pdf2json-0.52-source/splash/SplashClip.cc +382 -0
- data/pdf2json-0.52-source/splash/SplashClip.h +107 -0
- data/pdf2json-0.52-source/splash/SplashClip.o +0 -0
- data/pdf2json-0.52-source/splash/SplashErrorCodes.h +32 -0
- data/pdf2json-0.52-source/splash/SplashFTFont.cc +357 -0
- data/pdf2json-0.52-source/splash/SplashFTFont.h +58 -0
- data/pdf2json-0.52-source/splash/SplashFTFont.o +0 -0
- data/pdf2json-0.52-source/splash/SplashFTFontEngine.cc +179 -0
- data/pdf2json-0.52-source/splash/SplashFTFontEngine.h +65 -0
- data/pdf2json-0.52-source/splash/SplashFTFontEngine.o +0 -0
- data/pdf2json-0.52-source/splash/SplashFTFontFile.cc +114 -0
- data/pdf2json-0.52-source/splash/SplashFTFontFile.h +73 -0
- data/pdf2json-0.52-source/splash/SplashFTFontFile.o +0 -0
- data/pdf2json-0.52-source/splash/SplashFont.cc +176 -0
- data/pdf2json-0.52-source/splash/SplashFont.h +104 -0
- data/pdf2json-0.52-source/splash/SplashFont.o +0 -0
- data/pdf2json-0.52-source/splash/SplashFontEngine.cc +317 -0
- data/pdf2json-0.52-source/splash/SplashFontEngine.h +91 -0
- data/pdf2json-0.52-source/splash/SplashFontEngine.o +0 -0
- data/pdf2json-0.52-source/splash/SplashFontFile.cc +55 -0
- data/pdf2json-0.52-source/splash/SplashFontFile.h +60 -0
- data/pdf2json-0.52-source/splash/SplashFontFile.o +0 -0
- data/pdf2json-0.52-source/splash/SplashFontFileID.cc +23 -0
- data/pdf2json-0.52-source/splash/SplashFontFileID.h +30 -0
- data/pdf2json-0.52-source/splash/SplashFontFileID.o +0 -0
- data/pdf2json-0.52-source/splash/SplashGlyphBitmap.h +26 -0
- data/pdf2json-0.52-source/splash/SplashMath.h +89 -0
- data/pdf2json-0.52-source/splash/SplashPath.cc +184 -0
- data/pdf2json-0.52-source/splash/SplashPath.h +121 -0
- data/pdf2json-0.52-source/splash/SplashPath.o +0 -0
- data/pdf2json-0.52-source/splash/SplashPattern.cc +40 -0
- data/pdf2json-0.52-source/splash/SplashPattern.h +65 -0
- data/pdf2json-0.52-source/splash/SplashPattern.o +0 -0
- data/pdf2json-0.52-source/splash/SplashScreen.cc +383 -0
- data/pdf2json-0.52-source/splash/SplashScreen.h +56 -0
- data/pdf2json-0.52-source/splash/SplashScreen.o +0 -0
- data/pdf2json-0.52-source/splash/SplashState.cc +165 -0
- data/pdf2json-0.52-source/splash/SplashState.h +103 -0
- data/pdf2json-0.52-source/splash/SplashState.o +0 -0
- data/pdf2json-0.52-source/splash/SplashT1Font.cc +287 -0
- data/pdf2json-0.52-source/splash/SplashT1Font.h +57 -0
- data/pdf2json-0.52-source/splash/SplashT1Font.o +0 -0
- data/pdf2json-0.52-source/splash/SplashT1FontEngine.cc +124 -0
- data/pdf2json-0.52-source/splash/SplashT1FontEngine.h +53 -0
- data/pdf2json-0.52-source/splash/SplashT1FontEngine.o +0 -0
- data/pdf2json-0.52-source/splash/SplashT1FontFile.cc +97 -0
- data/pdf2json-0.52-source/splash/SplashT1FontFile.h +58 -0
- data/pdf2json-0.52-source/splash/SplashT1FontFile.o +0 -0
- data/pdf2json-0.52-source/splash/SplashTypes.h +132 -0
- data/pdf2json-0.52-source/splash/SplashXPath.cc +438 -0
- data/pdf2json-0.52-source/splash/SplashXPath.h +100 -0
- data/pdf2json-0.52-source/splash/SplashXPath.o +0 -0
- data/pdf2json-0.52-source/splash/SplashXPathScanner.cc +428 -0
- data/pdf2json-0.52-source/splash/SplashXPathScanner.h +87 -0
- data/pdf2json-0.52-source/splash/SplashXPathScanner.o +0 -0
- data/pdf2json-0.52-source/splash/libsplash.a +0 -0
- data/pdf2json-0.52-source/splash/vms_make.com +0 -0
- data/pdf2json-0.52-source/src/.DS_Store +0 -0
- data/pdf2json-0.52-source/src/GVector.h +101 -0
- data/pdf2json-0.52-source/src/ImgOutputDev.cc +1243 -0
- data/pdf2json-0.52-source/src/ImgOutputDev.h +307 -0
- data/pdf2json-0.52-source/src/ImgOutputDev.o +0 -0
- data/pdf2json-0.52-source/src/Makefile +68 -0
- data/pdf2json-0.52-source/src/Makefile.in +68 -0
- data/pdf2json-0.52-source/src/XmlFonts.cc +367 -0
- data/pdf2json-0.52-source/src/XmlFonts.h +91 -0
- data/pdf2json-0.52-source/src/XmlFonts.o +0 -0
- data/pdf2json-0.52-source/src/XmlLinks.cc +101 -0
- data/pdf2json-0.52-source/src/XmlLinks.h +54 -0
- data/pdf2json-0.52-source/src/XmlLinks.o +0 -0
- data/pdf2json-0.52-source/src/pdf2json +0 -0
- data/pdf2json-0.52-source/src/pdf2json.cc +343 -0
- data/pdf2json-0.52-source/src/pdf2json.o +0 -0
- data/pdf2json-0.52-source/src/pdf2xml.dtd +22 -0
- data/pdf2json-0.52-source/src/pdf2xmljson.dtd +9 -0
- data/pdf2json-0.52-source/xpdf/.DS_Store +0 -0
- data/pdf2json-0.52-source/xpdf/Annot.cc +1556 -0
- data/pdf2json-0.52-source/xpdf/Annot.h +142 -0
- data/pdf2json-0.52-source/xpdf/Annot.o +0 -0
- data/pdf2json-0.52-source/xpdf/Array.cc +73 -0
- data/pdf2json-0.52-source/xpdf/Array.h +58 -0
- data/pdf2json-0.52-source/xpdf/Array.o +0 -0
- data/pdf2json-0.52-source/xpdf/BuiltinFont.cc +65 -0
- data/pdf2json-0.52-source/xpdf/BuiltinFont.h +57 -0
- data/pdf2json-0.52-source/xpdf/BuiltinFont.o +0 -0
- data/pdf2json-0.52-source/xpdf/BuiltinFontTables.cc +4284 -0
- data/pdf2json-0.52-source/xpdf/BuiltinFontTables.h +23 -0
- data/pdf2json-0.52-source/xpdf/BuiltinFontTables.o +0 -0
- data/pdf2json-0.52-source/xpdf/CMap.cc +408 -0
- data/pdf2json-0.52-source/xpdf/CMap.h +102 -0
- data/pdf2json-0.52-source/xpdf/CMap.o +0 -0
- data/pdf2json-0.52-source/xpdf/Catalog.cc +374 -0
- data/pdf2json-0.52-source/xpdf/Catalog.h +97 -0
- data/pdf2json-0.52-source/xpdf/Catalog.o +0 -0
- data/pdf2json-0.52-source/xpdf/CharCodeToUnicode.cc +540 -0
- data/pdf2json-0.52-source/xpdf/CharCodeToUnicode.h +117 -0
- data/pdf2json-0.52-source/xpdf/CharCodeToUnicode.o +0 -0
- data/pdf2json-0.52-source/xpdf/CharTypes.h +24 -0
- data/pdf2json-0.52-source/xpdf/CompactFontTables.h +464 -0
- data/pdf2json-0.52-source/xpdf/CoreOutputDev.cc +61 -0
- data/pdf2json-0.52-source/xpdf/CoreOutputDev.h +61 -0
- data/pdf2json-0.52-source/xpdf/Decrypt.cc +776 -0
- data/pdf2json-0.52-source/xpdf/Decrypt.h +95 -0
- data/pdf2json-0.52-source/xpdf/Decrypt.o +0 -0
- data/pdf2json-0.52-source/xpdf/Dict.cc +95 -0
- data/pdf2json-0.52-source/xpdf/Dict.h +77 -0
- data/pdf2json-0.52-source/xpdf/Dict.o +0 -0
- data/pdf2json-0.52-source/xpdf/Error.cc +38 -0
- data/pdf2json-0.52-source/xpdf/Error.h +23 -0
- data/pdf2json-0.52-source/xpdf/Error.o +0 -0
- data/pdf2json-0.52-source/xpdf/ErrorCodes.h +36 -0
- data/pdf2json-0.52-source/xpdf/FontEncodingTables.cc +1824 -0
- data/pdf2json-0.52-source/xpdf/FontEncodingTables.h +20 -0
- data/pdf2json-0.52-source/xpdf/FontEncodingTables.o +0 -0
- data/pdf2json-0.52-source/xpdf/Function.cc +1573 -0
- data/pdf2json-0.52-source/xpdf/Function.h +229 -0
- data/pdf2json-0.52-source/xpdf/Function.o +0 -0
- data/pdf2json-0.52-source/xpdf/Gfx.cc +4187 -0
- data/pdf2json-0.52-source/xpdf/Gfx.h +312 -0
- data/pdf2json-0.52-source/xpdf/Gfx.o +0 -0
- data/pdf2json-0.52-source/xpdf/GfxFont.cc +1568 -0
- data/pdf2json-0.52-source/xpdf/GfxFont.h +320 -0
- data/pdf2json-0.52-source/xpdf/GfxFont.o +0 -0
- data/pdf2json-0.52-source/xpdf/GfxState.cc +4137 -0
- data/pdf2json-0.52-source/xpdf/GfxState.h +1244 -0
- data/pdf2json-0.52-source/xpdf/GfxState.o +0 -0
- data/pdf2json-0.52-source/xpdf/GlobalParams.cc +2924 -0
- data/pdf2json-0.52-source/xpdf/GlobalParams.cc.old +2908 -0
- data/pdf2json-0.52-source/xpdf/GlobalParams.h +466 -0
- data/pdf2json-0.52-source/xpdf/GlobalParams.h.old +463 -0
- data/pdf2json-0.52-source/xpdf/GlobalParams.o +0 -0
- data/pdf2json-0.52-source/xpdf/ImageOutputDev.cc +195 -0
- data/pdf2json-0.52-source/xpdf/ImageOutputDev.h +76 -0
- data/pdf2json-0.52-source/xpdf/ImageOutputDev.o +0 -0
- data/pdf2json-0.52-source/xpdf/JArithmeticDecoder.cc +322 -0
- data/pdf2json-0.52-source/xpdf/JArithmeticDecoder.h +109 -0
- data/pdf2json-0.52-source/xpdf/JArithmeticDecoder.o +0 -0
- data/pdf2json-0.52-source/xpdf/JBIG2Stream.cc +3413 -0
- data/pdf2json-0.52-source/xpdf/JBIG2Stream.h +145 -0
- data/pdf2json-0.52-source/xpdf/JBIG2Stream.o +0 -0
- data/pdf2json-0.52-source/xpdf/JPXStream.cc +3144 -0
- data/pdf2json-0.52-source/xpdf/JPXStream.h +351 -0
- data/pdf2json-0.52-source/xpdf/JPXStream.o +0 -0
- data/pdf2json-0.52-source/xpdf/Lexer.cc +485 -0
- data/pdf2json-0.52-source/xpdf/Lexer.h +80 -0
- data/pdf2json-0.52-source/xpdf/Lexer.o +0 -0
- data/pdf2json-0.52-source/xpdf/Link.cc +806 -0
- data/pdf2json-0.52-source/xpdf/Link.cc.old +784 -0
- data/pdf2json-0.52-source/xpdf/Link.h +415 -0
- data/pdf2json-0.52-source/xpdf/Link.h.old +369 -0
- data/pdf2json-0.52-source/xpdf/Link.o +0 -0
- data/pdf2json-0.52-source/xpdf/Makefile +232 -0
- data/pdf2json-0.52-source/xpdf/Makefile.dep +0 -0
- data/pdf2json-0.52-source/xpdf/Makefile.in +232 -0
- data/pdf2json-0.52-source/xpdf/NameToCharCode.cc +116 -0
- data/pdf2json-0.52-source/xpdf/NameToCharCode.h +42 -0
- data/pdf2json-0.52-source/xpdf/NameToCharCode.o +0 -0
- data/pdf2json-0.52-source/xpdf/NameToUnicodeTable.h +1097 -0
- data/pdf2json-0.52-source/xpdf/Object.cc +231 -0
- data/pdf2json-0.52-source/xpdf/Object.h +303 -0
- data/pdf2json-0.52-source/xpdf/Object.o +0 -0
- data/pdf2json-0.52-source/xpdf/Outline.cc +151 -0
- data/pdf2json-0.52-source/xpdf/Outline.h +76 -0
- data/pdf2json-0.52-source/xpdf/Outline.o +0 -0
- data/pdf2json-0.52-source/xpdf/OutputDev.cc +131 -0
- data/pdf2json-0.52-source/xpdf/OutputDev.h +253 -0
- data/pdf2json-0.52-source/xpdf/OutputDev.o +0 -0
- data/pdf2json-0.52-source/xpdf/PDFCore.cc +2044 -0
- data/pdf2json-0.52-source/xpdf/PDFCore.h +321 -0
- data/pdf2json-0.52-source/xpdf/PDFDoc.cc +404 -0
- data/pdf2json-0.52-source/xpdf/PDFDoc.h +183 -0
- data/pdf2json-0.52-source/xpdf/PDFDoc.o +0 -0
- data/pdf2json-0.52-source/xpdf/PDFDocEncoding.cc +44 -0
- data/pdf2json-0.52-source/xpdf/PDFDocEncoding.h +16 -0
- data/pdf2json-0.52-source/xpdf/PDFDocEncoding.o +0 -0
- data/pdf2json-0.52-source/xpdf/PSOutputDev.cc +6224 -0
- data/pdf2json-0.52-source/xpdf/PSOutputDev.h +395 -0
- data/pdf2json-0.52-source/xpdf/PSOutputDev.o +0 -0
- data/pdf2json-0.52-source/xpdf/PSTokenizer.cc +135 -0
- data/pdf2json-0.52-source/xpdf/PSTokenizer.h +41 -0
- data/pdf2json-0.52-source/xpdf/PSTokenizer.o +0 -0
- data/pdf2json-0.52-source/xpdf/Page.cc +454 -0
- data/pdf2json-0.52-source/xpdf/Page.h +187 -0
- data/pdf2json-0.52-source/xpdf/Page.o +0 -0
- data/pdf2json-0.52-source/xpdf/Parser.cc +227 -0
- data/pdf2json-0.52-source/xpdf/Parser.h +59 -0
- data/pdf2json-0.52-source/xpdf/Parser.o +0 -0
- data/pdf2json-0.52-source/xpdf/PreScanOutputDev.cc +257 -0
- data/pdf2json-0.52-source/xpdf/PreScanOutputDev.h +130 -0
- data/pdf2json-0.52-source/xpdf/PreScanOutputDev.o +0 -0
- data/pdf2json-0.52-source/xpdf/SecurityHandler.cc +390 -0
- data/pdf2json-0.52-source/xpdf/SecurityHandler.h +160 -0
- data/pdf2json-0.52-source/xpdf/SecurityHandler.o +0 -0
- data/pdf2json-0.52-source/xpdf/SplashOutputDev.cc +2845 -0
- data/pdf2json-0.52-source/xpdf/SplashOutputDev.h +247 -0
- data/pdf2json-0.52-source/xpdf/SplashOutputDev.o +0 -0
- data/pdf2json-0.52-source/xpdf/Stream-CCITT.h +459 -0
- data/pdf2json-0.52-source/xpdf/Stream.cc +4627 -0
- data/pdf2json-0.52-source/xpdf/Stream.h +858 -0
- data/pdf2json-0.52-source/xpdf/Stream.o +0 -0
- data/pdf2json-0.52-source/xpdf/TextOutputDev.cc +4090 -0
- data/pdf2json-0.52-source/xpdf/TextOutputDev.h +661 -0
- data/pdf2json-0.52-source/xpdf/TextOutputDev.o +0 -0
- data/pdf2json-0.52-source/xpdf/UTF8.h +56 -0
- data/pdf2json-0.52-source/xpdf/UnicodeMap.cc +302 -0
- data/pdf2json-0.52-source/xpdf/UnicodeMap.cc.old +293 -0
- data/pdf2json-0.52-source/xpdf/UnicodeMap.h +135 -0
- data/pdf2json-0.52-source/xpdf/UnicodeMap.h.old +123 -0
- data/pdf2json-0.52-source/xpdf/UnicodeMap.o +0 -0
- data/pdf2json-0.52-source/xpdf/UnicodeMapTables.h +361 -0
- data/pdf2json-0.52-source/xpdf/UnicodeTypeTable.cc +949 -0
- data/pdf2json-0.52-source/xpdf/UnicodeTypeTable.h +20 -0
- data/pdf2json-0.52-source/xpdf/UnicodeTypeTable.o +0 -0
- data/pdf2json-0.52-source/xpdf/XPDFApp.cc +447 -0
- data/pdf2json-0.52-source/xpdf/XPDFApp.h +114 -0
- data/pdf2json-0.52-source/xpdf/XPDFCore.cc +1655 -0
- data/pdf2json-0.52-source/xpdf/XPDFCore.h +251 -0
- data/pdf2json-0.52-source/xpdf/XPDFTree.cc +931 -0
- data/pdf2json-0.52-source/xpdf/XPDFTree.h +45 -0
- data/pdf2json-0.52-source/xpdf/XPDFTreeP.h +87 -0
- data/pdf2json-0.52-source/xpdf/XPDFViewer.cc +3488 -0
- data/pdf2json-0.52-source/xpdf/XPDFViewer.h +352 -0
- data/pdf2json-0.52-source/xpdf/XRef.cc +896 -0
- data/pdf2json-0.52-source/xpdf/XRef.h +133 -0
- data/pdf2json-0.52-source/xpdf/XRef.o +0 -0
- data/pdf2json-0.52-source/xpdf/XpdfPluginAPI.cc +262 -0
- data/pdf2json-0.52-source/xpdf/XpdfPluginAPI.h +341 -0
- data/pdf2json-0.52-source/xpdf/XpdfPluginAPI.o +0 -0
- data/pdf2json-0.52-source/xpdf/about-text.h +48 -0
- data/pdf2json-0.52-source/xpdf/about.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/backArrow.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/backArrowDis.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/config.h +112 -0
- data/pdf2json-0.52-source/xpdf/dblLeftArrow.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/dblLeftArrowDis.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/dblRightArrow.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/dblRightArrowDis.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/find.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/findDis.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/forwardArrow.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/forwardArrowDis.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/leftArrow.xbm +5 -0
- data/pdf2json-0.52-source/xpdf/leftArrowDis.xbm +5 -0
- data/pdf2json-0.52-source/xpdf/libXpdf.a +0 -0
- data/pdf2json-0.52-source/xpdf/pdffonts +0 -0
- data/pdf2json-0.52-source/xpdf/pdffonts.cc +298 -0
- data/pdf2json-0.52-source/xpdf/pdffonts.o +0 -0
- data/pdf2json-0.52-source/xpdf/pdfimages +0 -0
- data/pdf2json-0.52-source/xpdf/pdfimages.cc +155 -0
- data/pdf2json-0.52-source/xpdf/pdfimages.o +0 -0
- data/pdf2json-0.52-source/xpdf/pdfinfo +0 -0
- data/pdf2json-0.52-source/xpdf/pdfinfo.cc +387 -0
- data/pdf2json-0.52-source/xpdf/pdfinfo.o +0 -0
- data/pdf2json-0.52-source/xpdf/pdftoppm.cc +203 -0
- data/pdf2json-0.52-source/xpdf/pdftops +0 -0
- data/pdf2json-0.52-source/xpdf/pdftops.cc +344 -0
- data/pdf2json-0.52-source/xpdf/pdftops.o +0 -0
- data/pdf2json-0.52-source/xpdf/pdftotext +0 -0
- data/pdf2json-0.52-source/xpdf/pdftotext.cc +333 -0
- data/pdf2json-0.52-source/xpdf/pdftotext.o +0 -0
- data/pdf2json-0.52-source/xpdf/print.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/printDis.xbm +6 -0
- data/pdf2json-0.52-source/xpdf/rightArrow.xbm +5 -0
- data/pdf2json-0.52-source/xpdf/rightArrowDis.xbm +5 -0
- data/pdf2json-0.52-source/xpdf/vms_make.com +129 -0
- data/pdf2json-0.52-source/xpdf/xpdf.cc +344 -0
- data/pdf2json-0.52-source/xpdf/xpdfIcon.xpm +62 -0
- data/pdf2json.gemspec +29 -0
- metadata +518 -0
@@ -0,0 +1,1244 @@
|
|
1
|
+
//========================================================================
|
2
|
+
//
|
3
|
+
// GfxState.h
|
4
|
+
//
|
5
|
+
// Copyright 1996-2003 Glyph & Cog, LLC
|
6
|
+
//
|
7
|
+
//========================================================================
|
8
|
+
|
9
|
+
#ifndef GFXSTATE_H
|
10
|
+
#define GFXSTATE_H
|
11
|
+
|
12
|
+
#include <aconf.h>
|
13
|
+
|
14
|
+
#ifdef USE_GCC_PRAGMAS
|
15
|
+
#pragma interface
|
16
|
+
#endif
|
17
|
+
|
18
|
+
#include "gtypes.h"
|
19
|
+
#include "Object.h"
|
20
|
+
#include "Function.h"
|
21
|
+
|
22
|
+
class Array;
|
23
|
+
class GfxFont;
|
24
|
+
class PDFRectangle;
|
25
|
+
class GfxShading;
|
26
|
+
|
27
|
+
//------------------------------------------------------------------------
|
28
|
+
// GfxBlendMode
|
29
|
+
//------------------------------------------------------------------------
|
30
|
+
|
31
|
+
enum GfxBlendMode {
|
32
|
+
gfxBlendNormal,
|
33
|
+
gfxBlendMultiply,
|
34
|
+
gfxBlendScreen,
|
35
|
+
gfxBlendOverlay,
|
36
|
+
gfxBlendDarken,
|
37
|
+
gfxBlendLighten,
|
38
|
+
gfxBlendColorDodge,
|
39
|
+
gfxBlendColorBurn,
|
40
|
+
gfxBlendHardLight,
|
41
|
+
gfxBlendSoftLight,
|
42
|
+
gfxBlendDifference,
|
43
|
+
gfxBlendExclusion,
|
44
|
+
gfxBlendHue,
|
45
|
+
gfxBlendSaturation,
|
46
|
+
gfxBlendColor,
|
47
|
+
gfxBlendLuminosity
|
48
|
+
};
|
49
|
+
|
50
|
+
//------------------------------------------------------------------------
|
51
|
+
// GfxColorComp
|
52
|
+
//------------------------------------------------------------------------
|
53
|
+
|
54
|
+
// 16.16 fixed point color component
|
55
|
+
typedef int GfxColorComp;
|
56
|
+
|
57
|
+
#define gfxColorComp1 0x10000
|
58
|
+
|
59
|
+
static inline GfxColorComp dblToCol(double x) {
|
60
|
+
return (GfxColorComp)(x * gfxColorComp1);
|
61
|
+
}
|
62
|
+
|
63
|
+
static inline double colToDbl(GfxColorComp x) {
|
64
|
+
return (double)x / (double)gfxColorComp1;
|
65
|
+
}
|
66
|
+
|
67
|
+
static inline GfxColorComp byteToCol(Guchar x) {
|
68
|
+
// (x / 255) << 16 = (0.0000000100000001... * x) << 16
|
69
|
+
// = ((x << 8) + (x) + (x >> 8) + ...) << 16
|
70
|
+
// = (x << 8) + (x) + (x >> 7)
|
71
|
+
// [for rounding]
|
72
|
+
return (GfxColorComp)((x << 8) + x + (x >> 7));
|
73
|
+
}
|
74
|
+
|
75
|
+
static inline Guchar colToByte(GfxColorComp x) {
|
76
|
+
// 255 * x + 0.5 = 256 * x - x + 0x8000
|
77
|
+
return (Guchar)(((x << 8) - x + 0x8000) >> 16);
|
78
|
+
}
|
79
|
+
|
80
|
+
//------------------------------------------------------------------------
|
81
|
+
// GfxColor
|
82
|
+
//------------------------------------------------------------------------
|
83
|
+
|
84
|
+
#define gfxColorMaxComps funcMaxOutputs
|
85
|
+
|
86
|
+
struct GfxColor {
|
87
|
+
GfxColorComp c[gfxColorMaxComps];
|
88
|
+
};
|
89
|
+
|
90
|
+
//------------------------------------------------------------------------
|
91
|
+
// GfxGray
|
92
|
+
//------------------------------------------------------------------------
|
93
|
+
|
94
|
+
typedef GfxColorComp GfxGray;
|
95
|
+
|
96
|
+
//------------------------------------------------------------------------
|
97
|
+
// GfxRGB
|
98
|
+
//------------------------------------------------------------------------
|
99
|
+
|
100
|
+
struct GfxRGB {
|
101
|
+
GfxColorComp r, g, b;
|
102
|
+
};
|
103
|
+
|
104
|
+
//------------------------------------------------------------------------
|
105
|
+
// GfxCMYK
|
106
|
+
//------------------------------------------------------------------------
|
107
|
+
|
108
|
+
struct GfxCMYK {
|
109
|
+
GfxColorComp c, m, y, k;
|
110
|
+
};
|
111
|
+
|
112
|
+
//------------------------------------------------------------------------
|
113
|
+
// GfxColorSpace
|
114
|
+
//------------------------------------------------------------------------
|
115
|
+
|
116
|
+
// NB: The nGfxColorSpaceModes constant and the gfxColorSpaceModeNames
|
117
|
+
// array defined in GfxState.cc must match this enum.
|
118
|
+
enum GfxColorSpaceMode {
|
119
|
+
csDeviceGray,
|
120
|
+
csCalGray,
|
121
|
+
csDeviceRGB,
|
122
|
+
csCalRGB,
|
123
|
+
csDeviceCMYK,
|
124
|
+
csLab,
|
125
|
+
csICCBased,
|
126
|
+
csIndexed,
|
127
|
+
csSeparation,
|
128
|
+
csDeviceN,
|
129
|
+
csPattern
|
130
|
+
};
|
131
|
+
|
132
|
+
class GfxColorSpace {
|
133
|
+
public:
|
134
|
+
|
135
|
+
GfxColorSpace();
|
136
|
+
virtual ~GfxColorSpace();
|
137
|
+
virtual GfxColorSpace *copy() = 0;
|
138
|
+
virtual GfxColorSpaceMode getMode() = 0;
|
139
|
+
|
140
|
+
// Construct a color space. Returns NULL if unsuccessful.
|
141
|
+
static GfxColorSpace *parse(Object *csObj);
|
142
|
+
|
143
|
+
// Convert to gray, RGB, or CMYK.
|
144
|
+
virtual void getGray(GfxColor *color, GfxGray *gray) = 0;
|
145
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb) = 0;
|
146
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk) = 0;
|
147
|
+
|
148
|
+
// Return the number of color components.
|
149
|
+
virtual int getNComps() = 0;
|
150
|
+
|
151
|
+
// Get this color space's default color.
|
152
|
+
virtual void getDefaultColor(GfxColor *color) = 0;
|
153
|
+
|
154
|
+
// Return the default ranges for each component, assuming an image
|
155
|
+
// with a max pixel value of <maxImgPixel>.
|
156
|
+
virtual void getDefaultRanges(double *decodeLow, double *decodeRange,
|
157
|
+
int maxImgPixel);
|
158
|
+
|
159
|
+
// Returns true if painting operations in this color space never
|
160
|
+
// mark the page (e.g., the "None" colorant).
|
161
|
+
virtual GBool isNonMarking() { return gFalse; }
|
162
|
+
|
163
|
+
// Return the number of color space modes
|
164
|
+
static int getNumColorSpaceModes();
|
165
|
+
|
166
|
+
// Return the name of the <idx>th color space mode.
|
167
|
+
static char *getColorSpaceModeName(int idx);
|
168
|
+
|
169
|
+
private:
|
170
|
+
};
|
171
|
+
|
172
|
+
//------------------------------------------------------------------------
|
173
|
+
// GfxDeviceGrayColorSpace
|
174
|
+
//------------------------------------------------------------------------
|
175
|
+
|
176
|
+
class GfxDeviceGrayColorSpace: public GfxColorSpace {
|
177
|
+
public:
|
178
|
+
|
179
|
+
GfxDeviceGrayColorSpace();
|
180
|
+
virtual ~GfxDeviceGrayColorSpace();
|
181
|
+
virtual GfxColorSpace *copy();
|
182
|
+
virtual GfxColorSpaceMode getMode() { return csDeviceGray; }
|
183
|
+
|
184
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
185
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
186
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
187
|
+
|
188
|
+
virtual int getNComps() { return 1; }
|
189
|
+
virtual void getDefaultColor(GfxColor *color);
|
190
|
+
|
191
|
+
private:
|
192
|
+
};
|
193
|
+
|
194
|
+
//------------------------------------------------------------------------
|
195
|
+
// GfxCalGrayColorSpace
|
196
|
+
//------------------------------------------------------------------------
|
197
|
+
|
198
|
+
class GfxCalGrayColorSpace: public GfxColorSpace {
|
199
|
+
public:
|
200
|
+
|
201
|
+
GfxCalGrayColorSpace();
|
202
|
+
virtual ~GfxCalGrayColorSpace();
|
203
|
+
virtual GfxColorSpace *copy();
|
204
|
+
virtual GfxColorSpaceMode getMode() { return csCalGray; }
|
205
|
+
|
206
|
+
// Construct a CalGray color space. Returns NULL if unsuccessful.
|
207
|
+
static GfxColorSpace *parse(Array *arr);
|
208
|
+
|
209
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
210
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
211
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
212
|
+
|
213
|
+
virtual int getNComps() { return 1; }
|
214
|
+
virtual void getDefaultColor(GfxColor *color);
|
215
|
+
|
216
|
+
// CalGray-specific access.
|
217
|
+
double getWhiteX() { return whiteX; }
|
218
|
+
double getWhiteY() { return whiteY; }
|
219
|
+
double getWhiteZ() { return whiteZ; }
|
220
|
+
double getBlackX() { return blackX; }
|
221
|
+
double getBlackY() { return blackY; }
|
222
|
+
double getBlackZ() { return blackZ; }
|
223
|
+
double getGamma() { return gamma; }
|
224
|
+
|
225
|
+
private:
|
226
|
+
|
227
|
+
double whiteX, whiteY, whiteZ; // white point
|
228
|
+
double blackX, blackY, blackZ; // black point
|
229
|
+
double gamma; // gamma value
|
230
|
+
};
|
231
|
+
|
232
|
+
//------------------------------------------------------------------------
|
233
|
+
// GfxDeviceRGBColorSpace
|
234
|
+
//------------------------------------------------------------------------
|
235
|
+
|
236
|
+
class GfxDeviceRGBColorSpace: public GfxColorSpace {
|
237
|
+
public:
|
238
|
+
|
239
|
+
GfxDeviceRGBColorSpace();
|
240
|
+
virtual ~GfxDeviceRGBColorSpace();
|
241
|
+
virtual GfxColorSpace *copy();
|
242
|
+
virtual GfxColorSpaceMode getMode() { return csDeviceRGB; }
|
243
|
+
|
244
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
245
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
246
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
247
|
+
|
248
|
+
virtual int getNComps() { return 3; }
|
249
|
+
virtual void getDefaultColor(GfxColor *color);
|
250
|
+
|
251
|
+
private:
|
252
|
+
};
|
253
|
+
|
254
|
+
//------------------------------------------------------------------------
|
255
|
+
// GfxCalRGBColorSpace
|
256
|
+
//------------------------------------------------------------------------
|
257
|
+
|
258
|
+
class GfxCalRGBColorSpace: public GfxColorSpace {
|
259
|
+
public:
|
260
|
+
|
261
|
+
GfxCalRGBColorSpace();
|
262
|
+
virtual ~GfxCalRGBColorSpace();
|
263
|
+
virtual GfxColorSpace *copy();
|
264
|
+
virtual GfxColorSpaceMode getMode() { return csCalRGB; }
|
265
|
+
|
266
|
+
// Construct a CalRGB color space. Returns NULL if unsuccessful.
|
267
|
+
static GfxColorSpace *parse(Array *arr);
|
268
|
+
|
269
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
270
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
271
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
272
|
+
|
273
|
+
virtual int getNComps() { return 3; }
|
274
|
+
virtual void getDefaultColor(GfxColor *color);
|
275
|
+
|
276
|
+
// CalRGB-specific access.
|
277
|
+
double getWhiteX() { return whiteX; }
|
278
|
+
double getWhiteY() { return whiteY; }
|
279
|
+
double getWhiteZ() { return whiteZ; }
|
280
|
+
double getBlackX() { return blackX; }
|
281
|
+
double getBlackY() { return blackY; }
|
282
|
+
double getBlackZ() { return blackZ; }
|
283
|
+
double getGammaR() { return gammaR; }
|
284
|
+
double getGammaG() { return gammaG; }
|
285
|
+
double getGammaB() { return gammaB; }
|
286
|
+
double *getMatrix() { return mat; }
|
287
|
+
|
288
|
+
private:
|
289
|
+
|
290
|
+
double whiteX, whiteY, whiteZ; // white point
|
291
|
+
double blackX, blackY, blackZ; // black point
|
292
|
+
double gammaR, gammaG, gammaB; // gamma values
|
293
|
+
double mat[9]; // ABC -> XYZ transform matrix
|
294
|
+
};
|
295
|
+
|
296
|
+
//------------------------------------------------------------------------
|
297
|
+
// GfxDeviceCMYKColorSpace
|
298
|
+
//------------------------------------------------------------------------
|
299
|
+
|
300
|
+
class GfxDeviceCMYKColorSpace: public GfxColorSpace {
|
301
|
+
public:
|
302
|
+
|
303
|
+
GfxDeviceCMYKColorSpace();
|
304
|
+
virtual ~GfxDeviceCMYKColorSpace();
|
305
|
+
virtual GfxColorSpace *copy();
|
306
|
+
virtual GfxColorSpaceMode getMode() { return csDeviceCMYK; }
|
307
|
+
|
308
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
309
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
310
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
311
|
+
|
312
|
+
virtual int getNComps() { return 4; }
|
313
|
+
virtual void getDefaultColor(GfxColor *color);
|
314
|
+
|
315
|
+
private:
|
316
|
+
};
|
317
|
+
|
318
|
+
//------------------------------------------------------------------------
|
319
|
+
// GfxLabColorSpace
|
320
|
+
//------------------------------------------------------------------------
|
321
|
+
|
322
|
+
class GfxLabColorSpace: public GfxColorSpace {
|
323
|
+
public:
|
324
|
+
|
325
|
+
GfxLabColorSpace();
|
326
|
+
virtual ~GfxLabColorSpace();
|
327
|
+
virtual GfxColorSpace *copy();
|
328
|
+
virtual GfxColorSpaceMode getMode() { return csLab; }
|
329
|
+
|
330
|
+
// Construct a Lab color space. Returns NULL if unsuccessful.
|
331
|
+
static GfxColorSpace *parse(Array *arr);
|
332
|
+
|
333
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
334
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
335
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
336
|
+
|
337
|
+
virtual int getNComps() { return 3; }
|
338
|
+
virtual void getDefaultColor(GfxColor *color);
|
339
|
+
|
340
|
+
virtual void getDefaultRanges(double *decodeLow, double *decodeRange,
|
341
|
+
int maxImgPixel);
|
342
|
+
|
343
|
+
// Lab-specific access.
|
344
|
+
double getWhiteX() { return whiteX; }
|
345
|
+
double getWhiteY() { return whiteY; }
|
346
|
+
double getWhiteZ() { return whiteZ; }
|
347
|
+
double getBlackX() { return blackX; }
|
348
|
+
double getBlackY() { return blackY; }
|
349
|
+
double getBlackZ() { return blackZ; }
|
350
|
+
double getAMin() { return aMin; }
|
351
|
+
double getAMax() { return aMax; }
|
352
|
+
double getBMin() { return bMin; }
|
353
|
+
double getBMax() { return bMax; }
|
354
|
+
|
355
|
+
private:
|
356
|
+
|
357
|
+
double whiteX, whiteY, whiteZ; // white point
|
358
|
+
double blackX, blackY, blackZ; // black point
|
359
|
+
double aMin, aMax, bMin, bMax; // range for the a and b components
|
360
|
+
double kr, kg, kb; // gamut mapping mulitpliers
|
361
|
+
};
|
362
|
+
|
363
|
+
//------------------------------------------------------------------------
|
364
|
+
// GfxICCBasedColorSpace
|
365
|
+
//------------------------------------------------------------------------
|
366
|
+
|
367
|
+
class GfxICCBasedColorSpace: public GfxColorSpace {
|
368
|
+
public:
|
369
|
+
|
370
|
+
GfxICCBasedColorSpace(int nCompsA, GfxColorSpace *altA,
|
371
|
+
Ref *iccProfileStreamA);
|
372
|
+
virtual ~GfxICCBasedColorSpace();
|
373
|
+
virtual GfxColorSpace *copy();
|
374
|
+
virtual GfxColorSpaceMode getMode() { return csICCBased; }
|
375
|
+
|
376
|
+
// Construct an ICCBased color space. Returns NULL if unsuccessful.
|
377
|
+
static GfxColorSpace *parse(Array *arr);
|
378
|
+
|
379
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
380
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
381
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
382
|
+
|
383
|
+
virtual int getNComps() { return nComps; }
|
384
|
+
virtual void getDefaultColor(GfxColor *color);
|
385
|
+
|
386
|
+
virtual void getDefaultRanges(double *decodeLow, double *decodeRange,
|
387
|
+
int maxImgPixel);
|
388
|
+
|
389
|
+
// ICCBased-specific access.
|
390
|
+
GfxColorSpace *getAlt() { return alt; }
|
391
|
+
|
392
|
+
private:
|
393
|
+
|
394
|
+
int nComps; // number of color components (1, 3, or 4)
|
395
|
+
GfxColorSpace *alt; // alternate color space
|
396
|
+
double rangeMin[4]; // min values for each component
|
397
|
+
double rangeMax[4]; // max values for each component
|
398
|
+
Ref iccProfileStream; // the ICC profile
|
399
|
+
};
|
400
|
+
|
401
|
+
//------------------------------------------------------------------------
|
402
|
+
// GfxIndexedColorSpace
|
403
|
+
//------------------------------------------------------------------------
|
404
|
+
|
405
|
+
class GfxIndexedColorSpace: public GfxColorSpace {
|
406
|
+
public:
|
407
|
+
|
408
|
+
GfxIndexedColorSpace(GfxColorSpace *baseA, int indexHighA);
|
409
|
+
virtual ~GfxIndexedColorSpace();
|
410
|
+
virtual GfxColorSpace *copy();
|
411
|
+
virtual GfxColorSpaceMode getMode() { return csIndexed; }
|
412
|
+
|
413
|
+
// Construct a Lab color space. Returns NULL if unsuccessful.
|
414
|
+
static GfxColorSpace *parse(Array *arr);
|
415
|
+
|
416
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
417
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
418
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
419
|
+
|
420
|
+
virtual int getNComps() { return 1; }
|
421
|
+
virtual void getDefaultColor(GfxColor *color);
|
422
|
+
|
423
|
+
virtual void getDefaultRanges(double *decodeLow, double *decodeRange,
|
424
|
+
int maxImgPixel);
|
425
|
+
|
426
|
+
// Indexed-specific access.
|
427
|
+
GfxColorSpace *getBase() { return base; }
|
428
|
+
int getIndexHigh() { return indexHigh; }
|
429
|
+
Guchar *getLookup() { return lookup; }
|
430
|
+
GfxColor *mapColorToBase(GfxColor *color, GfxColor *baseColor);
|
431
|
+
|
432
|
+
private:
|
433
|
+
|
434
|
+
GfxColorSpace *base; // base color space
|
435
|
+
int indexHigh; // max pixel value
|
436
|
+
Guchar *lookup; // lookup table
|
437
|
+
};
|
438
|
+
|
439
|
+
//------------------------------------------------------------------------
|
440
|
+
// GfxSeparationColorSpace
|
441
|
+
//------------------------------------------------------------------------
|
442
|
+
|
443
|
+
class GfxSeparationColorSpace: public GfxColorSpace {
|
444
|
+
public:
|
445
|
+
|
446
|
+
GfxSeparationColorSpace(GString *nameA, GfxColorSpace *altA,
|
447
|
+
Function *funcA);
|
448
|
+
virtual ~GfxSeparationColorSpace();
|
449
|
+
virtual GfxColorSpace *copy();
|
450
|
+
virtual GfxColorSpaceMode getMode() { return csSeparation; }
|
451
|
+
|
452
|
+
// Construct a Separation color space. Returns NULL if unsuccessful.
|
453
|
+
static GfxColorSpace *parse(Array *arr);
|
454
|
+
|
455
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
456
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
457
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
458
|
+
|
459
|
+
virtual int getNComps() { return 1; }
|
460
|
+
virtual void getDefaultColor(GfxColor *color);
|
461
|
+
|
462
|
+
virtual GBool isNonMarking() { return nonMarking; }
|
463
|
+
|
464
|
+
// Separation-specific access.
|
465
|
+
GString *getName() { return name; }
|
466
|
+
GfxColorSpace *getAlt() { return alt; }
|
467
|
+
Function *getFunc() { return func; }
|
468
|
+
|
469
|
+
private:
|
470
|
+
|
471
|
+
GString *name; // colorant name
|
472
|
+
GfxColorSpace *alt; // alternate color space
|
473
|
+
Function *func; // tint transform (into alternate color space)
|
474
|
+
GBool nonMarking;
|
475
|
+
};
|
476
|
+
|
477
|
+
//------------------------------------------------------------------------
|
478
|
+
// GfxDeviceNColorSpace
|
479
|
+
//------------------------------------------------------------------------
|
480
|
+
|
481
|
+
class GfxDeviceNColorSpace: public GfxColorSpace {
|
482
|
+
public:
|
483
|
+
|
484
|
+
GfxDeviceNColorSpace(int nCompsA, GfxColorSpace *alt, Function *func);
|
485
|
+
virtual ~GfxDeviceNColorSpace();
|
486
|
+
virtual GfxColorSpace *copy();
|
487
|
+
virtual GfxColorSpaceMode getMode() { return csDeviceN; }
|
488
|
+
|
489
|
+
// Construct a DeviceN color space. Returns NULL if unsuccessful.
|
490
|
+
static GfxColorSpace *parse(Array *arr);
|
491
|
+
|
492
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
493
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
494
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
495
|
+
|
496
|
+
virtual int getNComps() { return nComps; }
|
497
|
+
virtual void getDefaultColor(GfxColor *color);
|
498
|
+
|
499
|
+
virtual GBool isNonMarking() { return nonMarking; }
|
500
|
+
|
501
|
+
// DeviceN-specific access.
|
502
|
+
GString *getColorantName(int i) { return names[i]; }
|
503
|
+
GfxColorSpace *getAlt() { return alt; }
|
504
|
+
Function *getTintTransformFunc() { return func; }
|
505
|
+
|
506
|
+
private:
|
507
|
+
|
508
|
+
int nComps; // number of components
|
509
|
+
GString // colorant names
|
510
|
+
*names[gfxColorMaxComps];
|
511
|
+
GfxColorSpace *alt; // alternate color space
|
512
|
+
Function *func; // tint transform (into alternate color space)
|
513
|
+
GBool nonMarking;
|
514
|
+
};
|
515
|
+
|
516
|
+
//------------------------------------------------------------------------
|
517
|
+
// GfxPatternColorSpace
|
518
|
+
//------------------------------------------------------------------------
|
519
|
+
|
520
|
+
class GfxPatternColorSpace: public GfxColorSpace {
|
521
|
+
public:
|
522
|
+
|
523
|
+
GfxPatternColorSpace(GfxColorSpace *underA);
|
524
|
+
virtual ~GfxPatternColorSpace();
|
525
|
+
virtual GfxColorSpace *copy();
|
526
|
+
virtual GfxColorSpaceMode getMode() { return csPattern; }
|
527
|
+
|
528
|
+
// Construct a Pattern color space. Returns NULL if unsuccessful.
|
529
|
+
static GfxColorSpace *parse(Array *arr);
|
530
|
+
|
531
|
+
virtual void getGray(GfxColor *color, GfxGray *gray);
|
532
|
+
virtual void getRGB(GfxColor *color, GfxRGB *rgb);
|
533
|
+
virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);
|
534
|
+
|
535
|
+
virtual int getNComps() { return 0; }
|
536
|
+
virtual void getDefaultColor(GfxColor *color);
|
537
|
+
|
538
|
+
// Pattern-specific access.
|
539
|
+
GfxColorSpace *getUnder() { return under; }
|
540
|
+
|
541
|
+
private:
|
542
|
+
|
543
|
+
GfxColorSpace *under; // underlying color space (for uncolored
|
544
|
+
// patterns)
|
545
|
+
};
|
546
|
+
|
547
|
+
//------------------------------------------------------------------------
|
548
|
+
// GfxPattern
|
549
|
+
//------------------------------------------------------------------------
|
550
|
+
|
551
|
+
class GfxPattern {
|
552
|
+
public:
|
553
|
+
|
554
|
+
GfxPattern(int typeA);
|
555
|
+
virtual ~GfxPattern();
|
556
|
+
|
557
|
+
static GfxPattern *parse(Object *obj);
|
558
|
+
|
559
|
+
virtual GfxPattern *copy() = 0;
|
560
|
+
|
561
|
+
int getType() { return type; }
|
562
|
+
|
563
|
+
private:
|
564
|
+
|
565
|
+
int type;
|
566
|
+
};
|
567
|
+
|
568
|
+
//------------------------------------------------------------------------
|
569
|
+
// GfxTilingPattern
|
570
|
+
//------------------------------------------------------------------------
|
571
|
+
|
572
|
+
class GfxTilingPattern: public GfxPattern {
|
573
|
+
public:
|
574
|
+
|
575
|
+
static GfxTilingPattern *parse(Object *patObj);
|
576
|
+
virtual ~GfxTilingPattern();
|
577
|
+
|
578
|
+
virtual GfxPattern *copy();
|
579
|
+
|
580
|
+
int getPaintType() { return paintType; }
|
581
|
+
int getTilingType() { return tilingType; }
|
582
|
+
double *getBBox() { return bbox; }
|
583
|
+
double getXStep() { return xStep; }
|
584
|
+
double getYStep() { return yStep; }
|
585
|
+
Dict *getResDict()
|
586
|
+
{ return resDict.isDict() ? resDict.getDict() : (Dict *)NULL; }
|
587
|
+
double *getMatrix() { return matrix; }
|
588
|
+
Object *getContentStream() { return &contentStream; }
|
589
|
+
|
590
|
+
private:
|
591
|
+
|
592
|
+
GfxTilingPattern(int paintTypeA, int tilingTypeA,
|
593
|
+
double *bboxA, double xStepA, double yStepA,
|
594
|
+
Object *resDictA, double *matrixA,
|
595
|
+
Object *contentStreamA);
|
596
|
+
|
597
|
+
int paintType;
|
598
|
+
int tilingType;
|
599
|
+
double bbox[4];
|
600
|
+
double xStep, yStep;
|
601
|
+
Object resDict;
|
602
|
+
double matrix[6];
|
603
|
+
Object contentStream;
|
604
|
+
};
|
605
|
+
|
606
|
+
//------------------------------------------------------------------------
|
607
|
+
// GfxShadingPattern
|
608
|
+
//------------------------------------------------------------------------
|
609
|
+
|
610
|
+
class GfxShadingPattern: public GfxPattern {
|
611
|
+
public:
|
612
|
+
|
613
|
+
static GfxShadingPattern *parse(Object *patObj);
|
614
|
+
virtual ~GfxShadingPattern();
|
615
|
+
|
616
|
+
virtual GfxPattern *copy();
|
617
|
+
|
618
|
+
GfxShading *getShading() { return shading; }
|
619
|
+
double *getMatrix() { return matrix; }
|
620
|
+
|
621
|
+
private:
|
622
|
+
|
623
|
+
GfxShadingPattern(GfxShading *shadingA, double *matrixA);
|
624
|
+
|
625
|
+
GfxShading *shading;
|
626
|
+
double matrix[6];
|
627
|
+
};
|
628
|
+
|
629
|
+
//------------------------------------------------------------------------
|
630
|
+
// GfxShading
|
631
|
+
//------------------------------------------------------------------------
|
632
|
+
|
633
|
+
class GfxShading {
|
634
|
+
public:
|
635
|
+
|
636
|
+
GfxShading(int typeA);
|
637
|
+
GfxShading(GfxShading *shading);
|
638
|
+
virtual ~GfxShading();
|
639
|
+
|
640
|
+
static GfxShading *parse(Object *obj);
|
641
|
+
|
642
|
+
virtual GfxShading *copy() = 0;
|
643
|
+
|
644
|
+
int getType() { return type; }
|
645
|
+
GfxColorSpace *getColorSpace() { return colorSpace; }
|
646
|
+
GfxColor *getBackground() { return &background; }
|
647
|
+
GBool getHasBackground() { return hasBackground; }
|
648
|
+
void getBBox(double *xMinA, double *yMinA, double *xMaxA, double *yMaxA)
|
649
|
+
{ *xMinA = xMin; *yMinA = yMin; *xMaxA = xMax; *yMaxA = yMax; }
|
650
|
+
GBool getHasBBox() { return hasBBox; }
|
651
|
+
|
652
|
+
protected:
|
653
|
+
|
654
|
+
GBool init(Dict *dict);
|
655
|
+
|
656
|
+
int type;
|
657
|
+
GfxColorSpace *colorSpace;
|
658
|
+
GfxColor background;
|
659
|
+
GBool hasBackground;
|
660
|
+
double xMin, yMin, xMax, yMax;
|
661
|
+
GBool hasBBox;
|
662
|
+
};
|
663
|
+
|
664
|
+
//------------------------------------------------------------------------
|
665
|
+
// GfxFunctionShading
|
666
|
+
//------------------------------------------------------------------------
|
667
|
+
|
668
|
+
class GfxFunctionShading: public GfxShading {
|
669
|
+
public:
|
670
|
+
|
671
|
+
GfxFunctionShading(double x0A, double y0A,
|
672
|
+
double x1A, double y1A,
|
673
|
+
double *matrixA,
|
674
|
+
Function **funcsA, int nFuncsA);
|
675
|
+
GfxFunctionShading(GfxFunctionShading *shading);
|
676
|
+
virtual ~GfxFunctionShading();
|
677
|
+
|
678
|
+
static GfxFunctionShading *parse(Dict *dict);
|
679
|
+
|
680
|
+
virtual GfxShading *copy();
|
681
|
+
|
682
|
+
void getDomain(double *x0A, double *y0A, double *x1A, double *y1A)
|
683
|
+
{ *x0A = x0; *y0A = y0; *x1A = x1; *y1A = y1; }
|
684
|
+
double *getMatrix() { return matrix; }
|
685
|
+
int getNFuncs() { return nFuncs; }
|
686
|
+
Function *getFunc(int i) { return funcs[i]; }
|
687
|
+
void getColor(double x, double y, GfxColor *color);
|
688
|
+
|
689
|
+
private:
|
690
|
+
|
691
|
+
double x0, y0, x1, y1;
|
692
|
+
double matrix[6];
|
693
|
+
Function *funcs[gfxColorMaxComps];
|
694
|
+
int nFuncs;
|
695
|
+
};
|
696
|
+
|
697
|
+
//------------------------------------------------------------------------
|
698
|
+
// GfxAxialShading
|
699
|
+
//------------------------------------------------------------------------
|
700
|
+
|
701
|
+
class GfxAxialShading: public GfxShading {
|
702
|
+
public:
|
703
|
+
|
704
|
+
GfxAxialShading(double x0A, double y0A,
|
705
|
+
double x1A, double y1A,
|
706
|
+
double t0A, double t1A,
|
707
|
+
Function **funcsA, int nFuncsA,
|
708
|
+
GBool extend0A, GBool extend1A);
|
709
|
+
GfxAxialShading(GfxAxialShading *shading);
|
710
|
+
virtual ~GfxAxialShading();
|
711
|
+
|
712
|
+
static GfxAxialShading *parse(Dict *dict);
|
713
|
+
|
714
|
+
virtual GfxShading *copy();
|
715
|
+
|
716
|
+
void getCoords(double *x0A, double *y0A, double *x1A, double *y1A)
|
717
|
+
{ *x0A = x0; *y0A = y0; *x1A = x1; *y1A = y1; }
|
718
|
+
double getDomain0() { return t0; }
|
719
|
+
double getDomain1() { return t1; }
|
720
|
+
GBool getExtend0() { return extend0; }
|
721
|
+
GBool getExtend1() { return extend1; }
|
722
|
+
int getNFuncs() { return nFuncs; }
|
723
|
+
Function *getFunc(int i) { return funcs[i]; }
|
724
|
+
void getColor(double t, GfxColor *color);
|
725
|
+
|
726
|
+
private:
|
727
|
+
|
728
|
+
double x0, y0, x1, y1;
|
729
|
+
double t0, t1;
|
730
|
+
Function *funcs[gfxColorMaxComps];
|
731
|
+
int nFuncs;
|
732
|
+
GBool extend0, extend1;
|
733
|
+
};
|
734
|
+
|
735
|
+
//------------------------------------------------------------------------
|
736
|
+
// GfxRadialShading
|
737
|
+
//------------------------------------------------------------------------
|
738
|
+
|
739
|
+
class GfxRadialShading: public GfxShading {
|
740
|
+
public:
|
741
|
+
|
742
|
+
GfxRadialShading(double x0A, double y0A, double r0A,
|
743
|
+
double x1A, double y1A, double r1A,
|
744
|
+
double t0A, double t1A,
|
745
|
+
Function **funcsA, int nFuncsA,
|
746
|
+
GBool extend0A, GBool extend1A);
|
747
|
+
GfxRadialShading(GfxRadialShading *shading);
|
748
|
+
virtual ~GfxRadialShading();
|
749
|
+
|
750
|
+
static GfxRadialShading *parse(Dict *dict);
|
751
|
+
|
752
|
+
virtual GfxShading *copy();
|
753
|
+
|
754
|
+
void getCoords(double *x0A, double *y0A, double *r0A,
|
755
|
+
double *x1A, double *y1A, double *r1A)
|
756
|
+
{ *x0A = x0; *y0A = y0; *r0A = r0; *x1A = x1; *y1A = y1; *r1A = r1; }
|
757
|
+
double getDomain0() { return t0; }
|
758
|
+
double getDomain1() { return t1; }
|
759
|
+
GBool getExtend0() { return extend0; }
|
760
|
+
GBool getExtend1() { return extend1; }
|
761
|
+
int getNFuncs() { return nFuncs; }
|
762
|
+
Function *getFunc(int i) { return funcs[i]; }
|
763
|
+
void getColor(double t, GfxColor *color);
|
764
|
+
|
765
|
+
private:
|
766
|
+
|
767
|
+
double x0, y0, r0, x1, y1, r1;
|
768
|
+
double t0, t1;
|
769
|
+
Function *funcs[gfxColorMaxComps];
|
770
|
+
int nFuncs;
|
771
|
+
GBool extend0, extend1;
|
772
|
+
};
|
773
|
+
|
774
|
+
//------------------------------------------------------------------------
|
775
|
+
// GfxGouraudTriangleShading
|
776
|
+
//------------------------------------------------------------------------
|
777
|
+
|
778
|
+
struct GfxGouraudVertex {
|
779
|
+
double x, y;
|
780
|
+
GfxColor color;
|
781
|
+
};
|
782
|
+
|
783
|
+
class GfxGouraudTriangleShading: public GfxShading {
|
784
|
+
public:
|
785
|
+
|
786
|
+
GfxGouraudTriangleShading(int typeA,
|
787
|
+
GfxGouraudVertex *verticesA, int nVerticesA,
|
788
|
+
int (*trianglesA)[3], int nTrianglesA,
|
789
|
+
Function **funcsA, int nFuncsA);
|
790
|
+
GfxGouraudTriangleShading(GfxGouraudTriangleShading *shading);
|
791
|
+
virtual ~GfxGouraudTriangleShading();
|
792
|
+
|
793
|
+
static GfxGouraudTriangleShading *parse(int typeA, Dict *dict, Stream *str);
|
794
|
+
|
795
|
+
virtual GfxShading *copy();
|
796
|
+
|
797
|
+
int getNTriangles() { return nTriangles; }
|
798
|
+
void getTriangle(int i, double *x0, double *y0, GfxColor *color0,
|
799
|
+
double *x1, double *y1, GfxColor *color1,
|
800
|
+
double *x2, double *y2, GfxColor *color2);
|
801
|
+
|
802
|
+
private:
|
803
|
+
|
804
|
+
GfxGouraudVertex *vertices;
|
805
|
+
int nVertices;
|
806
|
+
int (*triangles)[3];
|
807
|
+
int nTriangles;
|
808
|
+
Function *funcs[gfxColorMaxComps];
|
809
|
+
int nFuncs;
|
810
|
+
};
|
811
|
+
|
812
|
+
//------------------------------------------------------------------------
|
813
|
+
// GfxPatchMeshShading
|
814
|
+
//------------------------------------------------------------------------
|
815
|
+
|
816
|
+
struct GfxPatch {
|
817
|
+
double x[4][4];
|
818
|
+
double y[4][4];
|
819
|
+
GfxColor color[2][2];
|
820
|
+
};
|
821
|
+
|
822
|
+
class GfxPatchMeshShading: public GfxShading {
|
823
|
+
public:
|
824
|
+
|
825
|
+
GfxPatchMeshShading(int typeA, GfxPatch *patchesA, int nPatchesA,
|
826
|
+
Function **funcsA, int nFuncsA);
|
827
|
+
GfxPatchMeshShading(GfxPatchMeshShading *shading);
|
828
|
+
virtual ~GfxPatchMeshShading();
|
829
|
+
|
830
|
+
static GfxPatchMeshShading *parse(int typeA, Dict *dict, Stream *str);
|
831
|
+
|
832
|
+
virtual GfxShading *copy();
|
833
|
+
|
834
|
+
int getNPatches() { return nPatches; }
|
835
|
+
GfxPatch *getPatch(int i) { return &patches[i]; }
|
836
|
+
|
837
|
+
private:
|
838
|
+
|
839
|
+
GfxPatch *patches;
|
840
|
+
int nPatches;
|
841
|
+
Function *funcs[gfxColorMaxComps];
|
842
|
+
int nFuncs;
|
843
|
+
};
|
844
|
+
|
845
|
+
//------------------------------------------------------------------------
|
846
|
+
// GfxImageColorMap
|
847
|
+
//------------------------------------------------------------------------
|
848
|
+
|
849
|
+
class GfxImageColorMap {
|
850
|
+
public:
|
851
|
+
|
852
|
+
// Constructor.
|
853
|
+
GfxImageColorMap(int bitsA, Object *decode, GfxColorSpace *colorSpaceA);
|
854
|
+
|
855
|
+
// Destructor.
|
856
|
+
~GfxImageColorMap();
|
857
|
+
|
858
|
+
// Return a copy of this color map.
|
859
|
+
GfxImageColorMap *copy() { return new GfxImageColorMap(this); }
|
860
|
+
|
861
|
+
// Is color map valid?
|
862
|
+
GBool isOk() { return ok; }
|
863
|
+
|
864
|
+
// Get the color space.
|
865
|
+
GfxColorSpace *getColorSpace() { return colorSpace; }
|
866
|
+
|
867
|
+
// Get stream decoding info.
|
868
|
+
int getNumPixelComps() { return nComps; }
|
869
|
+
int getBits() { return bits; }
|
870
|
+
|
871
|
+
// Get decode table.
|
872
|
+
double getDecodeLow(int i) { return decodeLow[i]; }
|
873
|
+
double getDecodeHigh(int i) { return decodeLow[i] + decodeRange[i]; }
|
874
|
+
|
875
|
+
// Convert an image pixel to a color.
|
876
|
+
void getGray(Guchar *x, GfxGray *gray);
|
877
|
+
void getRGB(Guchar *x, GfxRGB *rgb);
|
878
|
+
void getCMYK(Guchar *x, GfxCMYK *cmyk);
|
879
|
+
void getColor(Guchar *x, GfxColor *color);
|
880
|
+
|
881
|
+
private:
|
882
|
+
|
883
|
+
GfxImageColorMap(GfxImageColorMap *colorMap);
|
884
|
+
|
885
|
+
GfxColorSpace *colorSpace; // the image color space
|
886
|
+
int bits; // bits per component
|
887
|
+
int nComps; // number of components in a pixel
|
888
|
+
GfxColorSpace *colorSpace2; // secondary color space
|
889
|
+
int nComps2; // number of components in colorSpace2
|
890
|
+
GfxColorComp * // lookup table
|
891
|
+
lookup[gfxColorMaxComps];
|
892
|
+
double // minimum values for each component
|
893
|
+
decodeLow[gfxColorMaxComps];
|
894
|
+
double // max - min value for each component
|
895
|
+
decodeRange[gfxColorMaxComps];
|
896
|
+
GBool ok;
|
897
|
+
};
|
898
|
+
|
899
|
+
//------------------------------------------------------------------------
|
900
|
+
// GfxSubpath and GfxPath
|
901
|
+
//------------------------------------------------------------------------
|
902
|
+
|
903
|
+
class GfxSubpath {
|
904
|
+
public:
|
905
|
+
|
906
|
+
// Constructor.
|
907
|
+
GfxSubpath(double x1, double y1);
|
908
|
+
|
909
|
+
// Destructor.
|
910
|
+
~GfxSubpath();
|
911
|
+
|
912
|
+
// Copy.
|
913
|
+
GfxSubpath *copy() { return new GfxSubpath(this); }
|
914
|
+
|
915
|
+
// Get points.
|
916
|
+
int getNumPoints() { return n; }
|
917
|
+
double getX(int i) { return x[i]; }
|
918
|
+
double getY(int i) { return y[i]; }
|
919
|
+
GBool getCurve(int i) { return curve[i]; }
|
920
|
+
|
921
|
+
// Get last point.
|
922
|
+
double getLastX() { return x[n-1]; }
|
923
|
+
double getLastY() { return y[n-1]; }
|
924
|
+
|
925
|
+
// Add a line segment.
|
926
|
+
void lineTo(double x1, double y1);
|
927
|
+
|
928
|
+
// Add a Bezier curve.
|
929
|
+
void curveTo(double x1, double y1, double x2, double y2,
|
930
|
+
double x3, double y3);
|
931
|
+
|
932
|
+
// Close the subpath.
|
933
|
+
void close();
|
934
|
+
GBool isClosed() { return closed; }
|
935
|
+
|
936
|
+
// Add (<dx>, <dy>) to each point in the subpath.
|
937
|
+
void offset(double dx, double dy);
|
938
|
+
|
939
|
+
private:
|
940
|
+
|
941
|
+
double *x, *y; // points
|
942
|
+
GBool *curve; // curve[i] => point i is a control point
|
943
|
+
// for a Bezier curve
|
944
|
+
int n; // number of points
|
945
|
+
int size; // size of x/y arrays
|
946
|
+
GBool closed; // set if path is closed
|
947
|
+
|
948
|
+
GfxSubpath(GfxSubpath *subpath);
|
949
|
+
};
|
950
|
+
|
951
|
+
class GfxPath {
|
952
|
+
public:
|
953
|
+
|
954
|
+
// Constructor.
|
955
|
+
GfxPath();
|
956
|
+
|
957
|
+
// Destructor.
|
958
|
+
~GfxPath();
|
959
|
+
|
960
|
+
// Copy.
|
961
|
+
GfxPath *copy()
|
962
|
+
{ return new GfxPath(justMoved, firstX, firstY, subpaths, n, size); }
|
963
|
+
|
964
|
+
// Is there a current point?
|
965
|
+
GBool isCurPt() { return n > 0 || justMoved; }
|
966
|
+
|
967
|
+
// Is the path non-empty, i.e., is there at least one segment?
|
968
|
+
GBool isPath() { return n > 0; }
|
969
|
+
|
970
|
+
// Get subpaths.
|
971
|
+
int getNumSubpaths() { return n; }
|
972
|
+
GfxSubpath *getSubpath(int i) { return subpaths[i]; }
|
973
|
+
|
974
|
+
// Get last point on last subpath.
|
975
|
+
double getLastX() { return subpaths[n-1]->getLastX(); }
|
976
|
+
double getLastY() { return subpaths[n-1]->getLastY(); }
|
977
|
+
|
978
|
+
// Move the current point.
|
979
|
+
void moveTo(double x, double y);
|
980
|
+
|
981
|
+
// Add a segment to the last subpath.
|
982
|
+
void lineTo(double x, double y);
|
983
|
+
|
984
|
+
// Add a Bezier curve to the last subpath
|
985
|
+
void curveTo(double x1, double y1, double x2, double y2,
|
986
|
+
double x3, double y3);
|
987
|
+
|
988
|
+
// Close the last subpath.
|
989
|
+
void close();
|
990
|
+
|
991
|
+
// Append <path> to <this>.
|
992
|
+
void append(GfxPath *path);
|
993
|
+
|
994
|
+
// Add (<dx>, <dy>) to each point in the path.
|
995
|
+
void offset(double dx, double dy);
|
996
|
+
|
997
|
+
private:
|
998
|
+
|
999
|
+
GBool justMoved; // set if a new subpath was just started
|
1000
|
+
double firstX, firstY; // first point in new subpath
|
1001
|
+
GfxSubpath **subpaths; // subpaths
|
1002
|
+
int n; // number of subpaths
|
1003
|
+
int size; // size of subpaths array
|
1004
|
+
|
1005
|
+
GfxPath(GBool justMoved1, double firstX1, double firstY1,
|
1006
|
+
GfxSubpath **subpaths1, int n1, int size1);
|
1007
|
+
};
|
1008
|
+
|
1009
|
+
//------------------------------------------------------------------------
|
1010
|
+
// GfxState
|
1011
|
+
//------------------------------------------------------------------------
|
1012
|
+
|
1013
|
+
class GfxState {
|
1014
|
+
public:
|
1015
|
+
|
1016
|
+
// Construct a default GfxState, for a device with resolution <hDPI>
|
1017
|
+
// x <vDPI>, page box <pageBox>, page rotation <rotateA>, and
|
1018
|
+
// coordinate system specified by <upsideDown>.
|
1019
|
+
GfxState(double hDPIA, double vDPIA, PDFRectangle *pageBox,
|
1020
|
+
int rotateA, GBool upsideDown);
|
1021
|
+
|
1022
|
+
// Destructor.
|
1023
|
+
~GfxState();
|
1024
|
+
|
1025
|
+
// Copy.
|
1026
|
+
GfxState *copy() { return new GfxState(this); }
|
1027
|
+
|
1028
|
+
// Accessors.
|
1029
|
+
double getHDPI() { return hDPI; }
|
1030
|
+
double getVDPI() { return vDPI; }
|
1031
|
+
double *getCTM() { return ctm; }
|
1032
|
+
double getX1() { return px1; }
|
1033
|
+
double getY1() { return py1; }
|
1034
|
+
double getX2() { return px2; }
|
1035
|
+
double getY2() { return py2; }
|
1036
|
+
double getPageWidth() { return pageWidth; }
|
1037
|
+
double getPageHeight() { return pageHeight; }
|
1038
|
+
int getRotate() { return rotate; }
|
1039
|
+
GfxColor *getFillColor() { return &fillColor; }
|
1040
|
+
GfxColor *getStrokeColor() { return &strokeColor; }
|
1041
|
+
void getFillGray(GfxGray *gray)
|
1042
|
+
{ fillColorSpace->getGray(&fillColor, gray); }
|
1043
|
+
void getStrokeGray(GfxGray *gray)
|
1044
|
+
{ strokeColorSpace->getGray(&strokeColor, gray); }
|
1045
|
+
void getFillRGB(GfxRGB *rgb)
|
1046
|
+
{ fillColorSpace->getRGB(&fillColor, rgb); }
|
1047
|
+
void getStrokeRGB(GfxRGB *rgb)
|
1048
|
+
{ strokeColorSpace->getRGB(&strokeColor, rgb); }
|
1049
|
+
void getFillCMYK(GfxCMYK *cmyk)
|
1050
|
+
{ fillColorSpace->getCMYK(&fillColor, cmyk); }
|
1051
|
+
void getStrokeCMYK(GfxCMYK *cmyk)
|
1052
|
+
{ strokeColorSpace->getCMYK(&strokeColor, cmyk); }
|
1053
|
+
GfxColorSpace *getFillColorSpace() { return fillColorSpace; }
|
1054
|
+
GfxColorSpace *getStrokeColorSpace() { return strokeColorSpace; }
|
1055
|
+
GfxPattern *getFillPattern() { return fillPattern; }
|
1056
|
+
GfxPattern *getStrokePattern() { return strokePattern; }
|
1057
|
+
GfxBlendMode getBlendMode() { return blendMode; }
|
1058
|
+
double getFillOpacity() { return fillOpacity; }
|
1059
|
+
double getStrokeOpacity() { return strokeOpacity; }
|
1060
|
+
GBool getFillOverprint() { return fillOverprint; }
|
1061
|
+
GBool getStrokeOverprint() { return strokeOverprint; }
|
1062
|
+
Function **getTransfer() { return transfer; }
|
1063
|
+
double getLineWidth() { return lineWidth; }
|
1064
|
+
void getLineDash(double **dash, int *length, double *start)
|
1065
|
+
{ *dash = lineDash; *length = lineDashLength; *start = lineDashStart; }
|
1066
|
+
int getFlatness() { return flatness; }
|
1067
|
+
int getLineJoin() { return lineJoin; }
|
1068
|
+
int getLineCap() { return lineCap; }
|
1069
|
+
double getMiterLimit() { return miterLimit; }
|
1070
|
+
GBool getStrokeAdjust() { return strokeAdjust; }
|
1071
|
+
GfxFont *getFont() { return font; }
|
1072
|
+
double getFontSize() { return fontSize; }
|
1073
|
+
double *getTextMat() { return textMat; }
|
1074
|
+
double getCharSpace() { return charSpace; }
|
1075
|
+
double getWordSpace() { return wordSpace; }
|
1076
|
+
double getHorizScaling() { return horizScaling; }
|
1077
|
+
double getLeading() { return leading; }
|
1078
|
+
double getRise() { return rise; }
|
1079
|
+
int getRender() { return render; }
|
1080
|
+
GfxPath *getPath() { return path; }
|
1081
|
+
void setPath(GfxPath *pathA);
|
1082
|
+
double getCurX() { return curX; }
|
1083
|
+
double getCurY() { return curY; }
|
1084
|
+
void getClipBBox(double *xMin, double *yMin, double *xMax, double *yMax)
|
1085
|
+
{ *xMin = clipXMin; *yMin = clipYMin; *xMax = clipXMax; *yMax = clipYMax; }
|
1086
|
+
void getUserClipBBox(double *xMin, double *yMin, double *xMax, double *yMax);
|
1087
|
+
double getLineX() { return lineX; }
|
1088
|
+
double getLineY() { return lineY; }
|
1089
|
+
|
1090
|
+
// Is there a current point/path?
|
1091
|
+
GBool isCurPt() { return path->isCurPt(); }
|
1092
|
+
GBool isPath() { return path->isPath(); }
|
1093
|
+
|
1094
|
+
// Transforms.
|
1095
|
+
void transform(double x1, double y1, double *x2, double *y2)
|
1096
|
+
{ *x2 = ctm[0] * x1 + ctm[2] * y1 + ctm[4];
|
1097
|
+
*y2 = ctm[1] * x1 + ctm[3] * y1 + ctm[5]; }
|
1098
|
+
void transformDelta(double x1, double y1, double *x2, double *y2)
|
1099
|
+
{ *x2 = ctm[0] * x1 + ctm[2] * y1;
|
1100
|
+
*y2 = ctm[1] * x1 + ctm[3] * y1; }
|
1101
|
+
void textTransform(double x1, double y1, double *x2, double *y2)
|
1102
|
+
{ *x2 = textMat[0] * x1 + textMat[2] * y1 + textMat[4];
|
1103
|
+
*y2 = textMat[1] * x1 + textMat[3] * y1 + textMat[5]; }
|
1104
|
+
void textTransformDelta(double x1, double y1, double *x2, double *y2)
|
1105
|
+
{ *x2 = textMat[0] * x1 + textMat[2] * y1;
|
1106
|
+
*y2 = textMat[1] * x1 + textMat[3] * y1; }
|
1107
|
+
double transformWidth(double w);
|
1108
|
+
double getTransformedLineWidth()
|
1109
|
+
{ return transformWidth(lineWidth); }
|
1110
|
+
double getTransformedFontSize();
|
1111
|
+
void getFontTransMat(double *m11, double *m12, double *m21, double *m22);
|
1112
|
+
|
1113
|
+
// Change state parameters.
|
1114
|
+
void setCTM(double a, double b, double c,
|
1115
|
+
double d, double e, double f);
|
1116
|
+
void concatCTM(double a, double b, double c,
|
1117
|
+
double d, double e, double f);
|
1118
|
+
void shiftCTM(double tx, double ty);
|
1119
|
+
void setFillColorSpace(GfxColorSpace *colorSpace);
|
1120
|
+
void setStrokeColorSpace(GfxColorSpace *colorSpace);
|
1121
|
+
void setFillColor(GfxColor *color) { fillColor = *color; }
|
1122
|
+
void setStrokeColor(GfxColor *color) { strokeColor = *color; }
|
1123
|
+
void setFillPattern(GfxPattern *pattern);
|
1124
|
+
void setStrokePattern(GfxPattern *pattern);
|
1125
|
+
void setBlendMode(GfxBlendMode mode) { blendMode = mode; }
|
1126
|
+
void setFillOpacity(double opac) { fillOpacity = opac; }
|
1127
|
+
void setStrokeOpacity(double opac) { strokeOpacity = opac; }
|
1128
|
+
void setFillOverprint(GBool op) { fillOverprint = op; }
|
1129
|
+
void setStrokeOverprint(GBool op) { strokeOverprint = op; }
|
1130
|
+
void setTransfer(Function **funcs);
|
1131
|
+
void setLineWidth(double width) { lineWidth = width; }
|
1132
|
+
void setLineDash(double *dash, int length, double start);
|
1133
|
+
void setFlatness(int flatness1) { flatness = flatness1; }
|
1134
|
+
void setLineJoin(int lineJoin1) { lineJoin = lineJoin1; }
|
1135
|
+
void setLineCap(int lineCap1) { lineCap = lineCap1; }
|
1136
|
+
void setMiterLimit(double limit) { miterLimit = limit; }
|
1137
|
+
void setStrokeAdjust(GBool sa) { strokeAdjust = sa; }
|
1138
|
+
void setFont(GfxFont *fontA, double fontSizeA)
|
1139
|
+
{ font = fontA; fontSize = fontSizeA; }
|
1140
|
+
void setTextMat(double a, double b, double c,
|
1141
|
+
double d, double e, double f)
|
1142
|
+
{ textMat[0] = a; textMat[1] = b; textMat[2] = c;
|
1143
|
+
textMat[3] = d; textMat[4] = e; textMat[5] = f; }
|
1144
|
+
void setCharSpace(double space)
|
1145
|
+
{ charSpace = space; }
|
1146
|
+
void setWordSpace(double space)
|
1147
|
+
{ wordSpace = space; }
|
1148
|
+
void setHorizScaling(double scale)
|
1149
|
+
{ horizScaling = 0.01 * scale; }
|
1150
|
+
void setLeading(double leadingA)
|
1151
|
+
{ leading = leadingA; }
|
1152
|
+
void setRise(double riseA)
|
1153
|
+
{ rise = riseA; }
|
1154
|
+
void setRender(int renderA)
|
1155
|
+
{ render = renderA; }
|
1156
|
+
|
1157
|
+
// Add to path.
|
1158
|
+
void moveTo(double x, double y)
|
1159
|
+
{ path->moveTo(curX = x, curY = y); }
|
1160
|
+
void lineTo(double x, double y)
|
1161
|
+
{ path->lineTo(curX = x, curY = y); }
|
1162
|
+
void curveTo(double x1, double y1, double x2, double y2,
|
1163
|
+
double x3, double y3)
|
1164
|
+
{ path->curveTo(x1, y1, x2, y2, curX = x3, curY = y3); }
|
1165
|
+
void closePath()
|
1166
|
+
{ path->close(); curX = path->getLastX(); curY = path->getLastY(); }
|
1167
|
+
void clearPath();
|
1168
|
+
|
1169
|
+
// Update clip region.
|
1170
|
+
void clip();
|
1171
|
+
void clipToStrokePath();
|
1172
|
+
|
1173
|
+
// Text position.
|
1174
|
+
void textSetPos(double tx, double ty) { lineX = tx; lineY = ty; }
|
1175
|
+
void textMoveTo(double tx, double ty)
|
1176
|
+
{ lineX = tx; lineY = ty; textTransform(tx, ty, &curX, &curY); }
|
1177
|
+
void textShift(double tx, double ty);
|
1178
|
+
void shift(double dx, double dy);
|
1179
|
+
|
1180
|
+
// Push/pop GfxState on/off stack.
|
1181
|
+
GfxState *save();
|
1182
|
+
GfxState *restore();
|
1183
|
+
GBool hasSaves() { return saved != NULL; }
|
1184
|
+
|
1185
|
+
// Misc
|
1186
|
+
GBool parseBlendMode(Object *obj, GfxBlendMode *mode);
|
1187
|
+
|
1188
|
+
private:
|
1189
|
+
|
1190
|
+
double hDPI, vDPI; // resolution
|
1191
|
+
double ctm[6]; // coord transform matrix
|
1192
|
+
double px1, py1, px2, py2; // page corners (user coords)
|
1193
|
+
double pageWidth, pageHeight; // page size (pixels)
|
1194
|
+
int rotate; // page rotation angle
|
1195
|
+
|
1196
|
+
GfxColorSpace *fillColorSpace; // fill color space
|
1197
|
+
GfxColorSpace *strokeColorSpace; // stroke color space
|
1198
|
+
GfxColor fillColor; // fill color
|
1199
|
+
GfxColor strokeColor; // stroke color
|
1200
|
+
GfxPattern *fillPattern; // fill pattern
|
1201
|
+
GfxPattern *strokePattern; // stroke pattern
|
1202
|
+
GfxBlendMode blendMode; // transparency blend mode
|
1203
|
+
double fillOpacity; // fill opacity
|
1204
|
+
double strokeOpacity; // stroke opacity
|
1205
|
+
GBool fillOverprint; // fill overprint
|
1206
|
+
GBool strokeOverprint; // stroke overprint
|
1207
|
+
Function *transfer[4]; // transfer function (entries may be: all
|
1208
|
+
// NULL = identity; last three NULL =
|
1209
|
+
// single function; all four non-NULL =
|
1210
|
+
// R,G,B,gray functions)
|
1211
|
+
|
1212
|
+
double lineWidth; // line width
|
1213
|
+
double *lineDash; // line dash
|
1214
|
+
int lineDashLength;
|
1215
|
+
double lineDashStart;
|
1216
|
+
int flatness; // curve flatness
|
1217
|
+
int lineJoin; // line join style
|
1218
|
+
int lineCap; // line cap style
|
1219
|
+
double miterLimit; // line miter limit
|
1220
|
+
GBool strokeAdjust; // stroke adjustment
|
1221
|
+
|
1222
|
+
GfxFont *font; // font
|
1223
|
+
double fontSize; // font size
|
1224
|
+
double textMat[6]; // text matrix
|
1225
|
+
double charSpace; // character spacing
|
1226
|
+
double wordSpace; // word spacing
|
1227
|
+
double horizScaling; // horizontal scaling
|
1228
|
+
double leading; // text leading
|
1229
|
+
double rise; // text rise
|
1230
|
+
int render; // text rendering mode
|
1231
|
+
|
1232
|
+
GfxPath *path; // array of path elements
|
1233
|
+
double curX, curY; // current point (user coords)
|
1234
|
+
double lineX, lineY; // start of current text line (text coords)
|
1235
|
+
|
1236
|
+
double clipXMin, clipYMin, // bounding box for clip region
|
1237
|
+
clipXMax, clipYMax;
|
1238
|
+
|
1239
|
+
GfxState *saved; // next GfxState on stack
|
1240
|
+
|
1241
|
+
GfxState(GfxState *state);
|
1242
|
+
};
|
1243
|
+
|
1244
|
+
#endif
|