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.
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
+ }