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,133 @@
1
+ //========================================================================
2
+ //
3
+ // XRef.h
4
+ //
5
+ // Copyright 1996-2003 Glyph & Cog, LLC
6
+ //
7
+ //========================================================================
8
+
9
+ #ifndef XREF_H
10
+ #define XREF_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
+
21
+ class Dict;
22
+ class Stream;
23
+ class Parser;
24
+ class ObjectStream;
25
+
26
+ //------------------------------------------------------------------------
27
+ // XRef
28
+ //------------------------------------------------------------------------
29
+
30
+ enum XRefEntryType {
31
+ xrefEntryFree,
32
+ xrefEntryUncompressed,
33
+ xrefEntryCompressed
34
+ };
35
+
36
+ struct XRefEntry {
37
+ Guint offset;
38
+ int gen;
39
+ XRefEntryType type;
40
+ };
41
+
42
+ class XRef {
43
+ public:
44
+
45
+ // Constructor. Read xref table from stream.
46
+ XRef(BaseStream *strA);
47
+
48
+ // Destructor.
49
+ ~XRef();
50
+
51
+ // Is xref table valid?
52
+ GBool isOk() { return ok; }
53
+
54
+ // Get the error code (if isOk() returns false).
55
+ int getErrorCode() { return errCode; }
56
+
57
+ // Set the encryption parameters.
58
+ void setEncryption(int permFlagsA, GBool ownerPasswordOkA,
59
+ Guchar *fileKeyA, int keyLengthA, int encVersionA,
60
+ CryptAlgorithm encAlgorithmA);
61
+
62
+ // Is the file encrypted?
63
+ GBool isEncrypted() { return encrypted; }
64
+
65
+ // Check various permissions.
66
+ GBool okToPrint(GBool ignoreOwnerPW = gFalse);
67
+ GBool okToChange(GBool ignoreOwnerPW = gFalse);
68
+ GBool okToCopy(GBool ignoreOwnerPW = gFalse);
69
+ GBool okToAddNotes(GBool ignoreOwnerPW = gFalse);
70
+
71
+ // Get catalog object.
72
+ Object *getCatalog(Object *obj) { return fetch(rootNum, rootGen, obj); }
73
+
74
+ // Fetch an indirect reference.
75
+ Object *fetch(int num, int gen, Object *obj);
76
+
77
+ // Return the document's Info dictionary (if any).
78
+ Object *getDocInfo(Object *obj);
79
+ Object *getDocInfoNF(Object *obj);
80
+
81
+ // Return the number of objects in the xref table.
82
+ int getNumObjects() { return size; }
83
+
84
+ // Return the offset of the last xref table.
85
+ Guint getLastXRefPos() { return lastXRefPos; }
86
+
87
+ // Return the catalog object reference.
88
+ int getRootNum() { return rootNum; }
89
+ int getRootGen() { return rootGen; }
90
+
91
+ // Get end position for a stream in a damaged file.
92
+ // Returns false if unknown or file is not damaged.
93
+ GBool getStreamEnd(Guint streamStart, Guint *streamEnd);
94
+
95
+ // Direct access.
96
+ int getSize() { return size; }
97
+ XRefEntry *getEntry(int i) { return &entries[i]; }
98
+ Object *getTrailerDict() { return &trailerDict; }
99
+
100
+ private:
101
+
102
+ BaseStream *str; // input stream
103
+ Guint start; // offset in file (to allow for garbage
104
+ // at beginning of file)
105
+ XRefEntry *entries; // xref entries
106
+ int size; // size of <entries> array
107
+ int rootNum, rootGen; // catalog dict
108
+ GBool ok; // true if xref table is valid
109
+ int errCode; // error code (if <ok> is false)
110
+ Object trailerDict; // trailer dictionary
111
+ Guint lastXRefPos; // offset of last xref table
112
+ Guint *streamEnds; // 'endstream' positions - only used in
113
+ // damaged files
114
+ int streamEndsLen; // number of valid entries in streamEnds
115
+ ObjectStream *objStr; // cached object stream
116
+ GBool encrypted; // true if file is encrypted
117
+ int permFlags; // permission bits
118
+ GBool ownerPasswordOk; // true if owner password is correct
119
+ Guchar fileKey[16]; // file decryption key
120
+ int keyLength; // length of key, in bytes
121
+ int encVersion; // encryption version
122
+ CryptAlgorithm encAlgorithm; // encryption algorithm
123
+
124
+ Guint getStartXref();
125
+ GBool readXRef(Guint *pos);
126
+ GBool readXRefTable(Parser *parser, Guint *pos);
127
+ GBool readXRefStreamSection(Stream *xrefStr, int *w, int first, int n);
128
+ GBool readXRefStream(Stream *xrefStr, Guint *pos);
129
+ GBool constructXRef();
130
+ Guint strToUnsigned(char *s);
131
+ };
132
+
133
+ #endif
Binary file
@@ -0,0 +1,262 @@
1
+ //========================================================================
2
+ //
3
+ // XpdfPluginAPI.cc
4
+ //
5
+ // Copyright 2004 Glyph & Cog, LLC
6
+ //
7
+ //========================================================================
8
+
9
+ #include "aconf.h"
10
+
11
+ #ifdef ENABLE_PLUGINS
12
+
13
+ #include "gmem.h"
14
+ #include "GlobalParams.h"
15
+ #include "Object.h"
16
+ #include "PDFDoc.h"
17
+ #ifdef WIN32
18
+ #include "WinPDFCore.h"
19
+ #else
20
+ #include "XPDFCore.h"
21
+ #endif
22
+ #include "XpdfPluginAPI.h"
23
+
24
+ //------------------------------------------------------------------------
25
+
26
+ //~ This should use a pool of Objects; change xpdfFreeObj to match.
27
+ static Object *allocObj() {
28
+ return (Object *)gmalloc(sizeof(Object));
29
+ }
30
+
31
+ //------------------------------------------------------------------------
32
+ // Document access functions
33
+ //------------------------------------------------------------------------
34
+
35
+ XpdfObject _xpdfGetInfoDict(XpdfDoc doc) {
36
+ Object *obj;
37
+
38
+ obj = allocObj();
39
+ return (XpdfObject)((PDFDoc *)doc)->getDocInfo(obj);
40
+ }
41
+
42
+ XpdfObject _xpdfGetCatalog(XpdfDoc doc) {
43
+ Object *obj;
44
+
45
+ obj = allocObj();
46
+ return (XpdfObject)((PDFDoc *)doc)->getXRef()->getCatalog(obj);
47
+ }
48
+
49
+ #ifdef _WIN32
50
+
51
+ HWND _xpdfWin32GetWindow(XpdfDoc doc) {
52
+ WinPDFCore *core;
53
+
54
+ if (!(core = (WinPDFCore *)((PDFDoc *)doc)->getGUIData())) {
55
+ return NULL;
56
+ }
57
+ return core->getDrawFrame();
58
+ }
59
+
60
+ #else
61
+
62
+ Widget _xpdfXGetWindow(XpdfDoc doc) {
63
+ XPDFCore *core;
64
+
65
+ if (!(core = (XPDFCore *)((PDFDoc *)doc)->getGUIData())) {
66
+ return NULL;
67
+ }
68
+ return core->getWidget();
69
+ }
70
+
71
+ #endif
72
+
73
+ //------------------------------------------------------------------------
74
+ // Object access functions.
75
+ //------------------------------------------------------------------------
76
+
77
+ XpdfBool _xpdfObjIsBool(XpdfObject obj) {
78
+ return (XpdfBool)((Object *)obj)->isBool();
79
+ }
80
+
81
+ XpdfBool _xpdfObjIsInt(XpdfObject obj) {
82
+ return (XpdfBool)((Object *)obj)->isInt();
83
+ }
84
+
85
+ XpdfBool _xpdfObjIsReal(XpdfObject obj) {
86
+ return (XpdfBool)((Object *)obj)->isReal();
87
+ }
88
+
89
+ XpdfBool _xpdfObjIsNumber(XpdfObject obj) {
90
+ return (XpdfBool)((Object *)obj)->isNum();
91
+ }
92
+
93
+ XpdfBool _xpdfObjIsString(XpdfObject obj) {
94
+ return (XpdfBool)((Object *)obj)->isString();
95
+ }
96
+
97
+ XpdfBool _xpdfObjIsName(XpdfObject obj) {
98
+ return (XpdfBool)((Object *)obj)->isName();
99
+ }
100
+
101
+ XpdfBool _xpdfObjIsNull(XpdfObject obj) {
102
+ return (XpdfBool)((Object *)obj)->isNull();
103
+ }
104
+
105
+ XpdfBool _xpdfObjIsArray(XpdfObject obj) {
106
+ return (XpdfBool)((Object *)obj)->isArray();
107
+ }
108
+
109
+ XpdfBool _xpdfObjIsDict(XpdfObject obj) {
110
+ return (XpdfBool)((Object *)obj)->isDict();
111
+ }
112
+
113
+ XpdfBool _xpdfObjIsStream(XpdfObject obj) {
114
+ return (XpdfBool)((Object *)obj)->isStream();
115
+ }
116
+
117
+ XpdfBool _xpdfObjIsRef(XpdfObject obj) {
118
+ return (XpdfBool)((Object *)obj)->isRef();
119
+ }
120
+
121
+ XpdfBool _xpdfBoolValue(XpdfObject obj) {
122
+ return (XpdfBool)((Object *)obj)->getBool();
123
+ }
124
+
125
+ int _xpdfIntValue(XpdfObject obj) {
126
+ if (!((Object *)obj)->isInt()) {
127
+ return 0;
128
+ }
129
+ return ((Object *)obj)->getInt();
130
+ }
131
+
132
+ double _xpdfRealValue(XpdfObject obj) {
133
+ if (!((Object *)obj)->isReal()) {
134
+ return 0;
135
+ }
136
+ return ((Object *)obj)->getReal();
137
+ }
138
+
139
+ double _xpdfNumberValue(XpdfObject obj) {
140
+ if (!((Object *)obj)->isNum()) {
141
+ return 0;
142
+ }
143
+ return ((Object *)obj)->getNum();
144
+ }
145
+
146
+ int _xpdfStringLength(XpdfObject obj) {
147
+ if (!((Object *)obj)->isString()) {
148
+ return 0;
149
+ }
150
+ return ((Object *)obj)->getString()->getLength();
151
+ }
152
+
153
+ char *_xpdfStringValue(XpdfObject obj) {
154
+ if (!((Object *)obj)->isString()) {
155
+ return 0;
156
+ }
157
+ return ((Object *)obj)->getString()->getCString();
158
+ }
159
+
160
+ char *_xpdfNameValue(XpdfObject obj) {
161
+ if (!((Object *)obj)->isName()) {
162
+ return NULL;
163
+ }
164
+ return ((Object *)obj)->getName();
165
+ }
166
+
167
+ int _xpdfArrayLength(XpdfObject obj) {
168
+ if (!((Object *)obj)->isArray()) {
169
+ return 0;
170
+ }
171
+ return ((Object *)obj)->arrayGetLength();
172
+ }
173
+
174
+ XpdfObject _xpdfArrayGet(XpdfObject obj, int idx) {
175
+ Object *elem;
176
+
177
+ elem = allocObj();
178
+ if (!((Object *)obj)->isArray()) {
179
+ return (XpdfObject)elem->initNull();
180
+ }
181
+ return (XpdfObject)((Object *)obj)->arrayGet(idx, elem);
182
+ }
183
+
184
+ XpdfObject _xpdfDictGet(XpdfObject obj, char *key) {
185
+ Object *elem;
186
+
187
+ elem = allocObj();
188
+ if (!((Object *)obj)->isDict()) {
189
+ return (XpdfObject)elem->initNull();
190
+ }
191
+ return (XpdfObject)((Object *)obj)->dictLookup(key, elem);
192
+ }
193
+
194
+ void _xpdfFreeObj(XpdfObject obj) {
195
+ ((Object *)obj)->free();
196
+ gfree(obj);
197
+ }
198
+
199
+ //------------------------------------------------------------------------
200
+ // Memory allocation functions
201
+ //------------------------------------------------------------------------
202
+
203
+ void *_xpdfMalloc(int size) {
204
+ return gmalloc(size);
205
+ }
206
+
207
+ void *_xpdfRealloc(void *p, int size) {
208
+ return grealloc(p, size);
209
+ }
210
+
211
+ void _xpdfFree(void *p) {
212
+ gfree(p);
213
+ }
214
+
215
+ //------------------------------------------------------------------------
216
+ // Security handlers
217
+ //------------------------------------------------------------------------
218
+
219
+ void _xpdfRegisterSecurityHandler(XpdfSecurityHandler *handler) {
220
+ if (handler->version <= xpdfPluginAPIVersion) {
221
+ globalParams->addSecurityHandler(handler);
222
+ }
223
+ }
224
+
225
+ //------------------------------------------------------------------------
226
+
227
+ XpdfPluginVecTable xpdfPluginVecTable = {
228
+ xpdfPluginAPIVersion,
229
+ &_xpdfGetInfoDict,
230
+ &_xpdfGetCatalog,
231
+ #ifdef _WIN32
232
+ &_xpdfWin32GetWindow,
233
+ #else
234
+ &_xpdfXGetWindow,
235
+ #endif
236
+ &_xpdfObjIsBool,
237
+ &_xpdfObjIsInt,
238
+ &_xpdfObjIsReal,
239
+ &_xpdfObjIsString,
240
+ &_xpdfObjIsName,
241
+ &_xpdfObjIsNull,
242
+ &_xpdfObjIsArray,
243
+ &_xpdfObjIsDict,
244
+ &_xpdfObjIsStream,
245
+ &_xpdfObjIsRef,
246
+ &_xpdfBoolValue,
247
+ &_xpdfIntValue,
248
+ &_xpdfRealValue,
249
+ &_xpdfStringLength,
250
+ &_xpdfStringValue,
251
+ &_xpdfNameValue,
252
+ &_xpdfArrayLength,
253
+ &_xpdfArrayGet,
254
+ &_xpdfDictGet,
255
+ &_xpdfFreeObj,
256
+ &_xpdfMalloc,
257
+ &_xpdfRealloc,
258
+ &_xpdfFree,
259
+ &_xpdfRegisterSecurityHandler,
260
+ };
261
+
262
+ #endif // ENABLE_PLUGINS
@@ -0,0 +1,341 @@
1
+ /*
2
+ * XpdfPluginAPI.h
3
+ *
4
+ * Copyright 2004 Glyph & Cog, LLC
5
+ */
6
+
7
+ #ifndef XPDFPLUGINAPI_H
8
+ #define XPDFPLUGINAPI_H
9
+
10
+ #ifdef _WIN32
11
+ #include <windows.h>
12
+ #else
13
+ #define Object XtObject
14
+ #include <X11/Intrinsic.h>
15
+ #undef Object
16
+ #endif
17
+
18
+ #ifdef __cplusplus
19
+ extern "C" {
20
+ #endif
21
+
22
+ /*------------------------------------------------------------------------
23
+ * Macros
24
+ *------------------------------------------------------------------------*/
25
+
26
+ /*
27
+ * The current API version.
28
+ */
29
+ #define xpdfPluginAPIVersion 1
30
+
31
+ #ifdef _WIN32
32
+ # ifdef __cplusplus
33
+ # define PLUGINFUNC(retType) extern "C" __declspec(dllexport) retType
34
+ # else
35
+ # define PLUGINFUNC(retType) extern __declspec(dllexport) retType
36
+ # endif
37
+ #else
38
+ # ifdef __cplusplus
39
+ # define PLUGINFUNC(retType) extern "C" retType
40
+ # else
41
+ # define PLUGINFUNC(retType) extern retType
42
+ # endif
43
+ #endif
44
+
45
+ /*------------------------------------------------------------------------
46
+ * Plugin setup/cleanup
47
+ *------------------------------------------------------------------------*/
48
+
49
+ /*
50
+ * All plugins are required to implement two functions:
51
+ *
52
+ * -- Initialize the plugin. Returns non-zero if successful.
53
+ * PLUGINFUNC(XpdfBool) xpdfInitPlugin(void);
54
+ *
55
+ * -- Free the plugin.
56
+ * PLUGINFUNC(void) xpdfFreePlugin(void);
57
+ */
58
+
59
+ /*------------------------------------------------------------------------
60
+ * Types
61
+ *------------------------------------------------------------------------*/
62
+
63
+ /*
64
+ * Standard C boolean -- zero = false, non-zero = true.
65
+ */
66
+ typedef int XpdfBool;
67
+ #define xpdfTrue 1
68
+ #define xpdfFalse 0
69
+
70
+ /*
71
+ * PDF document handle.
72
+ */
73
+ typedef struct _XpdfDoc *XpdfDoc;
74
+
75
+ /*
76
+ * PDF object handle.
77
+ */
78
+ typedef struct _XpdfObject *XpdfObject;
79
+
80
+ /*
81
+ * Document access permissions. Any of these can be bitwise 'or'ed
82
+ * together. If xpdfPermissionOpen is not included, the document
83
+ * cannot be opened at all, and the other bits are ignored.
84
+ */
85
+ typedef unsigned int XpdfPermission;
86
+ #define xpdfPermissionOpen (1 << 0)
87
+ #define xpdfPermissionPrint (1 << 2)
88
+ #define xpdfPermissionChange (1 << 3)
89
+ #define xpdfPermissionCopy (1 << 4)
90
+ #define xpdfPermissionNotes (1 << 5)
91
+
92
+ /*------------------------------------------------------------------------
93
+ * Security handler
94
+ *------------------------------------------------------------------------*/
95
+
96
+ /*
97
+ * XpdfSecurityHandler - a security handler plugin should create one
98
+ * of these and pass it to xpdfRegisterSecurityHandler.
99
+ */
100
+ #ifdef __cplusplus
101
+ struct XpdfSecurityHandler {
102
+ #else
103
+ typedef struct {
104
+ #endif
105
+
106
+ /*
107
+ * Version of the security handler spec (this document) -- use
108
+ * xpdfPluginAPIVersion.
109
+ */
110
+ int version;
111
+
112
+ /*
113
+ * Security handler name.
114
+ */
115
+ char *name;
116
+
117
+ /*
118
+ * Any global data the security handler needs. XpdfViewer will pass
119
+ * this pointer to all handler functions as the <handlerData>
120
+ * argument.
121
+ */
122
+ void *handlerData;
123
+
124
+ /*
125
+ * Allocate and initialize data for a new document. XpdfViewer will
126
+ * pass the returned pointer to all other handler functions as the
127
+ * <docData> argument. Returns non-zero if successful.
128
+ */
129
+ XpdfBool (*newDoc)(void *handlerData, XpdfDoc doc,
130
+ XpdfObject encryptDict, void **docData);
131
+
132
+ /*
133
+ * Free the data allocated by newDoc.
134
+ */
135
+ void (*freeDoc)(void *handlerData, void *docData);
136
+
137
+ /*
138
+ * Construct authorization data based on the supplied owner and user
139
+ * passwords (either or both of which may be NULL). This function
140
+ * is called in "batch" mode, i.e., if the password was supplied on
141
+ * the command line or via an Xpdf library API. It should not
142
+ * generate any user interaction (e.g., a password dialog). It is
143
+ * not required to support this function: the makeAuthData function
144
+ * pointer can be set to NULL. Returns non-zero if successful.
145
+ */
146
+ XpdfBool (*makeAuthData)(void *handlerData, void *docData,
147
+ char *ownerPassword, char *userPassword,
148
+ void **authData);
149
+
150
+ /*
151
+ * Request any needed information (e.g., a password) from the user,
152
+ * and construct an authorization data object. Returns non-zero if
153
+ * successful.
154
+ */
155
+ XpdfBool (*getAuthData)(void *handlerData, void *docData,
156
+ void **authData);
157
+
158
+ /*
159
+ * Free the data allocated by getAuthData.
160
+ */
161
+ void (*freeAuthData)(void *handlerData, void *docData,
162
+ void *authData);
163
+
164
+ /*
165
+ * Request permission to access the document. This returns all
166
+ * permissions granted by authData.
167
+ */
168
+ XpdfPermission (*authorize)(void *handlerData, void *docData,
169
+ void *authData);
170
+
171
+ /*
172
+ * Get the decryption key and algorithm version associated with the
173
+ * document. Returns non-zero if successful.
174
+ */
175
+ XpdfBool (*getKey)(void *handlerData, void *docData,
176
+ char **key, int *keyLen, int *cryptVersion);
177
+
178
+ /*
179
+ * Free the data allocated by getKey.
180
+ */
181
+ void (*freeKey)(void *handlerData, void *docData,
182
+ char *key, int keyLen);
183
+
184
+ #ifdef __cplusplus
185
+ };
186
+ #else
187
+ } XpdfSecurityHandler;
188
+ #endif
189
+
190
+ /*------------------------------------------------------------------------*/
191
+
192
+ typedef struct {
193
+ int version;
194
+
195
+ /*------------------------------------------------------------------------
196
+ * Document access functions
197
+ *------------------------------------------------------------------------*/
198
+
199
+ /*
200
+ * Get a document's info dictionary. (The returned object must be
201
+ * freed with xpdfFreeObj.)
202
+ */
203
+ XpdfObject (*_xpdfGetInfoDict)(XpdfDoc doc);
204
+
205
+ /*
206
+ * Get a document's catalog ("root") dictionary. (The returned object
207
+ * must be freed with xpdfFreeObj.)
208
+ */
209
+ XpdfObject (*_xpdfGetCatalog)(XpdfDoc doc);
210
+
211
+ #ifdef _WIN32
212
+
213
+ /*
214
+ * Get the handle for the viewer window associated with the specified
215
+ * document. [Win32 only]
216
+ */
217
+ HWND (*_xpdfWin32GetWindow)(XpdfDoc doc);
218
+
219
+ #else
220
+
221
+ /*
222
+ * Get the Motif widget for the viewer window associated with the
223
+ * specified document. [X only]
224
+ */
225
+ Widget (*_xpdfXGetWindow)(XpdfDoc doc);
226
+
227
+ #endif
228
+
229
+ /*------------------------------------------------------------------------
230
+ * Object access functions
231
+ *------------------------------------------------------------------------*/
232
+
233
+ /*
234
+ * Check an object's type.
235
+ */
236
+ XpdfBool (*_xpdfObjIsBool)(XpdfObject obj);
237
+ XpdfBool (*_xpdfObjIsInt)(XpdfObject obj);
238
+ XpdfBool (*_xpdfObjIsReal)(XpdfObject obj);
239
+ XpdfBool (*_xpdfObjIsString)(XpdfObject obj);
240
+ XpdfBool (*_xpdfObjIsName)(XpdfObject obj);
241
+ XpdfBool (*_xpdfObjIsNull)(XpdfObject obj);
242
+ XpdfBool (*_xpdfObjIsArray)(XpdfObject obj);
243
+ XpdfBool (*_xpdfObjIsDict)(XpdfObject obj);
244
+ XpdfBool (*_xpdfObjIsStream)(XpdfObject obj);
245
+ XpdfBool (*_xpdfObjIsRef)(XpdfObject obj);
246
+
247
+ /*
248
+ * Value access.
249
+ * (Objects returned by xpdfArrayGet and xpdfDictGet must be freed
250
+ * with xpdfFreeObj.)
251
+ */
252
+ XpdfBool (*_xpdfBoolValue)(XpdfObject obj);
253
+ int (*_xpdfIntValue)(XpdfObject obj);
254
+ double (*_xpdfRealValue)(XpdfObject obj);
255
+ int (*_xpdfStringLength)(XpdfObject obj);
256
+ char *(*_xpdfStringValue)(XpdfObject obj);
257
+ char *(*_xpdfNameValue)(XpdfObject obj);
258
+ int (*_xpdfArrayLength)(XpdfObject obj);
259
+ XpdfObject (*_xpdfArrayGet)(XpdfObject obj, int idx);
260
+ XpdfObject (*_xpdfDictGet)(XpdfObject obj, char *key);
261
+
262
+ /*
263
+ * Object destruction. NB: *all* objects must be freed after use.
264
+ */
265
+ void (*_xpdfFreeObj)(XpdfObject obj);
266
+
267
+ /*------------------------------------------------------------------------
268
+ * Memory allocation functions
269
+ *------------------------------------------------------------------------*/
270
+
271
+ void *(*_xpdfMalloc)(int size);
272
+ void *(*_xpdfRealloc)(void *p, int size);
273
+ void (*_xpdfFree)(void *p);
274
+
275
+ /*------------------------------------------------------------------------
276
+ * Security handler functions
277
+ *------------------------------------------------------------------------*/
278
+
279
+ /*
280
+ * Register a new security handler.
281
+ */
282
+ void (*_xpdfRegisterSecurityHandler)(XpdfSecurityHandler *handler);
283
+
284
+ /*------------------------------------------------------------------------*/
285
+
286
+ } XpdfPluginVecTable;
287
+
288
+ #ifdef _WIN32
289
+
290
+ extern __declspec(dllexport) XpdfPluginVecTable xpdfPluginVecTable;
291
+
292
+ #define xpdfPluginSetup \
293
+ extern __declspec(dllexport) \
294
+ XpdfPluginVecTable xpdfPluginVecTable = {xpdfPluginAPIVersion};
295
+
296
+ #else
297
+
298
+ extern XpdfPluginVecTable xpdfPluginVecTable;
299
+
300
+ #define xpdfPluginSetup \
301
+ XpdfPluginVecTable xpdfPluginVecTable = {xpdfPluginAPIVersion};
302
+
303
+ #endif
304
+
305
+ #define xpdfGetInfoDict (*xpdfPluginVecTable._xpdfGetInfoDict)
306
+ #define xpdfGetCatalog (*xpdfPluginVecTable._xpdfGetCatalog)
307
+ #ifdef _WIN32
308
+ #define xpdfWin32GetWindow (*xpdfPluginVecTable._xpdfWin32GetWindow)
309
+ #else
310
+ #define xpdfXGetWindow (*xpdfPluginVecTable._xpdfXGetWindow)
311
+ #endif
312
+ #define xpdfObjIsBool (*xpdfPluginVecTable._xpdfObjIsBool)
313
+ #define xpdfObjIsInt (*xpdfPluginVecTable._xpdfObjIsInt)
314
+ #define xpdfObjIsReal (*xpdfPluginVecTable._xpdfObjIsReal)
315
+ #define xpdfObjIsString (*xpdfPluginVecTable._xpdfObjIsString)
316
+ #define xpdfObjIsName (*xpdfPluginVecTable._xpdfObjIsName)
317
+ #define xpdfObjIsNull (*xpdfPluginVecTable._xpdfObjIsNull)
318
+ #define xpdfObjIsArray (*xpdfPluginVecTable._xpdfObjIsArray)
319
+ #define xpdfObjIsDict (*xpdfPluginVecTable._xpdfObjIsDict)
320
+ #define xpdfObjIsStream (*xpdfPluginVecTable._xpdfObjIsStream)
321
+ #define xpdfObjIsRef (*xpdfPluginVecTable._xpdfObjIsRef)
322
+ #define xpdfBoolValue (*xpdfPluginVecTable._xpdfBoolValue)
323
+ #define xpdfIntValue (*xpdfPluginVecTable._xpdfIntValue)
324
+ #define xpdfRealValue (*xpdfPluginVecTable._xpdfRealValue)
325
+ #define xpdfStringLength (*xpdfPluginVecTable._xpdfStringLength)
326
+ #define xpdfStringValue (*xpdfPluginVecTable._xpdfStringValue)
327
+ #define xpdfNameValue (*xpdfPluginVecTable._xpdfNameValue)
328
+ #define xpdfArrayLength (*xpdfPluginVecTable._xpdfArrayLength)
329
+ #define xpdfArrayGet (*xpdfPluginVecTable._xpdfArrayGet)
330
+ #define xpdfDictGet (*xpdfPluginVecTable._xpdfDictGet)
331
+ #define xpdfFreeObj (*xpdfPluginVecTable._xpdfFreeObj)
332
+ #define xpdfMalloc (*xpdfPluginVecTable._xpdfMalloc)
333
+ #define xpdfRealloc (*xpdfPluginVecTable._xpdfRealloc)
334
+ #define xpdfFree (*xpdfPluginVecTable._xpdfFree)
335
+ #define xpdfRegisterSecurityHandler (*xpdfPluginVecTable._xpdfRegisterSecurityHandler)
336
+
337
+ #ifdef __cplusplus
338
+ }
339
+ #endif
340
+
341
+ #endif