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,415 @@
1
+ //========================================================================
2
+ //
3
+ // Link.h
4
+ //
5
+ // Copyright 1996-2003 Glyph & Cog, LLC
6
+ //
7
+ //========================================================================
8
+
9
+ #ifndef LINK_H
10
+ #define LINK_H
11
+
12
+ #include <aconf.h>
13
+
14
+ #ifdef USE_GCC_PRAGMAS
15
+ #pragma interface
16
+ #endif
17
+
18
+ #include "Object.h"
19
+
20
+ class GString;
21
+ class Array;
22
+ class Dict;
23
+
24
+ //------------------------------------------------------------------------
25
+ // LinkAction
26
+ //------------------------------------------------------------------------
27
+
28
+ enum LinkActionKind {
29
+ actionGoTo, // go to destination
30
+ actionGoToR, // go to destination in new file
31
+ actionLaunch, // launch app (or open document)
32
+ actionURI, // URI
33
+ actionNamed, // named action
34
+ actionMovie, // movie action
35
+ actionUnknown // anything else
36
+ };
37
+
38
+ class LinkAction {
39
+ public:
40
+
41
+ // Destructor.
42
+ virtual ~LinkAction() {}
43
+
44
+ // Was the LinkAction created successfully?
45
+ virtual GBool isOk() = 0;
46
+
47
+ // Check link action type.
48
+ virtual LinkActionKind getKind() = 0;
49
+
50
+ // Parse a destination (old-style action) name, string, or array.
51
+ static LinkAction *parseDest(Object *obj);
52
+
53
+ // Parse an action dictionary.
54
+ static LinkAction *parseAction(Object *obj, GString *baseURI = NULL);
55
+
56
+ // Extract a file name from a file specification (string or
57
+ // dictionary).
58
+ static GString *getFileSpecName(Object *fileSpecObj);
59
+ };
60
+
61
+ //------------------------------------------------------------------------
62
+ // LinkDest
63
+ //------------------------------------------------------------------------
64
+
65
+ enum LinkDestKind {
66
+ destXYZ,
67
+ destFit,
68
+ destFitH,
69
+ destFitV,
70
+ destFitR,
71
+ destFitB,
72
+ destFitBH,
73
+ destFitBV
74
+ };
75
+
76
+ class LinkDest {
77
+ public:
78
+
79
+ // Build a LinkDest from the array.
80
+ LinkDest(Array *a);
81
+
82
+ // Copy a LinkDest.
83
+ LinkDest *copy() { return new LinkDest(this); }
84
+
85
+ // Was the LinkDest created successfully?
86
+ GBool isOk() { return ok; }
87
+
88
+ // Accessors.
89
+ LinkDestKind getKind() { return kind; }
90
+ GBool isPageRef() { return pageIsRef; }
91
+ int getPageNum() { return pageNum; }
92
+ Ref getPageRef() { return pageRef; }
93
+ double getLeft() { return left; }
94
+ double getBottom() { return bottom; }
95
+ double getRight() { return right; }
96
+ double getTop() { return top; }
97
+ double getZoom() { return zoom; }
98
+ GBool getChangeLeft() { return changeLeft; }
99
+ GBool getChangeTop() { return changeTop; }
100
+ GBool getChangeZoom() { return changeZoom; }
101
+
102
+ private:
103
+
104
+ LinkDestKind kind; // destination type
105
+ GBool pageIsRef; // is the page a reference or number?
106
+ union {
107
+ Ref pageRef; // reference to page
108
+ int pageNum; // one-relative page number
109
+ };
110
+ double left, bottom; // position
111
+ double right, top;
112
+ double zoom; // zoom factor
113
+ GBool changeLeft, changeTop; // for destXYZ links, which position
114
+ GBool changeZoom; // components to change
115
+ GBool ok; // set if created successfully
116
+
117
+ LinkDest(LinkDest *dest);
118
+ };
119
+
120
+ //------------------------------------------------------------------------
121
+ // LinkGoTo
122
+ //------------------------------------------------------------------------
123
+
124
+ class LinkGoTo: public LinkAction {
125
+ public:
126
+
127
+ // Build a LinkGoTo from a destination (dictionary, name, or string).
128
+ LinkGoTo(Object *destObj);
129
+
130
+ // Destructor.
131
+ virtual ~LinkGoTo();
132
+
133
+ // Was the LinkGoTo created successfully?
134
+ virtual GBool isOk() { return dest || namedDest; }
135
+
136
+ // Accessors.
137
+ virtual LinkActionKind getKind() { return actionGoTo; }
138
+ LinkDest *getDest() { return dest; }
139
+ GString *getNamedDest() { return namedDest; }
140
+
141
+ private:
142
+
143
+ LinkDest *dest; // regular destination (NULL for remote
144
+ // link with bad destination)
145
+ GString *namedDest; // named destination (only one of dest and
146
+ // and namedDest may be non-NULL)
147
+ };
148
+
149
+ //------------------------------------------------------------------------
150
+ // LinkGoToR
151
+ //------------------------------------------------------------------------
152
+
153
+ class LinkGoToR: public LinkAction {
154
+ public:
155
+
156
+ // Build a LinkGoToR from a file spec (dictionary) and destination
157
+ // (dictionary, name, or string).
158
+ LinkGoToR(Object *fileSpecObj, Object *destObj);
159
+
160
+ // Destructor.
161
+ virtual ~LinkGoToR();
162
+
163
+ // Was the LinkGoToR created successfully?
164
+ virtual GBool isOk() { return fileName && (dest || namedDest); }
165
+
166
+ // Accessors.
167
+ virtual LinkActionKind getKind() { return actionGoToR; }
168
+ GString *getFileName() { return fileName; }
169
+ LinkDest *getDest() { return dest; }
170
+ GString *getNamedDest() { return namedDest; }
171
+
172
+ private:
173
+
174
+ GString *fileName; // file name
175
+ LinkDest *dest; // regular destination (NULL for remote
176
+ // link with bad destination)
177
+ GString *namedDest; // named destination (only one of dest and
178
+ // and namedDest may be non-NULL)
179
+ };
180
+
181
+ //------------------------------------------------------------------------
182
+ // LinkLaunch
183
+ //------------------------------------------------------------------------
184
+
185
+ class LinkLaunch: public LinkAction {
186
+ public:
187
+
188
+ // Build a LinkLaunch from an action dictionary.
189
+ LinkLaunch(Object *actionObj);
190
+
191
+ // Destructor.
192
+ virtual ~LinkLaunch();
193
+
194
+ // Was the LinkLaunch created successfully?
195
+ virtual GBool isOk() { return fileName != NULL; }
196
+
197
+ // Accessors.
198
+ virtual LinkActionKind getKind() { return actionLaunch; }
199
+ GString *getFileName() { return fileName; }
200
+ GString *getParams() { return params; }
201
+
202
+ private:
203
+
204
+ GString *fileName; // file name
205
+ GString *params; // parameters
206
+ };
207
+
208
+ //------------------------------------------------------------------------
209
+ // LinkURI
210
+ //------------------------------------------------------------------------
211
+
212
+ class LinkURI: public LinkAction {
213
+ public:
214
+
215
+ // Build a LinkURI given the URI (string) and base URI.
216
+ LinkURI(Object *uriObj, GString *baseURI);
217
+
218
+ // Destructor.
219
+ virtual ~LinkURI();
220
+
221
+ // Was the LinkURI created successfully?
222
+ virtual GBool isOk() { return uri != NULL; }
223
+
224
+ // Accessors.
225
+ virtual LinkActionKind getKind() { return actionURI; }
226
+ GString *getURI() { return uri; }
227
+
228
+ private:
229
+
230
+ GString *uri; // the URI
231
+ };
232
+
233
+ //------------------------------------------------------------------------
234
+ // LinkNamed
235
+ //------------------------------------------------------------------------
236
+
237
+ class LinkNamed: public LinkAction {
238
+ public:
239
+
240
+ // Build a LinkNamed given the action name.
241
+ LinkNamed(Object *nameObj);
242
+
243
+ virtual ~LinkNamed();
244
+
245
+ virtual GBool isOk() { return name != NULL; }
246
+
247
+ virtual LinkActionKind getKind() { return actionNamed; }
248
+ GString *getName() { return name; }
249
+
250
+ private:
251
+
252
+ GString *name;
253
+ };
254
+
255
+ //------------------------------------------------------------------------
256
+ // LinkMovie
257
+ //------------------------------------------------------------------------
258
+
259
+ class LinkMovie: public LinkAction {
260
+ public:
261
+
262
+ LinkMovie(Object *annotObj, Object *titleObj);
263
+
264
+ virtual ~LinkMovie();
265
+
266
+ virtual GBool isOk() { return annotRef.num >= 0 || title != NULL; }
267
+
268
+ virtual LinkActionKind getKind() { return actionMovie; }
269
+ GBool hasAnnotRef() { return annotRef.num >= 0; }
270
+ Ref *getAnnotRef() { return &annotRef; }
271
+ GString *getTitle() { return title; }
272
+
273
+ private:
274
+
275
+ Ref annotRef;
276
+ GString *title;
277
+ };
278
+
279
+ //------------------------------------------------------------------------
280
+ // LinkUnknown
281
+ //------------------------------------------------------------------------
282
+
283
+ class LinkUnknown: public LinkAction {
284
+ public:
285
+
286
+ // Build a LinkUnknown with the specified action type.
287
+ LinkUnknown(char *actionA);
288
+
289
+ // Destructor.
290
+ virtual ~LinkUnknown();
291
+
292
+ // Was the LinkUnknown create successfully?
293
+ virtual GBool isOk() { return action != NULL; }
294
+
295
+ // Accessors.
296
+ virtual LinkActionKind getKind() { return actionUnknown; }
297
+ GString *getAction() { return action; }
298
+
299
+ private:
300
+
301
+ GString *action; // action subtype
302
+ };
303
+
304
+ //------------------------------------------------------------------------
305
+ // LinkBorderStyle
306
+ //------------------------------------------------------------------------
307
+
308
+ enum LinkBorderType {
309
+ linkBorderSolid,
310
+ linkBorderDashed,
311
+ linkBorderEmbossed,
312
+ linkBorderEngraved,
313
+ linkBorderUnderlined
314
+ };
315
+
316
+ class LinkBorderStyle {
317
+ public:
318
+
319
+ LinkBorderStyle(LinkBorderType typeA, double widthA,
320
+ double *dashA, int dashLengthA,
321
+ double rA, double gA, double bA);
322
+ ~LinkBorderStyle();
323
+
324
+ LinkBorderType getType() { return type; }
325
+ double getWidth() { return width; }
326
+ void getDash(double **dashA, int *dashLengthA)
327
+ { *dashA = dash; *dashLengthA = dashLength; }
328
+ void getColor(double *rA, double *gA, double *bA)
329
+ { *rA = r; *gA = g; *bA = b; }
330
+
331
+ private:
332
+
333
+ LinkBorderType type;
334
+ double width;
335
+ double *dash;
336
+ int dashLength;
337
+ double r, g, b;
338
+ };
339
+
340
+ //------------------------------------------------------------------------
341
+ // Link
342
+ //------------------------------------------------------------------------
343
+
344
+ class Link {
345
+ public:
346
+
347
+ // Construct a link, given its dictionary.
348
+ Link(Dict *dict, GString *baseURI);
349
+
350
+ // Destructor.
351
+ ~Link();
352
+
353
+ // Was the link created successfully?
354
+ GBool isOk() { return ok; }
355
+
356
+ // Check if point is inside the link rectangle.
357
+ GBool inRect(double x, double y)
358
+ { return x1 <= x && x <= x2 && y1 <= y && y <= y2; }
359
+
360
+ // Get action.
361
+ LinkAction *getAction() { return action; }
362
+
363
+ // Get the link rectangle.
364
+ void getRect(double *xa1, double *ya1, double *xa2, double *ya2)
365
+ { *xa1 = x1; *ya1 = y1; *xa2 = x2; *ya2 = y2; }
366
+
367
+ // Get the border style info.
368
+ LinkBorderStyle *getBorderStyle() { return borderStyle; }
369
+
370
+ // Get border corners and width.
371
+ void getBorder(double *xa1, double *ya1, double *xa2, double *ya2,
372
+ double *wa)
373
+ { *xa1 = x1; *ya1 = y1; *xa2 = x2; *ya2 = y2; *wa = borderW; }
374
+
375
+ private:
376
+
377
+ double x1, y1; // lower left corner
378
+ double x2, y2; // upper right corner
379
+ double borderW; // border width
380
+ LinkBorderStyle *borderStyle; // border style
381
+ LinkAction *action; // action
382
+ GBool ok; // is link valid?
383
+ };
384
+
385
+ //------------------------------------------------------------------------
386
+ // Links
387
+ //------------------------------------------------------------------------
388
+
389
+ class Links {
390
+ public:
391
+
392
+ // Extract links from array of annotations.
393
+ Links(Object *annots, GString *baseURI);
394
+
395
+ // Destructor.
396
+ ~Links();
397
+
398
+ // Iterate through list of links.
399
+ int getNumLinks() { return numLinks; }
400
+ Link *getLink(int i) { return links[i]; }
401
+
402
+ // If point <x>,<y> is in a link, return the associated action;
403
+ // else return NULL.
404
+ LinkAction *find(double x, double y);
405
+
406
+ // Return true if <x>,<y> is in a link.
407
+ GBool onLink(double x, double y);
408
+
409
+ private:
410
+
411
+ Link **links;
412
+ int numLinks;
413
+ };
414
+
415
+ #endif
@@ -0,0 +1,369 @@
1
+ //========================================================================
2
+ //
3
+ // Link.h
4
+ //
5
+ // Copyright 1996-2003 Glyph & Cog, LLC
6
+ //
7
+ //========================================================================
8
+
9
+ #ifndef LINK_H
10
+ #define LINK_H
11
+
12
+ #include <aconf.h>
13
+
14
+ #ifdef USE_GCC_PRAGMAS
15
+ #pragma interface
16
+ #endif
17
+
18
+ #include "Object.h"
19
+
20
+ class GString;
21
+ class Array;
22
+ class Dict;
23
+
24
+ //------------------------------------------------------------------------
25
+ // LinkAction
26
+ //------------------------------------------------------------------------
27
+
28
+ enum LinkActionKind {
29
+ actionGoTo, // go to destination
30
+ actionGoToR, // go to destination in new file
31
+ actionLaunch, // launch app (or open document)
32
+ actionURI, // URI
33
+ actionNamed, // named action
34
+ actionMovie, // movie action
35
+ actionUnknown // anything else
36
+ };
37
+
38
+ class LinkAction {
39
+ public:
40
+
41
+ // Destructor.
42
+ virtual ~LinkAction() {}
43
+
44
+ // Was the LinkAction created successfully?
45
+ virtual GBool isOk() = 0;
46
+
47
+ // Check link action type.
48
+ virtual LinkActionKind getKind() = 0;
49
+
50
+ // Parse a destination (old-style action) name, string, or array.
51
+ static LinkAction *parseDest(Object *obj);
52
+
53
+ // Parse an action dictionary.
54
+ static LinkAction *parseAction(Object *obj, GString *baseURI = NULL);
55
+
56
+ // Extract a file name from a file specification (string or
57
+ // dictionary).
58
+ static GString *getFileSpecName(Object *fileSpecObj);
59
+ };
60
+
61
+ //------------------------------------------------------------------------
62
+ // LinkDest
63
+ //------------------------------------------------------------------------
64
+
65
+ enum LinkDestKind {
66
+ destXYZ,
67
+ destFit,
68
+ destFitH,
69
+ destFitV,
70
+ destFitR,
71
+ destFitB,
72
+ destFitBH,
73
+ destFitBV
74
+ };
75
+
76
+ class LinkDest {
77
+ public:
78
+
79
+ // Build a LinkDest from the array.
80
+ LinkDest(Array *a);
81
+
82
+ // Copy a LinkDest.
83
+ LinkDest *copy() { return new LinkDest(this); }
84
+
85
+ // Was the LinkDest created successfully?
86
+ GBool isOk() { return ok; }
87
+
88
+ // Accessors.
89
+ LinkDestKind getKind() { return kind; }
90
+ GBool isPageRef() { return pageIsRef; }
91
+ int getPageNum() { return pageNum; }
92
+ Ref getPageRef() { return pageRef; }
93
+ double getLeft() { return left; }
94
+ double getBottom() { return bottom; }
95
+ double getRight() { return right; }
96
+ double getTop() { return top; }
97
+ double getZoom() { return zoom; }
98
+ GBool getChangeLeft() { return changeLeft; }
99
+ GBool getChangeTop() { return changeTop; }
100
+ GBool getChangeZoom() { return changeZoom; }
101
+
102
+ private:
103
+
104
+ LinkDestKind kind; // destination type
105
+ GBool pageIsRef; // is the page a reference or number?
106
+ union {
107
+ Ref pageRef; // reference to page
108
+ int pageNum; // one-relative page number
109
+ };
110
+ double left, bottom; // position
111
+ double right, top;
112
+ double zoom; // zoom factor
113
+ GBool changeLeft, changeTop; // for destXYZ links, which position
114
+ GBool changeZoom; // components to change
115
+ GBool ok; // set if created successfully
116
+
117
+ LinkDest(LinkDest *dest);
118
+ };
119
+
120
+ //------------------------------------------------------------------------
121
+ // LinkGoTo
122
+ //------------------------------------------------------------------------
123
+
124
+ class LinkGoTo: public LinkAction {
125
+ public:
126
+
127
+ // Build a LinkGoTo from a destination (dictionary, name, or string).
128
+ LinkGoTo(Object *destObj);
129
+
130
+ // Destructor.
131
+ virtual ~LinkGoTo();
132
+
133
+ // Was the LinkGoTo created successfully?
134
+ virtual GBool isOk() { return dest || namedDest; }
135
+
136
+ // Accessors.
137
+ virtual LinkActionKind getKind() { return actionGoTo; }
138
+ LinkDest *getDest() { return dest; }
139
+ GString *getNamedDest() { return namedDest; }
140
+
141
+ private:
142
+
143
+ LinkDest *dest; // regular destination (NULL for remote
144
+ // link with bad destination)
145
+ GString *namedDest; // named destination (only one of dest and
146
+ // and namedDest may be non-NULL)
147
+ };
148
+
149
+ //------------------------------------------------------------------------
150
+ // LinkGoToR
151
+ //------------------------------------------------------------------------
152
+
153
+ class LinkGoToR: public LinkAction {
154
+ public:
155
+
156
+ // Build a LinkGoToR from a file spec (dictionary) and destination
157
+ // (dictionary, name, or string).
158
+ LinkGoToR(Object *fileSpecObj, Object *destObj);
159
+
160
+ // Destructor.
161
+ virtual ~LinkGoToR();
162
+
163
+ // Was the LinkGoToR created successfully?
164
+ virtual GBool isOk() { return fileName && (dest || namedDest); }
165
+
166
+ // Accessors.
167
+ virtual LinkActionKind getKind() { return actionGoToR; }
168
+ GString *getFileName() { return fileName; }
169
+ LinkDest *getDest() { return dest; }
170
+ GString *getNamedDest() { return namedDest; }
171
+
172
+ private:
173
+
174
+ GString *fileName; // file name
175
+ LinkDest *dest; // regular destination (NULL for remote
176
+ // link with bad destination)
177
+ GString *namedDest; // named destination (only one of dest and
178
+ // and namedDest may be non-NULL)
179
+ };
180
+
181
+ //------------------------------------------------------------------------
182
+ // LinkLaunch
183
+ //------------------------------------------------------------------------
184
+
185
+ class LinkLaunch: public LinkAction {
186
+ public:
187
+
188
+ // Build a LinkLaunch from an action dictionary.
189
+ LinkLaunch(Object *actionObj);
190
+
191
+ // Destructor.
192
+ virtual ~LinkLaunch();
193
+
194
+ // Was the LinkLaunch created successfully?
195
+ virtual GBool isOk() { return fileName != NULL; }
196
+
197
+ // Accessors.
198
+ virtual LinkActionKind getKind() { return actionLaunch; }
199
+ GString *getFileName() { return fileName; }
200
+ GString *getParams() { return params; }
201
+
202
+ private:
203
+
204
+ GString *fileName; // file name
205
+ GString *params; // parameters
206
+ };
207
+
208
+ //------------------------------------------------------------------------
209
+ // LinkURI
210
+ //------------------------------------------------------------------------
211
+
212
+ class LinkURI: public LinkAction {
213
+ public:
214
+
215
+ // Build a LinkURI given the URI (string) and base URI.
216
+ LinkURI(Object *uriObj, GString *baseURI);
217
+
218
+ // Destructor.
219
+ virtual ~LinkURI();
220
+
221
+ // Was the LinkURI created successfully?
222
+ virtual GBool isOk() { return uri != NULL; }
223
+
224
+ // Accessors.
225
+ virtual LinkActionKind getKind() { return actionURI; }
226
+ GString *getURI() { return uri; }
227
+
228
+ private:
229
+
230
+ GString *uri; // the URI
231
+ };
232
+
233
+ //------------------------------------------------------------------------
234
+ // LinkNamed
235
+ //------------------------------------------------------------------------
236
+
237
+ class LinkNamed: public LinkAction {
238
+ public:
239
+
240
+ // Build a LinkNamed given the action name.
241
+ LinkNamed(Object *nameObj);
242
+
243
+ virtual ~LinkNamed();
244
+
245
+ virtual GBool isOk() { return name != NULL; }
246
+
247
+ virtual LinkActionKind getKind() { return actionNamed; }
248
+ GString *getName() { return name; }
249
+
250
+ private:
251
+
252
+ GString *name;
253
+ };
254
+
255
+ //------------------------------------------------------------------------
256
+ // LinkMovie
257
+ //------------------------------------------------------------------------
258
+
259
+ class LinkMovie: public LinkAction {
260
+ public:
261
+
262
+ LinkMovie(Object *annotObj, Object *titleObj);
263
+
264
+ virtual ~LinkMovie();
265
+
266
+ virtual GBool isOk() { return annotRef.num >= 0 || title != NULL; }
267
+
268
+ virtual LinkActionKind getKind() { return actionMovie; }
269
+ GBool hasAnnotRef() { return annotRef.num >= 0; }
270
+ Ref *getAnnotRef() { return &annotRef; }
271
+ GString *getTitle() { return title; }
272
+
273
+ private:
274
+
275
+ Ref annotRef;
276
+ GString *title;
277
+ };
278
+
279
+ //------------------------------------------------------------------------
280
+ // LinkUnknown
281
+ //------------------------------------------------------------------------
282
+
283
+ class LinkUnknown: public LinkAction {
284
+ public:
285
+
286
+ // Build a LinkUnknown with the specified action type.
287
+ LinkUnknown(char *actionA);
288
+
289
+ // Destructor.
290
+ virtual ~LinkUnknown();
291
+
292
+ // Was the LinkUnknown create successfully?
293
+ virtual GBool isOk() { return action != NULL; }
294
+
295
+ // Accessors.
296
+ virtual LinkActionKind getKind() { return actionUnknown; }
297
+ GString *getAction() { return action; }
298
+
299
+ private:
300
+
301
+ GString *action; // action subtype
302
+ };
303
+
304
+ //------------------------------------------------------------------------
305
+ // Link
306
+ //------------------------------------------------------------------------
307
+
308
+ class Link {
309
+ public:
310
+
311
+ // Construct a link, given its dictionary.
312
+ Link(Dict *dict, GString *baseURI);
313
+
314
+ // Destructor.
315
+ ~Link();
316
+
317
+ // Was the link created successfully?
318
+ GBool isOk() { return ok; }
319
+
320
+ // Check if point is inside the link rectangle.
321
+ GBool inRect(double x, double y)
322
+ { return x1 <= x && x <= x2 && y1 <= y && y <= y2; }
323
+
324
+ // Get action.
325
+ LinkAction *getAction() { return action; }
326
+
327
+ // Get the link rectangle.
328
+ void getRect(double *xa1, double *ya1, double *xa2, double *ya2)
329
+ { *xa1 = x1; *ya1 = y1; *xa2 = x2; *ya2 = y2; }
330
+
331
+ private:
332
+
333
+ double x1, y1; // lower left corner
334
+ double x2, y2; // upper right corner
335
+ LinkAction *action; // action
336
+ GBool ok; // is link valid?
337
+ };
338
+
339
+ //------------------------------------------------------------------------
340
+ // Links
341
+ //------------------------------------------------------------------------
342
+
343
+ class Links {
344
+ public:
345
+
346
+ // Extract links from array of annotations.
347
+ Links(Object *annots, GString *baseURI);
348
+
349
+ // Destructor.
350
+ ~Links();
351
+
352
+ // Iterate through list of links.
353
+ int getNumLinks() { return numLinks; }
354
+ Link *getLink(int i) { return links[i]; }
355
+
356
+ // If point <x>,<y> is in a link, return the associated action;
357
+ // else return NULL.
358
+ LinkAction *find(double x, double y);
359
+
360
+ // Return true if <x>,<y> is in a link.
361
+ GBool onLink(double x, double y);
362
+
363
+ private:
364
+
365
+ Link **links;
366
+ int numLinks;
367
+ };
368
+
369
+ #endif