pdf2json 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (473) hide show
  1. data/README.markdown +9 -0
  2. data/bin/.gitkeep +0 -0
  3. data/ext/extconf.rb +30 -0
  4. data/lib/pdf2json.rb +8 -0
  5. data/pdf2json-0.52-source/AUTHORS +24 -0
  6. data/pdf2json-0.52-source/CHANGES +11 -0
  7. data/pdf2json-0.52-source/Makefile +84 -0
  8. data/pdf2json-0.52-source/Makefile.in +84 -0
  9. data/pdf2json-0.52-source/aclocal.m4 +274 -0
  10. data/pdf2json-0.52-source/aconf-win32.h +86 -0
  11. data/pdf2json-0.52-source/aconf.h +42 -0
  12. data/pdf2json-0.52-source/aconf.h.in +41 -0
  13. data/pdf2json-0.52-source/autom4te.cache/output.0 +6908 -0
  14. data/pdf2json-0.52-source/autom4te.cache/requests +76 -0
  15. data/pdf2json-0.52-source/autom4te.cache/traces.0 +466 -0
  16. data/pdf2json-0.52-source/config.log +1259 -0
  17. data/pdf2json-0.52-source/config.status +1050 -0
  18. data/pdf2json-0.52-source/configure +6908 -0
  19. data/pdf2json-0.52-source/configure.ac +93 -0
  20. data/pdf2json-0.52-source/doc/pdffonts.1 +130 -0
  21. data/pdf2json-0.52-source/doc/pdffonts.cat +107 -0
  22. data/pdf2json-0.52-source/doc/pdffonts.hlp +117 -0
  23. data/pdf2json-0.52-source/doc/pdfimages.1 +102 -0
  24. data/pdf2json-0.52-source/doc/pdfimages.cat +92 -0
  25. data/pdf2json-0.52-source/doc/pdfimages.hlp +101 -0
  26. data/pdf2json-0.52-source/doc/pdfinfo.1 +158 -0
  27. data/pdf2json-0.52-source/doc/pdfinfo.cat +119 -0
  28. data/pdf2json-0.52-source/doc/pdfinfo.hlp +129 -0
  29. data/pdf2json-0.52-source/doc/pdftoppm.1 +115 -0
  30. data/pdf2json-0.52-source/doc/pdftoppm.cat +105 -0
  31. data/pdf2json-0.52-source/doc/pdftoppm.hlp +114 -0
  32. data/pdf2json-0.52-source/doc/pdftops.1 +229 -0
  33. data/pdf2json-0.52-source/doc/pdftops.cat +221 -0
  34. data/pdf2json-0.52-source/doc/pdftops.hlp +231 -0
  35. data/pdf2json-0.52-source/doc/pdftotext.1 +137 -0
  36. data/pdf2json-0.52-source/doc/pdftotext.cat +120 -0
  37. data/pdf2json-0.52-source/doc/pdftotext.hlp +133 -0
  38. data/pdf2json-0.52-source/doc/sample-xpdfrc +91 -0
  39. data/pdf2json-0.52-source/doc/xpdf.1 +513 -0
  40. data/pdf2json-0.52-source/doc/xpdf.cat +476 -0
  41. data/pdf2json-0.52-source/doc/xpdf.hlp +489 -0
  42. data/pdf2json-0.52-source/doc/xpdfrc.5 +480 -0
  43. data/pdf2json-0.52-source/doc/xpdfrc.cat +474 -0
  44. data/pdf2json-0.52-source/doc/xpdfrc.hlp +479 -0
  45. data/pdf2json-0.52-source/fofi/.DS_Store +0 -0
  46. data/pdf2json-0.52-source/fofi/FoFiBase.cc +156 -0
  47. data/pdf2json-0.52-source/fofi/FoFiBase.h +57 -0
  48. data/pdf2json-0.52-source/fofi/FoFiBase.o +0 -0
  49. data/pdf2json-0.52-source/fofi/FoFiEncodings.cc +994 -0
  50. data/pdf2json-0.52-source/fofi/FoFiEncodings.h +36 -0
  51. data/pdf2json-0.52-source/fofi/FoFiEncodings.o +0 -0
  52. data/pdf2json-0.52-source/fofi/FoFiTrueType.cc +2027 -0
  53. data/pdf2json-0.52-source/fofi/FoFiTrueType.h +174 -0
  54. data/pdf2json-0.52-source/fofi/FoFiTrueType.o +0 -0
  55. data/pdf2json-0.52-source/fofi/FoFiType1.cc +252 -0
  56. data/pdf2json-0.52-source/fofi/FoFiType1.h +59 -0
  57. data/pdf2json-0.52-source/fofi/FoFiType1.o +0 -0
  58. data/pdf2json-0.52-source/fofi/FoFiType1C.cc +2603 -0
  59. data/pdf2json-0.52-source/fofi/FoFiType1C.h +233 -0
  60. data/pdf2json-0.52-source/fofi/FoFiType1C.o +0 -0
  61. data/pdf2json-0.52-source/fofi/Makefile +70 -0
  62. data/pdf2json-0.52-source/fofi/Makefile.dep +0 -0
  63. data/pdf2json-0.52-source/fofi/Makefile.in +70 -0
  64. data/pdf2json-0.52-source/fofi/libfofi.a +0 -0
  65. data/pdf2json-0.52-source/fofi/vms_make.com +0 -0
  66. data/pdf2json-0.52-source/freetype.win32/.DS_Store +0 -0
  67. data/pdf2json-0.52-source/freetype.win32/include/.DS_Store +0 -0
  68. data/pdf2json-0.52-source/freetype.win32/include/freetype/config/ftconfig.h +528 -0
  69. data/pdf2json-0.52-source/freetype.win32/include/freetype/config/ftheader.h +780 -0
  70. data/pdf2json-0.52-source/freetype.win32/include/freetype/config/ftmodule.h +32 -0
  71. data/pdf2json-0.52-source/freetype.win32/include/freetype/config/ftoption.h +733 -0
  72. data/pdf2json-0.52-source/freetype.win32/include/freetype/config/ftstdlib.h +173 -0
  73. data/pdf2json-0.52-source/freetype.win32/include/freetype/freetype.h +3919 -0
  74. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftadvanc.h +179 -0
  75. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftbbox.h +94 -0
  76. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftbdf.h +209 -0
  77. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftbitmap.h +227 -0
  78. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftcache.h +1128 -0
  79. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftchapters.h +103 -0
  80. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftcid.h +166 -0
  81. data/pdf2json-0.52-source/freetype.win32/include/freetype/fterrdef.h +244 -0
  82. data/pdf2json-0.52-source/freetype.win32/include/freetype/fterrors.h +206 -0
  83. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftgasp.h +120 -0
  84. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftglyph.h +613 -0
  85. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftgxval.h +358 -0
  86. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftgzip.h +102 -0
  87. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftimage.h +1313 -0
  88. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftincrem.h +353 -0
  89. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftlcdfil.h +213 -0
  90. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftlist.h +277 -0
  91. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftlzw.h +99 -0
  92. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftmac.h +274 -0
  93. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftmm.h +378 -0
  94. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftmodapi.h +483 -0
  95. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftmoderr.h +155 -0
  96. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftotval.h +203 -0
  97. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftoutln.h +537 -0
  98. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftpfr.h +172 -0
  99. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftrender.h +230 -0
  100. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftsizes.h +159 -0
  101. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftsnames.h +200 -0
  102. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftstroke.h +716 -0
  103. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftsynth.h +80 -0
  104. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftsystem.h +347 -0
  105. data/pdf2json-0.52-source/freetype.win32/include/freetype/fttrigon.h +350 -0
  106. data/pdf2json-0.52-source/freetype.win32/include/freetype/fttypes.h +588 -0
  107. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftwinfnt.h +274 -0
  108. data/pdf2json-0.52-source/freetype.win32/include/freetype/ftxf86.h +83 -0
  109. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/autohint.h +231 -0
  110. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftcalc.h +179 -0
  111. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftdebug.h +250 -0
  112. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftdriver.h +422 -0
  113. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftgloadr.h +168 -0
  114. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftmemory.h +380 -0
  115. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftobjs.h +1428 -0
  116. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftpic.h +67 -0
  117. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftrfork.h +196 -0
  118. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftserv.h +620 -0
  119. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftstream.h +539 -0
  120. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/fttrace.h +139 -0
  121. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/ftvalid.h +150 -0
  122. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/internal.h +51 -0
  123. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/pcftypes.h +56 -0
  124. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/psaux.h +873 -0
  125. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/pshints.h +712 -0
  126. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svbdf.h +77 -0
  127. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svcid.h +83 -0
  128. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svgldict.h +82 -0
  129. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svgxval.h +72 -0
  130. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svkern.h +51 -0
  131. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svmm.h +104 -0
  132. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svotval.h +55 -0
  133. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svpfr.h +66 -0
  134. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svpostnm.h +79 -0
  135. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svpscmap.h +164 -0
  136. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svpsinfo.h +92 -0
  137. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svsfnt.h +102 -0
  138. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svttcmap.h +106 -0
  139. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svtteng.h +53 -0
  140. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svttglyf.h +67 -0
  141. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svwinfnt.h +50 -0
  142. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/services/svxf86nm.h +55 -0
  143. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/sfnt.h +897 -0
  144. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/t1types.h +270 -0
  145. data/pdf2json-0.52-source/freetype.win32/include/freetype/internal/tttypes.h +1543 -0
  146. data/pdf2json-0.52-source/freetype.win32/include/freetype/t1tables.h +504 -0
  147. data/pdf2json-0.52-source/freetype.win32/include/freetype/ttnameid.h +1247 -0
  148. data/pdf2json-0.52-source/freetype.win32/include/freetype/tttables.h +759 -0
  149. data/pdf2json-0.52-source/freetype.win32/include/freetype/tttags.h +107 -0
  150. data/pdf2json-0.52-source/freetype.win32/include/freetype/ttunpat.h +59 -0
  151. data/pdf2json-0.52-source/freetype.win32/include/ft2build.h +39 -0
  152. data/pdf2json-0.52-source/freetype.win32/lib/freetype_a.lib +0 -0
  153. data/pdf2json-0.52-source/goo/.DS_Store +0 -0
  154. data/pdf2json-0.52-source/goo/FixedPoint.cc +118 -0
  155. data/pdf2json-0.52-source/goo/FixedPoint.h +155 -0
  156. data/pdf2json-0.52-source/goo/FixedPoint.o +0 -0
  157. data/pdf2json-0.52-source/goo/GHash.cc +380 -0
  158. data/pdf2json-0.52-source/goo/GHash.h +78 -0
  159. data/pdf2json-0.52-source/goo/GHash.o +0 -0
  160. data/pdf2json-0.52-source/goo/GList.cc +97 -0
  161. data/pdf2json-0.52-source/goo/GList.h +96 -0
  162. data/pdf2json-0.52-source/goo/GList.o +0 -0
  163. data/pdf2json-0.52-source/goo/GMutex.h +49 -0
  164. data/pdf2json-0.52-source/goo/GString.cc +724 -0
  165. data/pdf2json-0.52-source/goo/GString.cc.fixed +718 -0
  166. data/pdf2json-0.52-source/goo/GString.h +136 -0
  167. data/pdf2json-0.52-source/goo/GString.o +0 -0
  168. data/pdf2json-0.52-source/goo/ImgWriter.o +0 -0
  169. data/pdf2json-0.52-source/goo/JpegWriter.o +0 -0
  170. data/pdf2json-0.52-source/goo/Makefile +72 -0
  171. data/pdf2json-0.52-source/goo/Makefile.dep +0 -0
  172. data/pdf2json-0.52-source/goo/Makefile.in +72 -0
  173. data/pdf2json-0.52-source/goo/PNGWriter.o +0 -0
  174. data/pdf2json-0.52-source/goo/gfile.cc +731 -0
  175. data/pdf2json-0.52-source/goo/gfile.h +138 -0
  176. data/pdf2json-0.52-source/goo/gfile.o +0 -0
  177. data/pdf2json-0.52-source/goo/gmem.cc +264 -0
  178. data/pdf2json-0.52-source/goo/gmem.h +79 -0
  179. data/pdf2json-0.52-source/goo/gmem.o +0 -0
  180. data/pdf2json-0.52-source/goo/gmempp.cc +32 -0
  181. data/pdf2json-0.52-source/goo/gmempp.o +0 -0
  182. data/pdf2json-0.52-source/goo/gtypes.h +29 -0
  183. data/pdf2json-0.52-source/goo/libGoo.a +0 -0
  184. data/pdf2json-0.52-source/goo/parseargs.c +190 -0
  185. data/pdf2json-0.52-source/goo/parseargs.h +71 -0
  186. data/pdf2json-0.52-source/goo/parseargs.o +0 -0
  187. data/pdf2json-0.52-source/goo/vms_directory.c +214 -0
  188. data/pdf2json-0.52-source/goo/vms_dirent.h +67 -0
  189. data/pdf2json-0.52-source/goo/vms_make.com +82 -0
  190. data/pdf2json-0.52-source/goo/vms_sys_dirent.h +54 -0
  191. data/pdf2json-0.52-source/goo/vms_unix_time.h +102 -0
  192. data/pdf2json-0.52-source/goo/vms_unix_times.c +42 -0
  193. data/pdf2json-0.52-source/goo/vms_unlink.c +22 -0
  194. data/pdf2json-0.52-source/ms_make.bat +199 -0
  195. data/pdf2json-0.52-source/splash/.DS_Store +0 -0
  196. data/pdf2json-0.52-source/splash/Makefile +103 -0
  197. data/pdf2json-0.52-source/splash/Makefile.dep +0 -0
  198. data/pdf2json-0.52-source/splash/Makefile.in +103 -0
  199. data/pdf2json-0.52-source/splash/Splash.cc +3310 -0
  200. data/pdf2json-0.52-source/splash/Splash.h +293 -0
  201. data/pdf2json-0.52-source/splash/Splash.o +0 -0
  202. data/pdf2json-0.52-source/splash/SplashBitmap.cc +188 -0
  203. data/pdf2json-0.52-source/splash/SplashBitmap.h +64 -0
  204. data/pdf2json-0.52-source/splash/SplashBitmap.o +0 -0
  205. data/pdf2json-0.52-source/splash/SplashClip.cc +382 -0
  206. data/pdf2json-0.52-source/splash/SplashClip.h +107 -0
  207. data/pdf2json-0.52-source/splash/SplashClip.o +0 -0
  208. data/pdf2json-0.52-source/splash/SplashErrorCodes.h +32 -0
  209. data/pdf2json-0.52-source/splash/SplashFTFont.cc +357 -0
  210. data/pdf2json-0.52-source/splash/SplashFTFont.h +58 -0
  211. data/pdf2json-0.52-source/splash/SplashFTFont.o +0 -0
  212. data/pdf2json-0.52-source/splash/SplashFTFontEngine.cc +179 -0
  213. data/pdf2json-0.52-source/splash/SplashFTFontEngine.h +65 -0
  214. data/pdf2json-0.52-source/splash/SplashFTFontEngine.o +0 -0
  215. data/pdf2json-0.52-source/splash/SplashFTFontFile.cc +114 -0
  216. data/pdf2json-0.52-source/splash/SplashFTFontFile.h +73 -0
  217. data/pdf2json-0.52-source/splash/SplashFTFontFile.o +0 -0
  218. data/pdf2json-0.52-source/splash/SplashFont.cc +176 -0
  219. data/pdf2json-0.52-source/splash/SplashFont.h +104 -0
  220. data/pdf2json-0.52-source/splash/SplashFont.o +0 -0
  221. data/pdf2json-0.52-source/splash/SplashFontEngine.cc +317 -0
  222. data/pdf2json-0.52-source/splash/SplashFontEngine.h +91 -0
  223. data/pdf2json-0.52-source/splash/SplashFontEngine.o +0 -0
  224. data/pdf2json-0.52-source/splash/SplashFontFile.cc +55 -0
  225. data/pdf2json-0.52-source/splash/SplashFontFile.h +60 -0
  226. data/pdf2json-0.52-source/splash/SplashFontFile.o +0 -0
  227. data/pdf2json-0.52-source/splash/SplashFontFileID.cc +23 -0
  228. data/pdf2json-0.52-source/splash/SplashFontFileID.h +30 -0
  229. data/pdf2json-0.52-source/splash/SplashFontFileID.o +0 -0
  230. data/pdf2json-0.52-source/splash/SplashGlyphBitmap.h +26 -0
  231. data/pdf2json-0.52-source/splash/SplashMath.h +89 -0
  232. data/pdf2json-0.52-source/splash/SplashPath.cc +184 -0
  233. data/pdf2json-0.52-source/splash/SplashPath.h +121 -0
  234. data/pdf2json-0.52-source/splash/SplashPath.o +0 -0
  235. data/pdf2json-0.52-source/splash/SplashPattern.cc +40 -0
  236. data/pdf2json-0.52-source/splash/SplashPattern.h +65 -0
  237. data/pdf2json-0.52-source/splash/SplashPattern.o +0 -0
  238. data/pdf2json-0.52-source/splash/SplashScreen.cc +383 -0
  239. data/pdf2json-0.52-source/splash/SplashScreen.h +56 -0
  240. data/pdf2json-0.52-source/splash/SplashScreen.o +0 -0
  241. data/pdf2json-0.52-source/splash/SplashState.cc +165 -0
  242. data/pdf2json-0.52-source/splash/SplashState.h +103 -0
  243. data/pdf2json-0.52-source/splash/SplashState.o +0 -0
  244. data/pdf2json-0.52-source/splash/SplashT1Font.cc +287 -0
  245. data/pdf2json-0.52-source/splash/SplashT1Font.h +57 -0
  246. data/pdf2json-0.52-source/splash/SplashT1Font.o +0 -0
  247. data/pdf2json-0.52-source/splash/SplashT1FontEngine.cc +124 -0
  248. data/pdf2json-0.52-source/splash/SplashT1FontEngine.h +53 -0
  249. data/pdf2json-0.52-source/splash/SplashT1FontEngine.o +0 -0
  250. data/pdf2json-0.52-source/splash/SplashT1FontFile.cc +97 -0
  251. data/pdf2json-0.52-source/splash/SplashT1FontFile.h +58 -0
  252. data/pdf2json-0.52-source/splash/SplashT1FontFile.o +0 -0
  253. data/pdf2json-0.52-source/splash/SplashTypes.h +132 -0
  254. data/pdf2json-0.52-source/splash/SplashXPath.cc +438 -0
  255. data/pdf2json-0.52-source/splash/SplashXPath.h +100 -0
  256. data/pdf2json-0.52-source/splash/SplashXPath.o +0 -0
  257. data/pdf2json-0.52-source/splash/SplashXPathScanner.cc +428 -0
  258. data/pdf2json-0.52-source/splash/SplashXPathScanner.h +87 -0
  259. data/pdf2json-0.52-source/splash/SplashXPathScanner.o +0 -0
  260. data/pdf2json-0.52-source/splash/libsplash.a +0 -0
  261. data/pdf2json-0.52-source/splash/vms_make.com +0 -0
  262. data/pdf2json-0.52-source/src/.DS_Store +0 -0
  263. data/pdf2json-0.52-source/src/GVector.h +101 -0
  264. data/pdf2json-0.52-source/src/ImgOutputDev.cc +1243 -0
  265. data/pdf2json-0.52-source/src/ImgOutputDev.h +307 -0
  266. data/pdf2json-0.52-source/src/ImgOutputDev.o +0 -0
  267. data/pdf2json-0.52-source/src/Makefile +68 -0
  268. data/pdf2json-0.52-source/src/Makefile.in +68 -0
  269. data/pdf2json-0.52-source/src/XmlFonts.cc +367 -0
  270. data/pdf2json-0.52-source/src/XmlFonts.h +91 -0
  271. data/pdf2json-0.52-source/src/XmlFonts.o +0 -0
  272. data/pdf2json-0.52-source/src/XmlLinks.cc +101 -0
  273. data/pdf2json-0.52-source/src/XmlLinks.h +54 -0
  274. data/pdf2json-0.52-source/src/XmlLinks.o +0 -0
  275. data/pdf2json-0.52-source/src/pdf2json +0 -0
  276. data/pdf2json-0.52-source/src/pdf2json.cc +343 -0
  277. data/pdf2json-0.52-source/src/pdf2json.o +0 -0
  278. data/pdf2json-0.52-source/src/pdf2xml.dtd +22 -0
  279. data/pdf2json-0.52-source/src/pdf2xmljson.dtd +9 -0
  280. data/pdf2json-0.52-source/xpdf/.DS_Store +0 -0
  281. data/pdf2json-0.52-source/xpdf/Annot.cc +1556 -0
  282. data/pdf2json-0.52-source/xpdf/Annot.h +142 -0
  283. data/pdf2json-0.52-source/xpdf/Annot.o +0 -0
  284. data/pdf2json-0.52-source/xpdf/Array.cc +73 -0
  285. data/pdf2json-0.52-source/xpdf/Array.h +58 -0
  286. data/pdf2json-0.52-source/xpdf/Array.o +0 -0
  287. data/pdf2json-0.52-source/xpdf/BuiltinFont.cc +65 -0
  288. data/pdf2json-0.52-source/xpdf/BuiltinFont.h +57 -0
  289. data/pdf2json-0.52-source/xpdf/BuiltinFont.o +0 -0
  290. data/pdf2json-0.52-source/xpdf/BuiltinFontTables.cc +4284 -0
  291. data/pdf2json-0.52-source/xpdf/BuiltinFontTables.h +23 -0
  292. data/pdf2json-0.52-source/xpdf/BuiltinFontTables.o +0 -0
  293. data/pdf2json-0.52-source/xpdf/CMap.cc +408 -0
  294. data/pdf2json-0.52-source/xpdf/CMap.h +102 -0
  295. data/pdf2json-0.52-source/xpdf/CMap.o +0 -0
  296. data/pdf2json-0.52-source/xpdf/Catalog.cc +374 -0
  297. data/pdf2json-0.52-source/xpdf/Catalog.h +97 -0
  298. data/pdf2json-0.52-source/xpdf/Catalog.o +0 -0
  299. data/pdf2json-0.52-source/xpdf/CharCodeToUnicode.cc +540 -0
  300. data/pdf2json-0.52-source/xpdf/CharCodeToUnicode.h +117 -0
  301. data/pdf2json-0.52-source/xpdf/CharCodeToUnicode.o +0 -0
  302. data/pdf2json-0.52-source/xpdf/CharTypes.h +24 -0
  303. data/pdf2json-0.52-source/xpdf/CompactFontTables.h +464 -0
  304. data/pdf2json-0.52-source/xpdf/CoreOutputDev.cc +61 -0
  305. data/pdf2json-0.52-source/xpdf/CoreOutputDev.h +61 -0
  306. data/pdf2json-0.52-source/xpdf/Decrypt.cc +776 -0
  307. data/pdf2json-0.52-source/xpdf/Decrypt.h +95 -0
  308. data/pdf2json-0.52-source/xpdf/Decrypt.o +0 -0
  309. data/pdf2json-0.52-source/xpdf/Dict.cc +95 -0
  310. data/pdf2json-0.52-source/xpdf/Dict.h +77 -0
  311. data/pdf2json-0.52-source/xpdf/Dict.o +0 -0
  312. data/pdf2json-0.52-source/xpdf/Error.cc +38 -0
  313. data/pdf2json-0.52-source/xpdf/Error.h +23 -0
  314. data/pdf2json-0.52-source/xpdf/Error.o +0 -0
  315. data/pdf2json-0.52-source/xpdf/ErrorCodes.h +36 -0
  316. data/pdf2json-0.52-source/xpdf/FontEncodingTables.cc +1824 -0
  317. data/pdf2json-0.52-source/xpdf/FontEncodingTables.h +20 -0
  318. data/pdf2json-0.52-source/xpdf/FontEncodingTables.o +0 -0
  319. data/pdf2json-0.52-source/xpdf/Function.cc +1573 -0
  320. data/pdf2json-0.52-source/xpdf/Function.h +229 -0
  321. data/pdf2json-0.52-source/xpdf/Function.o +0 -0
  322. data/pdf2json-0.52-source/xpdf/Gfx.cc +4187 -0
  323. data/pdf2json-0.52-source/xpdf/Gfx.h +312 -0
  324. data/pdf2json-0.52-source/xpdf/Gfx.o +0 -0
  325. data/pdf2json-0.52-source/xpdf/GfxFont.cc +1568 -0
  326. data/pdf2json-0.52-source/xpdf/GfxFont.h +320 -0
  327. data/pdf2json-0.52-source/xpdf/GfxFont.o +0 -0
  328. data/pdf2json-0.52-source/xpdf/GfxState.cc +4137 -0
  329. data/pdf2json-0.52-source/xpdf/GfxState.h +1244 -0
  330. data/pdf2json-0.52-source/xpdf/GfxState.o +0 -0
  331. data/pdf2json-0.52-source/xpdf/GlobalParams.cc +2924 -0
  332. data/pdf2json-0.52-source/xpdf/GlobalParams.cc.old +2908 -0
  333. data/pdf2json-0.52-source/xpdf/GlobalParams.h +466 -0
  334. data/pdf2json-0.52-source/xpdf/GlobalParams.h.old +463 -0
  335. data/pdf2json-0.52-source/xpdf/GlobalParams.o +0 -0
  336. data/pdf2json-0.52-source/xpdf/ImageOutputDev.cc +195 -0
  337. data/pdf2json-0.52-source/xpdf/ImageOutputDev.h +76 -0
  338. data/pdf2json-0.52-source/xpdf/ImageOutputDev.o +0 -0
  339. data/pdf2json-0.52-source/xpdf/JArithmeticDecoder.cc +322 -0
  340. data/pdf2json-0.52-source/xpdf/JArithmeticDecoder.h +109 -0
  341. data/pdf2json-0.52-source/xpdf/JArithmeticDecoder.o +0 -0
  342. data/pdf2json-0.52-source/xpdf/JBIG2Stream.cc +3413 -0
  343. data/pdf2json-0.52-source/xpdf/JBIG2Stream.h +145 -0
  344. data/pdf2json-0.52-source/xpdf/JBIG2Stream.o +0 -0
  345. data/pdf2json-0.52-source/xpdf/JPXStream.cc +3144 -0
  346. data/pdf2json-0.52-source/xpdf/JPXStream.h +351 -0
  347. data/pdf2json-0.52-source/xpdf/JPXStream.o +0 -0
  348. data/pdf2json-0.52-source/xpdf/Lexer.cc +485 -0
  349. data/pdf2json-0.52-source/xpdf/Lexer.h +80 -0
  350. data/pdf2json-0.52-source/xpdf/Lexer.o +0 -0
  351. data/pdf2json-0.52-source/xpdf/Link.cc +806 -0
  352. data/pdf2json-0.52-source/xpdf/Link.cc.old +784 -0
  353. data/pdf2json-0.52-source/xpdf/Link.h +415 -0
  354. data/pdf2json-0.52-source/xpdf/Link.h.old +369 -0
  355. data/pdf2json-0.52-source/xpdf/Link.o +0 -0
  356. data/pdf2json-0.52-source/xpdf/Makefile +232 -0
  357. data/pdf2json-0.52-source/xpdf/Makefile.dep +0 -0
  358. data/pdf2json-0.52-source/xpdf/Makefile.in +232 -0
  359. data/pdf2json-0.52-source/xpdf/NameToCharCode.cc +116 -0
  360. data/pdf2json-0.52-source/xpdf/NameToCharCode.h +42 -0
  361. data/pdf2json-0.52-source/xpdf/NameToCharCode.o +0 -0
  362. data/pdf2json-0.52-source/xpdf/NameToUnicodeTable.h +1097 -0
  363. data/pdf2json-0.52-source/xpdf/Object.cc +231 -0
  364. data/pdf2json-0.52-source/xpdf/Object.h +303 -0
  365. data/pdf2json-0.52-source/xpdf/Object.o +0 -0
  366. data/pdf2json-0.52-source/xpdf/Outline.cc +151 -0
  367. data/pdf2json-0.52-source/xpdf/Outline.h +76 -0
  368. data/pdf2json-0.52-source/xpdf/Outline.o +0 -0
  369. data/pdf2json-0.52-source/xpdf/OutputDev.cc +131 -0
  370. data/pdf2json-0.52-source/xpdf/OutputDev.h +253 -0
  371. data/pdf2json-0.52-source/xpdf/OutputDev.o +0 -0
  372. data/pdf2json-0.52-source/xpdf/PDFCore.cc +2044 -0
  373. data/pdf2json-0.52-source/xpdf/PDFCore.h +321 -0
  374. data/pdf2json-0.52-source/xpdf/PDFDoc.cc +404 -0
  375. data/pdf2json-0.52-source/xpdf/PDFDoc.h +183 -0
  376. data/pdf2json-0.52-source/xpdf/PDFDoc.o +0 -0
  377. data/pdf2json-0.52-source/xpdf/PDFDocEncoding.cc +44 -0
  378. data/pdf2json-0.52-source/xpdf/PDFDocEncoding.h +16 -0
  379. data/pdf2json-0.52-source/xpdf/PDFDocEncoding.o +0 -0
  380. data/pdf2json-0.52-source/xpdf/PSOutputDev.cc +6224 -0
  381. data/pdf2json-0.52-source/xpdf/PSOutputDev.h +395 -0
  382. data/pdf2json-0.52-source/xpdf/PSOutputDev.o +0 -0
  383. data/pdf2json-0.52-source/xpdf/PSTokenizer.cc +135 -0
  384. data/pdf2json-0.52-source/xpdf/PSTokenizer.h +41 -0
  385. data/pdf2json-0.52-source/xpdf/PSTokenizer.o +0 -0
  386. data/pdf2json-0.52-source/xpdf/Page.cc +454 -0
  387. data/pdf2json-0.52-source/xpdf/Page.h +187 -0
  388. data/pdf2json-0.52-source/xpdf/Page.o +0 -0
  389. data/pdf2json-0.52-source/xpdf/Parser.cc +227 -0
  390. data/pdf2json-0.52-source/xpdf/Parser.h +59 -0
  391. data/pdf2json-0.52-source/xpdf/Parser.o +0 -0
  392. data/pdf2json-0.52-source/xpdf/PreScanOutputDev.cc +257 -0
  393. data/pdf2json-0.52-source/xpdf/PreScanOutputDev.h +130 -0
  394. data/pdf2json-0.52-source/xpdf/PreScanOutputDev.o +0 -0
  395. data/pdf2json-0.52-source/xpdf/SecurityHandler.cc +390 -0
  396. data/pdf2json-0.52-source/xpdf/SecurityHandler.h +160 -0
  397. data/pdf2json-0.52-source/xpdf/SecurityHandler.o +0 -0
  398. data/pdf2json-0.52-source/xpdf/SplashOutputDev.cc +2845 -0
  399. data/pdf2json-0.52-source/xpdf/SplashOutputDev.h +247 -0
  400. data/pdf2json-0.52-source/xpdf/SplashOutputDev.o +0 -0
  401. data/pdf2json-0.52-source/xpdf/Stream-CCITT.h +459 -0
  402. data/pdf2json-0.52-source/xpdf/Stream.cc +4627 -0
  403. data/pdf2json-0.52-source/xpdf/Stream.h +858 -0
  404. data/pdf2json-0.52-source/xpdf/Stream.o +0 -0
  405. data/pdf2json-0.52-source/xpdf/TextOutputDev.cc +4090 -0
  406. data/pdf2json-0.52-source/xpdf/TextOutputDev.h +661 -0
  407. data/pdf2json-0.52-source/xpdf/TextOutputDev.o +0 -0
  408. data/pdf2json-0.52-source/xpdf/UTF8.h +56 -0
  409. data/pdf2json-0.52-source/xpdf/UnicodeMap.cc +302 -0
  410. data/pdf2json-0.52-source/xpdf/UnicodeMap.cc.old +293 -0
  411. data/pdf2json-0.52-source/xpdf/UnicodeMap.h +135 -0
  412. data/pdf2json-0.52-source/xpdf/UnicodeMap.h.old +123 -0
  413. data/pdf2json-0.52-source/xpdf/UnicodeMap.o +0 -0
  414. data/pdf2json-0.52-source/xpdf/UnicodeMapTables.h +361 -0
  415. data/pdf2json-0.52-source/xpdf/UnicodeTypeTable.cc +949 -0
  416. data/pdf2json-0.52-source/xpdf/UnicodeTypeTable.h +20 -0
  417. data/pdf2json-0.52-source/xpdf/UnicodeTypeTable.o +0 -0
  418. data/pdf2json-0.52-source/xpdf/XPDFApp.cc +447 -0
  419. data/pdf2json-0.52-source/xpdf/XPDFApp.h +114 -0
  420. data/pdf2json-0.52-source/xpdf/XPDFCore.cc +1655 -0
  421. data/pdf2json-0.52-source/xpdf/XPDFCore.h +251 -0
  422. data/pdf2json-0.52-source/xpdf/XPDFTree.cc +931 -0
  423. data/pdf2json-0.52-source/xpdf/XPDFTree.h +45 -0
  424. data/pdf2json-0.52-source/xpdf/XPDFTreeP.h +87 -0
  425. data/pdf2json-0.52-source/xpdf/XPDFViewer.cc +3488 -0
  426. data/pdf2json-0.52-source/xpdf/XPDFViewer.h +352 -0
  427. data/pdf2json-0.52-source/xpdf/XRef.cc +896 -0
  428. data/pdf2json-0.52-source/xpdf/XRef.h +133 -0
  429. data/pdf2json-0.52-source/xpdf/XRef.o +0 -0
  430. data/pdf2json-0.52-source/xpdf/XpdfPluginAPI.cc +262 -0
  431. data/pdf2json-0.52-source/xpdf/XpdfPluginAPI.h +341 -0
  432. data/pdf2json-0.52-source/xpdf/XpdfPluginAPI.o +0 -0
  433. data/pdf2json-0.52-source/xpdf/about-text.h +48 -0
  434. data/pdf2json-0.52-source/xpdf/about.xbm +6 -0
  435. data/pdf2json-0.52-source/xpdf/backArrow.xbm +6 -0
  436. data/pdf2json-0.52-source/xpdf/backArrowDis.xbm +6 -0
  437. data/pdf2json-0.52-source/xpdf/config.h +112 -0
  438. data/pdf2json-0.52-source/xpdf/dblLeftArrow.xbm +6 -0
  439. data/pdf2json-0.52-source/xpdf/dblLeftArrowDis.xbm +6 -0
  440. data/pdf2json-0.52-source/xpdf/dblRightArrow.xbm +6 -0
  441. data/pdf2json-0.52-source/xpdf/dblRightArrowDis.xbm +6 -0
  442. data/pdf2json-0.52-source/xpdf/find.xbm +6 -0
  443. data/pdf2json-0.52-source/xpdf/findDis.xbm +6 -0
  444. data/pdf2json-0.52-source/xpdf/forwardArrow.xbm +6 -0
  445. data/pdf2json-0.52-source/xpdf/forwardArrowDis.xbm +6 -0
  446. data/pdf2json-0.52-source/xpdf/leftArrow.xbm +5 -0
  447. data/pdf2json-0.52-source/xpdf/leftArrowDis.xbm +5 -0
  448. data/pdf2json-0.52-source/xpdf/libXpdf.a +0 -0
  449. data/pdf2json-0.52-source/xpdf/pdffonts +0 -0
  450. data/pdf2json-0.52-source/xpdf/pdffonts.cc +298 -0
  451. data/pdf2json-0.52-source/xpdf/pdffonts.o +0 -0
  452. data/pdf2json-0.52-source/xpdf/pdfimages +0 -0
  453. data/pdf2json-0.52-source/xpdf/pdfimages.cc +155 -0
  454. data/pdf2json-0.52-source/xpdf/pdfimages.o +0 -0
  455. data/pdf2json-0.52-source/xpdf/pdfinfo +0 -0
  456. data/pdf2json-0.52-source/xpdf/pdfinfo.cc +387 -0
  457. data/pdf2json-0.52-source/xpdf/pdfinfo.o +0 -0
  458. data/pdf2json-0.52-source/xpdf/pdftoppm.cc +203 -0
  459. data/pdf2json-0.52-source/xpdf/pdftops +0 -0
  460. data/pdf2json-0.52-source/xpdf/pdftops.cc +344 -0
  461. data/pdf2json-0.52-source/xpdf/pdftops.o +0 -0
  462. data/pdf2json-0.52-source/xpdf/pdftotext +0 -0
  463. data/pdf2json-0.52-source/xpdf/pdftotext.cc +333 -0
  464. data/pdf2json-0.52-source/xpdf/pdftotext.o +0 -0
  465. data/pdf2json-0.52-source/xpdf/print.xbm +6 -0
  466. data/pdf2json-0.52-source/xpdf/printDis.xbm +6 -0
  467. data/pdf2json-0.52-source/xpdf/rightArrow.xbm +5 -0
  468. data/pdf2json-0.52-source/xpdf/rightArrowDis.xbm +5 -0
  469. data/pdf2json-0.52-source/xpdf/vms_make.com +129 -0
  470. data/pdf2json-0.52-source/xpdf/xpdf.cc +344 -0
  471. data/pdf2json-0.52-source/xpdf/xpdfIcon.xpm +62 -0
  472. data/pdf2json.gemspec +29 -0
  473. metadata +518 -0
@@ -0,0 +1,351 @@
1
+ //========================================================================
2
+ //
3
+ // JPXStream.h
4
+ //
5
+ // Copyright 2002-2003 Glyph & Cog, LLC
6
+ //
7
+ //========================================================================
8
+
9
+ #ifndef JPXSTREAM_H
10
+ #define JPXSTREAM_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 "Stream.h"
21
+
22
+ class JArithmeticDecoder;
23
+ class JArithmeticDecoderStats;
24
+
25
+ //------------------------------------------------------------------------
26
+
27
+ enum JPXColorSpaceType {
28
+ jpxCSBiLevel = 0,
29
+ jpxCSYCbCr1 = 1,
30
+ jpxCSYCbCr2 = 3,
31
+ jpxCSYCBCr3 = 4,
32
+ jpxCSPhotoYCC = 9,
33
+ jpxCSCMY = 11,
34
+ jpxCSCMYK = 12,
35
+ jpxCSYCCK = 13,
36
+ jpxCSCIELab = 14,
37
+ jpxCSsRGB = 16,
38
+ jpxCSGrayscale = 17,
39
+ jpxCSBiLevel2 = 18,
40
+ jpxCSCIEJab = 19,
41
+ jpxCSCISesRGB = 20,
42
+ jpxCSROMMRGB = 21,
43
+ jpxCSsRGBYCbCr = 22,
44
+ jpxCSYPbPr1125 = 23,
45
+ jpxCSYPbPr1250 = 24
46
+ };
47
+
48
+ struct JPXColorSpecCIELab {
49
+ Guint rl, ol, ra, oa, rb, ob, il;
50
+ };
51
+
52
+ struct JPXColorSpecEnumerated {
53
+ JPXColorSpaceType type; // color space type
54
+ union {
55
+ JPXColorSpecCIELab cieLab;
56
+ };
57
+ };
58
+
59
+ struct JPXColorSpec {
60
+ Guint meth; // method
61
+ int prec; // precedence
62
+ union {
63
+ JPXColorSpecEnumerated enumerated;
64
+ };
65
+ };
66
+
67
+ //------------------------------------------------------------------------
68
+
69
+ struct JPXPalette {
70
+ Guint nEntries; // number of entries in the palette
71
+ Guint nComps; // number of components in each entry
72
+ Guint *bpc; // bits per component, for each component
73
+ int *c; // color data:
74
+ // c[i*nComps+j] = entry i, component j
75
+ };
76
+
77
+ //------------------------------------------------------------------------
78
+
79
+ struct JPXCompMap {
80
+ Guint nChannels; // number of channels
81
+ Guint *comp; // codestream components mapped to each channel
82
+ Guint *type; // 0 for direct use, 1 for palette mapping
83
+ Guint *pComp; // palette components to use
84
+ };
85
+
86
+ //------------------------------------------------------------------------
87
+
88
+ struct JPXChannelDefn {
89
+ Guint nChannels; // number of channels
90
+ Guint *idx; // channel indexes
91
+ Guint *type; // channel types
92
+ Guint *assoc; // channel associations
93
+ };
94
+
95
+ //------------------------------------------------------------------------
96
+
97
+ struct JPXTagTreeNode {
98
+ GBool finished; // true if this node is finished
99
+ Guint val; // current value
100
+ };
101
+
102
+ //------------------------------------------------------------------------
103
+
104
+ struct JPXCoeff {
105
+ Gushort flags; // flag bits
106
+ Gushort len; // number of significant bits in mag
107
+ Guint mag; // magnitude value
108
+ };
109
+
110
+ // coefficient flags
111
+ #define jpxCoeffSignificantB 0
112
+ #define jpxCoeffTouchedB 1
113
+ #define jpxCoeffFirstMagRefB 2
114
+ #define jpxCoeffSignB 7
115
+ #define jpxCoeffSignificant (1 << jpxCoeffSignificantB)
116
+ #define jpxCoeffTouched (1 << jpxCoeffTouchedB)
117
+ #define jpxCoeffFirstMagRef (1 << jpxCoeffFirstMagRefB)
118
+ #define jpxCoeffSign (1 << jpxCoeffSignB)
119
+
120
+ //------------------------------------------------------------------------
121
+
122
+ struct JPXCodeBlock {
123
+ //----- size
124
+ Guint x0, y0, x1, y1; // bounds
125
+
126
+ //----- persistent state
127
+ GBool seen; // true if this code-block has already
128
+ // been seen
129
+ Guint lBlock; // base number of bits used for pkt data length
130
+ Guint nextPass; // next coding pass
131
+
132
+ //---- info from first packet
133
+ Guint nZeroBitPlanes; // number of zero bit planes
134
+
135
+ //----- info for the current packet
136
+ Guint included; // code-block inclusion in this packet:
137
+ // 0=not included, 1=included
138
+ Guint nCodingPasses; // number of coding passes in this pkt
139
+ Guint dataLen; // pkt data length
140
+
141
+ //----- coefficient data
142
+ JPXCoeff *coeffs; // the coefficients
143
+ JArithmeticDecoder // arithmetic decoder
144
+ *arithDecoder;
145
+ JArithmeticDecoderStats // arithmetic decoder stats
146
+ *stats;
147
+ };
148
+
149
+ //------------------------------------------------------------------------
150
+
151
+ struct JPXSubband {
152
+ //----- computed
153
+ Guint x0, y0, x1, y1; // bounds
154
+ Guint nXCBs, nYCBs; // number of code-blocks in the x and y
155
+ // directions
156
+
157
+ //----- tag trees
158
+ Guint maxTTLevel; // max tag tree level
159
+ JPXTagTreeNode *inclusion; // inclusion tag tree for each subband
160
+ JPXTagTreeNode *zeroBitPlane; // zero-bit plane tag tree for each
161
+ // subband
162
+
163
+ //----- children
164
+ JPXCodeBlock *cbs; // the code-blocks (len = nXCBs * nYCBs)
165
+ };
166
+
167
+ //------------------------------------------------------------------------
168
+
169
+ struct JPXPrecinct {
170
+ //----- computed
171
+ Guint x0, y0, x1, y1; // bounds of the precinct
172
+
173
+ //----- children
174
+ JPXSubband *subbands; // the subbands
175
+ };
176
+
177
+ //------------------------------------------------------------------------
178
+
179
+ struct JPXResLevel {
180
+ //----- from the COD and COC segments (main and tile)
181
+ Guint precinctWidth; // log2(precinct width)
182
+ Guint precinctHeight; // log2(precinct height)
183
+
184
+ //----- computed
185
+ Guint x0, y0, x1, y1; // bounds of the tile-comp (for this res level)
186
+ Guint bx0[3], by0[3], // subband bounds
187
+ bx1[3], by1[3];
188
+
189
+ //---- children
190
+ JPXPrecinct *precincts; // the precincts
191
+ };
192
+
193
+ //------------------------------------------------------------------------
194
+
195
+ struct JPXTileComp {
196
+ //----- from the SIZ segment
197
+ GBool sgned; // 1 for signed, 0 for unsigned
198
+ Guint prec; // precision, in bits
199
+ Guint hSep; // horizontal separation of samples
200
+ Guint vSep; // vertical separation of samples
201
+
202
+ //----- from the COD and COC segments (main and tile)
203
+ Guint style; // coding style parameter (Scod / Scoc)
204
+ Guint nDecompLevels; // number of decomposition levels
205
+ Guint codeBlockW; // log2(code-block width)
206
+ Guint codeBlockH; // log2(code-block height)
207
+ Guint codeBlockStyle; // code-block style
208
+ Guint transform; // wavelet transformation
209
+
210
+ //----- from the QCD and QCC segments (main and tile)
211
+ Guint quantStyle; // quantization style
212
+ Guint *quantSteps; // quantization step size for each subband
213
+ Guint nQuantSteps; // number of entries in quantSteps
214
+
215
+ //----- computed
216
+ Guint x0, y0, x1, y1; // bounds of the tile-comp, in ref coords
217
+ Guint cbW; // code-block width
218
+ Guint cbH; // code-block height
219
+
220
+ //----- image data
221
+ int *data; // the decoded image data
222
+ int *buf; // intermediate buffer for the inverse
223
+ // transform
224
+
225
+ //----- children
226
+ JPXResLevel *resLevels; // the resolution levels
227
+ // (len = nDecompLevels + 1)
228
+ };
229
+
230
+ //------------------------------------------------------------------------
231
+
232
+ struct JPXTile {
233
+ //----- from the COD segments (main and tile)
234
+ Guint progOrder; // progression order
235
+ Guint nLayers; // number of layers
236
+ Guint multiComp; // multiple component transformation
237
+
238
+ //----- computed
239
+ Guint x0, y0, x1, y1; // bounds of the tile, in ref coords
240
+ Guint maxNDecompLevels; // max number of decomposition levels used
241
+ // in any component in this tile
242
+
243
+ //----- progression order loop counters
244
+ Guint comp; // component
245
+ Guint res; // resolution level
246
+ Guint precinct; // precinct
247
+ Guint layer; // layer
248
+
249
+ //----- children
250
+ JPXTileComp *tileComps; // the tile-components (len = JPXImage.nComps)
251
+ };
252
+
253
+ //------------------------------------------------------------------------
254
+
255
+ struct JPXImage {
256
+ //----- from the SIZ segment
257
+ Guint xSize, ySize; // size of reference grid
258
+ Guint xOffset, yOffset; // image offset
259
+ Guint xTileSize, yTileSize; // size of tiles
260
+ Guint xTileOffset, // offset of first tile
261
+ yTileOffset;
262
+ Guint nComps; // number of components
263
+
264
+ //----- computed
265
+ Guint nXTiles; // number of tiles in x direction
266
+ Guint nYTiles; // number of tiles in y direction
267
+
268
+ //----- children
269
+ JPXTile *tiles; // the tiles (len = nXTiles * nYTiles)
270
+ };
271
+
272
+ //------------------------------------------------------------------------
273
+
274
+ class JPXStream: public FilterStream {
275
+ public:
276
+
277
+ JPXStream(Stream *strA);
278
+ virtual ~JPXStream();
279
+ virtual StreamKind getKind() { return strJPX; }
280
+ virtual void reset();
281
+ virtual void close();
282
+ virtual int getChar();
283
+ virtual int lookChar();
284
+ virtual GString *getPSFilter(int psLevel, char *indent);
285
+ virtual GBool isBinary(GBool last = gTrue);
286
+ virtual void getImageParams(int *bitsPerComponent,
287
+ StreamColorSpaceMode *csMode);
288
+
289
+ private:
290
+
291
+ void fillReadBuf();
292
+ void getImageParams2(int *bitsPerComponent, StreamColorSpaceMode *csMode);
293
+ GBool readBoxes();
294
+ GBool readColorSpecBox(Guint dataLen);
295
+ GBool readCodestream(Guint len);
296
+ GBool readTilePart();
297
+ GBool readTilePartData(Guint tileIdx,
298
+ Guint tilePartLen, GBool tilePartToEOC);
299
+ GBool readCodeBlockData(JPXTileComp *tileComp,
300
+ JPXResLevel *resLevel,
301
+ JPXPrecinct *precinct,
302
+ JPXSubband *subband,
303
+ Guint res, Guint sb,
304
+ JPXCodeBlock *cb);
305
+ void inverseTransform(JPXTileComp *tileComp);
306
+ void inverseTransformLevel(JPXTileComp *tileComp,
307
+ Guint r, JPXResLevel *resLevel,
308
+ Guint nx0, Guint ny0,
309
+ Guint nx1, Guint ny1);
310
+ void inverseTransform1D(JPXTileComp *tileComp,
311
+ int *data, Guint stride,
312
+ Guint i0, Guint i1);
313
+ GBool inverseMultiCompAndDC(JPXTile *tile);
314
+ GBool readBoxHdr(Guint *boxType, Guint *boxLen, Guint *dataLen);
315
+ int readMarkerHdr(int *segType, Guint *segLen);
316
+ GBool readUByte(Guint *x);
317
+ GBool readByte(int *x);
318
+ GBool readUWord(Guint *x);
319
+ GBool readULong(Guint *x);
320
+ GBool readNBytes(int nBytes, GBool signd, int *x);
321
+ GBool readBits(int nBits, Guint *x);
322
+ void startBitBuf(Guint byteCountA);
323
+ Guint finishBitBuf();
324
+
325
+ Guint nComps; // number of components
326
+ Guint *bpc; // bits per component, for each component
327
+ Guint width, height; // image size
328
+ GBool haveImgHdr; // set if a JP2/JPX image header has been
329
+ // found
330
+ JPXColorSpec cs; // color specification
331
+ GBool haveCS; // set if a color spec has been found
332
+ JPXPalette palette; // the palette
333
+ GBool havePalette; // set if a palette has been found
334
+ JPXCompMap compMap; // the component mapping
335
+ GBool haveCompMap; // set if a component mapping has been found
336
+ JPXChannelDefn channelDefn; // channel definition
337
+ GBool haveChannelDefn; // set if a channel defn has been found
338
+
339
+ JPXImage img; // JPEG2000 decoder data
340
+ Guint bitBuf; // buffer for bit reads
341
+ int bitBufLen; // number of bits in bitBuf
342
+ GBool bitBufSkip; // true if next bit should be skipped
343
+ // (for bit stuffing)
344
+ Guint byteCount; // number of available bytes left
345
+
346
+ Guint curX, curY, curComp; // current position for lookChar/getChar
347
+ Guint readBuf; // read buffer
348
+ Guint readBufLen; // number of valid bits in readBuf
349
+ };
350
+
351
+ #endif
@@ -0,0 +1,485 @@
1
+ //========================================================================
2
+ //
3
+ // Lexer.cc
4
+ //
5
+ // Copyright 1996-2003 Glyph & Cog, LLC
6
+ //
7
+ //========================================================================
8
+
9
+ #include <aconf.h>
10
+
11
+ #ifdef USE_GCC_PRAGMAS
12
+ #pragma implementation
13
+ #endif
14
+
15
+ #include <stdlib.h>
16
+ #include <stddef.h>
17
+ #include <string.h>
18
+ #include <ctype.h>
19
+ #include "Lexer.h"
20
+ #include "Error.h"
21
+
22
+ //------------------------------------------------------------------------
23
+
24
+ // A '1' in this array means the character is white space. A '1' or
25
+ // '2' means the character ends a name or command.
26
+ static char specialChars[256] = {
27
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, // 0x
28
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
29
+ 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, // 2x
30
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, // 3x
31
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4x
32
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 5x
33
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6x
34
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 7x
35
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x
36
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x
37
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ax
38
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // bx
39
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // cx
40
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // dx
41
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ex
42
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // fx
43
+ };
44
+
45
+ //------------------------------------------------------------------------
46
+ // Lexer
47
+ //------------------------------------------------------------------------
48
+
49
+ Lexer::Lexer(XRef *xref, Stream *str) {
50
+ Object obj;
51
+
52
+ curStr.initStream(str);
53
+ streams = new Array(xref);
54
+ streams->add(curStr.copy(&obj));
55
+ strPtr = 0;
56
+ freeArray = gTrue;
57
+ curStr.streamReset();
58
+ }
59
+
60
+ Lexer::Lexer(XRef *xref, Object *obj) {
61
+ Object obj2;
62
+
63
+ if (obj->isStream()) {
64
+ streams = new Array(xref);
65
+ freeArray = gTrue;
66
+ streams->add(obj->copy(&obj2));
67
+ } else {
68
+ streams = obj->getArray();
69
+ freeArray = gFalse;
70
+ }
71
+ strPtr = 0;
72
+ if (streams->getLength() > 0) {
73
+ streams->get(strPtr, &curStr);
74
+ curStr.streamReset();
75
+ }
76
+ }
77
+
78
+ Lexer::~Lexer() {
79
+ if (!curStr.isNone()) {
80
+ curStr.streamClose();
81
+ curStr.free();
82
+ }
83
+ if (freeArray) {
84
+ delete streams;
85
+ }
86
+ }
87
+
88
+ int Lexer::getChar() {
89
+ int c;
90
+
91
+ c = EOF;
92
+ while (!curStr.isNone() && (c = curStr.streamGetChar()) == EOF) {
93
+ curStr.streamClose();
94
+ curStr.free();
95
+ ++strPtr;
96
+ if (strPtr < streams->getLength()) {
97
+ streams->get(strPtr, &curStr);
98
+ curStr.streamReset();
99
+ }
100
+ }
101
+ return c;
102
+ }
103
+
104
+ int Lexer::lookChar() {
105
+ if (curStr.isNone()) {
106
+ return EOF;
107
+ }
108
+ return curStr.streamLookChar();
109
+ }
110
+
111
+ Object *Lexer::getObj(Object *obj) {
112
+ char *p;
113
+ int c, c2;
114
+ GBool comment, neg, done;
115
+ int numParen;
116
+ int xi;
117
+ double xf, scale;
118
+ GString *s;
119
+ int n, m;
120
+
121
+ // skip whitespace and comments
122
+ comment = gFalse;
123
+ while (1) {
124
+ if ((c = getChar()) == EOF) {
125
+ return obj->initEOF();
126
+ }
127
+ if (comment) {
128
+ if (c == '\r' || c == '\n')
129
+ comment = gFalse;
130
+ } else if (c == '%') {
131
+ comment = gTrue;
132
+ } else if (specialChars[c] != 1) {
133
+ break;
134
+ }
135
+ }
136
+
137
+ // start reading token
138
+ switch (c) {
139
+
140
+ // number
141
+ case '0': case '1': case '2': case '3': case '4':
142
+ case '5': case '6': case '7': case '8': case '9':
143
+ case '-': case '.':
144
+ neg = gFalse;
145
+ xi = 0;
146
+ if (c == '-') {
147
+ neg = gTrue;
148
+ } else if (c == '.') {
149
+ goto doReal;
150
+ } else {
151
+ xi = c - '0';
152
+ }
153
+ while (1) {
154
+ c = lookChar();
155
+ if (isdigit(c)) {
156
+ getChar();
157
+ xi = xi * 10 + (c - '0');
158
+ } else if (c == '.') {
159
+ getChar();
160
+ goto doReal;
161
+ } else {
162
+ break;
163
+ }
164
+ }
165
+ if (neg)
166
+ xi = -xi;
167
+ obj->initInt(xi);
168
+ break;
169
+ doReal:
170
+ xf = xi;
171
+ scale = 0.1;
172
+ while (1) {
173
+ c = lookChar();
174
+ if (c == '-') {
175
+ // ignore minus signs in the middle of numbers to match
176
+ // Adobe's behavior
177
+ error(getPos(), "Badly formatted number");
178
+ getChar();
179
+ continue;
180
+ }
181
+ if (!isdigit(c)) {
182
+ break;
183
+ }
184
+ getChar();
185
+ xf = xf + scale * (c - '0');
186
+ scale *= 0.1;
187
+ }
188
+ if (neg)
189
+ xf = -xf;
190
+ obj->initReal(xf);
191
+ break;
192
+
193
+ // string
194
+ case '(':
195
+ p = tokBuf;
196
+ n = 0;
197
+ numParen = 1;
198
+ done = gFalse;
199
+ s = NULL;
200
+ do {
201
+ c2 = EOF;
202
+ switch (c = getChar()) {
203
+
204
+ case EOF:
205
+ #if 0
206
+ // This breaks some PDF files, e.g., ones from Photoshop.
207
+ case '\r':
208
+ case '\n':
209
+ #endif
210
+ error(getPos(), "Unterminated string");
211
+ done = gTrue;
212
+ break;
213
+
214
+ case '(':
215
+ ++numParen;
216
+ c2 = c;
217
+ break;
218
+
219
+ case ')':
220
+ if (--numParen == 0) {
221
+ done = gTrue;
222
+ } else {
223
+ c2 = c;
224
+ }
225
+ break;
226
+
227
+ case '\\':
228
+ switch (c = getChar()) {
229
+ case 'n':
230
+ c2 = '\n';
231
+ break;
232
+ case 'r':
233
+ c2 = '\r';
234
+ break;
235
+ case 't':
236
+ c2 = '\t';
237
+ break;
238
+ case 'b':
239
+ c2 = '\b';
240
+ break;
241
+ case 'f':
242
+ c2 = '\f';
243
+ break;
244
+ case '\\':
245
+ case '(':
246
+ case ')':
247
+ c2 = c;
248
+ break;
249
+ case '0': case '1': case '2': case '3':
250
+ case '4': case '5': case '6': case '7':
251
+ c2 = c - '0';
252
+ c = lookChar();
253
+ if (c >= '0' && c <= '7') {
254
+ getChar();
255
+ c2 = (c2 << 3) + (c - '0');
256
+ c = lookChar();
257
+ if (c >= '0' && c <= '7') {
258
+ getChar();
259
+ c2 = (c2 << 3) + (c - '0');
260
+ }
261
+ }
262
+ break;
263
+ case '\r':
264
+ c = lookChar();
265
+ if (c == '\n') {
266
+ getChar();
267
+ }
268
+ break;
269
+ case '\n':
270
+ break;
271
+ case EOF:
272
+ error(getPos(), "Unterminated string");
273
+ done = gTrue;
274
+ break;
275
+ default:
276
+ c2 = c;
277
+ break;
278
+ }
279
+ break;
280
+
281
+ default:
282
+ c2 = c;
283
+ break;
284
+ }
285
+
286
+ if (c2 != EOF) {
287
+ if (n == tokBufSize) {
288
+ if (!s)
289
+ s = new GString(tokBuf, tokBufSize);
290
+ else
291
+ s->append(tokBuf, tokBufSize);
292
+ p = tokBuf;
293
+ n = 0;
294
+ }
295
+ *p++ = (char)c2;
296
+ ++n;
297
+ }
298
+ } while (!done);
299
+ if (!s)
300
+ s = new GString(tokBuf, n);
301
+ else
302
+ s->append(tokBuf, n);
303
+ obj->initString(s);
304
+ break;
305
+
306
+ // name
307
+ case '/':
308
+ p = tokBuf;
309
+ n = 0;
310
+ while ((c = lookChar()) != EOF && !specialChars[c]) {
311
+ getChar();
312
+ if (c == '#') {
313
+ c2 = lookChar();
314
+ if (c2 >= '0' && c2 <= '9') {
315
+ c = c2 - '0';
316
+ } else if (c2 >= 'A' && c2 <= 'F') {
317
+ c = c2 - 'A' + 10;
318
+ } else if (c2 >= 'a' && c2 <= 'f') {
319
+ c = c2 - 'a' + 10;
320
+ } else {
321
+ goto notEscChar;
322
+ }
323
+ getChar();
324
+ c <<= 4;
325
+ c2 = getChar();
326
+ if (c2 >= '0' && c2 <= '9') {
327
+ c += c2 - '0';
328
+ } else if (c2 >= 'A' && c2 <= 'F') {
329
+ c += c2 - 'A' + 10;
330
+ } else if (c2 >= 'a' && c2 <= 'f') {
331
+ c += c2 - 'a' + 10;
332
+ } else {
333
+ error(getPos(), "Illegal digit in hex char in name");
334
+ }
335
+ }
336
+ notEscChar:
337
+ if (++n == tokBufSize) {
338
+ error(getPos(), "Name token too long");
339
+ break;
340
+ }
341
+ *p++ = c;
342
+ }
343
+ *p = '\0';
344
+ obj->initName(tokBuf);
345
+ break;
346
+
347
+ // array punctuation
348
+ case '[':
349
+ case ']':
350
+ tokBuf[0] = c;
351
+ tokBuf[1] = '\0';
352
+ obj->initCmd(tokBuf);
353
+ break;
354
+
355
+ // hex string or dict punctuation
356
+ case '<':
357
+ c = lookChar();
358
+
359
+ // dict punctuation
360
+ if (c == '<') {
361
+ getChar();
362
+ tokBuf[0] = tokBuf[1] = '<';
363
+ tokBuf[2] = '\0';
364
+ obj->initCmd(tokBuf);
365
+
366
+ // hex string
367
+ } else {
368
+ p = tokBuf;
369
+ m = n = 0;
370
+ c2 = 0;
371
+ s = NULL;
372
+ while (1) {
373
+ c = getChar();
374
+ if (c == '>') {
375
+ break;
376
+ } else if (c == EOF) {
377
+ error(getPos(), "Unterminated hex string");
378
+ break;
379
+ } else if (specialChars[c] != 1) {
380
+ c2 = c2 << 4;
381
+ if (c >= '0' && c <= '9')
382
+ c2 += c - '0';
383
+ else if (c >= 'A' && c <= 'F')
384
+ c2 += c - 'A' + 10;
385
+ else if (c >= 'a' && c <= 'f')
386
+ c2 += c - 'a' + 10;
387
+ else
388
+ error(getPos(), "Illegal character <%02x> in hex string", c);
389
+ if (++m == 2) {
390
+ if (n == tokBufSize) {
391
+ if (!s)
392
+ s = new GString(tokBuf, tokBufSize);
393
+ else
394
+ s->append(tokBuf, tokBufSize);
395
+ p = tokBuf;
396
+ n = 0;
397
+ }
398
+ *p++ = (char)c2;
399
+ ++n;
400
+ c2 = 0;
401
+ m = 0;
402
+ }
403
+ }
404
+ }
405
+ if (!s)
406
+ s = new GString(tokBuf, n);
407
+ else
408
+ s->append(tokBuf, n);
409
+ if (m == 1)
410
+ s->append((char)(c2 << 4));
411
+ obj->initString(s);
412
+ }
413
+ break;
414
+
415
+ // dict punctuation
416
+ case '>':
417
+ c = lookChar();
418
+ if (c == '>') {
419
+ getChar();
420
+ tokBuf[0] = tokBuf[1] = '>';
421
+ tokBuf[2] = '\0';
422
+ obj->initCmd(tokBuf);
423
+ } else {
424
+ error(getPos(), "Illegal character '>'");
425
+ obj->initError();
426
+ }
427
+ break;
428
+
429
+ // error
430
+ case ')':
431
+ case '{':
432
+ case '}':
433
+ error(getPos(), "Illegal character '%c'", c);
434
+ obj->initError();
435
+ break;
436
+
437
+ // command
438
+ default:
439
+ p = tokBuf;
440
+ *p++ = c;
441
+ n = 1;
442
+ while ((c = lookChar()) != EOF && !specialChars[c]) {
443
+ getChar();
444
+ if (++n == tokBufSize) {
445
+ error(getPos(), "Command token too long");
446
+ break;
447
+ }
448
+ *p++ = c;
449
+ }
450
+ *p = '\0';
451
+ if (tokBuf[0] == 't' && !strcmp(tokBuf, "true")) {
452
+ obj->initBool(gTrue);
453
+ } else if (tokBuf[0] == 'f' && !strcmp(tokBuf, "false")) {
454
+ obj->initBool(gFalse);
455
+ } else if (tokBuf[0] == 'n' && !strcmp(tokBuf, "null")) {
456
+ obj->initNull();
457
+ } else {
458
+ obj->initCmd(tokBuf);
459
+ }
460
+ break;
461
+ }
462
+
463
+ return obj;
464
+ }
465
+
466
+ void Lexer::skipToNextLine() {
467
+ int c;
468
+
469
+ while (1) {
470
+ c = getChar();
471
+ if (c == EOF || c == '\n') {
472
+ return;
473
+ }
474
+ if (c == '\r') {
475
+ if ((c = lookChar()) == '\n') {
476
+ getChar();
477
+ }
478
+ return;
479
+ }
480
+ }
481
+ }
482
+
483
+ GBool Lexer::isSpace(int c) {
484
+ return c >= 0 && c <= 0xff && specialChars[c] == 1;
485
+ }