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,712 @@
1
+ /***************************************************************************/
2
+ /* */
3
+ /* pshints.h */
4
+ /* */
5
+ /* Interface to Postscript-specific (Type 1 and Type 2) hints */
6
+ /* recorders (specification only). These are used to support native */
7
+ /* T1/T2 hints in the `type1', `cid', and `cff' font drivers. */
8
+ /* */
9
+ /* Copyright 2001, 2002, 2003, 2005, 2006, 2007, 2009 by */
10
+ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
11
+ /* */
12
+ /* This file is part of the FreeType project, and may only be used, */
13
+ /* modified, and distributed under the terms of the FreeType project */
14
+ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
15
+ /* this file you indicate that you have read the license and */
16
+ /* understand and accept it fully. */
17
+ /* */
18
+ /***************************************************************************/
19
+
20
+
21
+ #ifndef __PSHINTS_H__
22
+ #define __PSHINTS_H__
23
+
24
+
25
+ #include <ft2build.h>
26
+ #include FT_FREETYPE_H
27
+ #include FT_TYPE1_TABLES_H
28
+
29
+
30
+ FT_BEGIN_HEADER
31
+
32
+
33
+ /*************************************************************************/
34
+ /*************************************************************************/
35
+ /***** *****/
36
+ /***** INTERNAL REPRESENTATION OF GLOBALS *****/
37
+ /***** *****/
38
+ /*************************************************************************/
39
+ /*************************************************************************/
40
+
41
+ typedef struct PSH_GlobalsRec_* PSH_Globals;
42
+
43
+ typedef FT_Error
44
+ (*PSH_Globals_NewFunc)( FT_Memory memory,
45
+ T1_Private* private_dict,
46
+ PSH_Globals* aglobals );
47
+
48
+ typedef FT_Error
49
+ (*PSH_Globals_SetScaleFunc)( PSH_Globals globals,
50
+ FT_Fixed x_scale,
51
+ FT_Fixed y_scale,
52
+ FT_Fixed x_delta,
53
+ FT_Fixed y_delta );
54
+
55
+ typedef void
56
+ (*PSH_Globals_DestroyFunc)( PSH_Globals globals );
57
+
58
+
59
+ typedef struct PSH_Globals_FuncsRec_
60
+ {
61
+ PSH_Globals_NewFunc create;
62
+ PSH_Globals_SetScaleFunc set_scale;
63
+ PSH_Globals_DestroyFunc destroy;
64
+
65
+ } PSH_Globals_FuncsRec, *PSH_Globals_Funcs;
66
+
67
+
68
+ /*************************************************************************/
69
+ /*************************************************************************/
70
+ /***** *****/
71
+ /***** PUBLIC TYPE 1 HINTS RECORDER *****/
72
+ /***** *****/
73
+ /*************************************************************************/
74
+ /*************************************************************************/
75
+
76
+ /*************************************************************************
77
+ *
78
+ * @type:
79
+ * T1_Hints
80
+ *
81
+ * @description:
82
+ * This is a handle to an opaque structure used to record glyph hints
83
+ * from a Type 1 character glyph character string.
84
+ *
85
+ * The methods used to operate on this object are defined by the
86
+ * @T1_Hints_FuncsRec structure. Recording glyph hints is normally
87
+ * achieved through the following scheme:
88
+ *
89
+ * - Open a new hint recording session by calling the `open' method.
90
+ * This rewinds the recorder and prepare it for new input.
91
+ *
92
+ * - For each hint found in the glyph charstring, call the corresponding
93
+ * method (`stem', `stem3', or `reset'). Note that these functions do
94
+ * not return an error code.
95
+ *
96
+ * - Close the recording session by calling the `close' method. It
97
+ * returns an error code if the hints were invalid or something
98
+ * strange happened (e.g., memory shortage).
99
+ *
100
+ * The hints accumulated in the object can later be used by the
101
+ * PostScript hinter.
102
+ *
103
+ */
104
+ typedef struct T1_HintsRec_* T1_Hints;
105
+
106
+
107
+ /*************************************************************************
108
+ *
109
+ * @type:
110
+ * T1_Hints_Funcs
111
+ *
112
+ * @description:
113
+ * A pointer to the @T1_Hints_FuncsRec structure that defines the API of
114
+ * a given @T1_Hints object.
115
+ *
116
+ */
117
+ typedef const struct T1_Hints_FuncsRec_* T1_Hints_Funcs;
118
+
119
+
120
+ /*************************************************************************
121
+ *
122
+ * @functype:
123
+ * T1_Hints_OpenFunc
124
+ *
125
+ * @description:
126
+ * A method of the @T1_Hints class used to prepare it for a new Type 1
127
+ * hints recording session.
128
+ *
129
+ * @input:
130
+ * hints ::
131
+ * A handle to the Type 1 hints recorder.
132
+ *
133
+ * @note:
134
+ * You should always call the @T1_Hints_CloseFunc method in order to
135
+ * close an opened recording session.
136
+ *
137
+ */
138
+ typedef void
139
+ (*T1_Hints_OpenFunc)( T1_Hints hints );
140
+
141
+
142
+ /*************************************************************************
143
+ *
144
+ * @functype:
145
+ * T1_Hints_SetStemFunc
146
+ *
147
+ * @description:
148
+ * A method of the @T1_Hints class used to record a new horizontal or
149
+ * vertical stem. This corresponds to the Type 1 `hstem' and `vstem'
150
+ * operators.
151
+ *
152
+ * @input:
153
+ * hints ::
154
+ * A handle to the Type 1 hints recorder.
155
+ *
156
+ * dimension ::
157
+ * 0 for horizontal stems (hstem), 1 for vertical ones (vstem).
158
+ *
159
+ * coords ::
160
+ * Array of 2 coordinates in 16.16 format, used as (position,length)
161
+ * stem descriptor.
162
+ *
163
+ * @note:
164
+ * Use vertical coordinates (y) for horizontal stems (dim=0). Use
165
+ * horizontal coordinates (x) for vertical stems (dim=1).
166
+ *
167
+ * `coords[0]' is the absolute stem position (lowest coordinate);
168
+ * `coords[1]' is the length.
169
+ *
170
+ * The length can be negative, in which case it must be either -20 or
171
+ * -21. It is interpreted as a `ghost' stem, according to the Type 1
172
+ * specification.
173
+ *
174
+ * If the length is -21 (corresponding to a bottom ghost stem), then
175
+ * the real stem position is `coords[0]+coords[1]'.
176
+ *
177
+ */
178
+ typedef void
179
+ (*T1_Hints_SetStemFunc)( T1_Hints hints,
180
+ FT_UInt dimension,
181
+ FT_Fixed* coords );
182
+
183
+
184
+ /*************************************************************************
185
+ *
186
+ * @functype:
187
+ * T1_Hints_SetStem3Func
188
+ *
189
+ * @description:
190
+ * A method of the @T1_Hints class used to record three
191
+ * counter-controlled horizontal or vertical stems at once.
192
+ *
193
+ * @input:
194
+ * hints ::
195
+ * A handle to the Type 1 hints recorder.
196
+ *
197
+ * dimension ::
198
+ * 0 for horizontal stems, 1 for vertical ones.
199
+ *
200
+ * coords ::
201
+ * An array of 6 values in 16.16 format, holding 3 (position,length)
202
+ * pairs for the counter-controlled stems.
203
+ *
204
+ * @note:
205
+ * Use vertical coordinates (y) for horizontal stems (dim=0). Use
206
+ * horizontal coordinates (x) for vertical stems (dim=1).
207
+ *
208
+ * The lengths cannot be negative (ghost stems are never
209
+ * counter-controlled).
210
+ *
211
+ */
212
+ typedef void
213
+ (*T1_Hints_SetStem3Func)( T1_Hints hints,
214
+ FT_UInt dimension,
215
+ FT_Fixed* coords );
216
+
217
+
218
+ /*************************************************************************
219
+ *
220
+ * @functype:
221
+ * T1_Hints_ResetFunc
222
+ *
223
+ * @description:
224
+ * A method of the @T1_Hints class used to reset the stems hints in a
225
+ * recording session.
226
+ *
227
+ * @input:
228
+ * hints ::
229
+ * A handle to the Type 1 hints recorder.
230
+ *
231
+ * end_point ::
232
+ * The index of the last point in the input glyph in which the
233
+ * previously defined hints apply.
234
+ *
235
+ */
236
+ typedef void
237
+ (*T1_Hints_ResetFunc)( T1_Hints hints,
238
+ FT_UInt end_point );
239
+
240
+
241
+ /*************************************************************************
242
+ *
243
+ * @functype:
244
+ * T1_Hints_CloseFunc
245
+ *
246
+ * @description:
247
+ * A method of the @T1_Hints class used to close a hint recording
248
+ * session.
249
+ *
250
+ * @input:
251
+ * hints ::
252
+ * A handle to the Type 1 hints recorder.
253
+ *
254
+ * end_point ::
255
+ * The index of the last point in the input glyph.
256
+ *
257
+ * @return:
258
+ * FreeType error code. 0 means success.
259
+ *
260
+ * @note:
261
+ * The error code is set to indicate that an error occurred during the
262
+ * recording session.
263
+ *
264
+ */
265
+ typedef FT_Error
266
+ (*T1_Hints_CloseFunc)( T1_Hints hints,
267
+ FT_UInt end_point );
268
+
269
+
270
+ /*************************************************************************
271
+ *
272
+ * @functype:
273
+ * T1_Hints_ApplyFunc
274
+ *
275
+ * @description:
276
+ * A method of the @T1_Hints class used to apply hints to the
277
+ * corresponding glyph outline. Must be called once all hints have been
278
+ * recorded.
279
+ *
280
+ * @input:
281
+ * hints ::
282
+ * A handle to the Type 1 hints recorder.
283
+ *
284
+ * outline ::
285
+ * A pointer to the target outline descriptor.
286
+ *
287
+ * globals ::
288
+ * The hinter globals for this font.
289
+ *
290
+ * hint_mode ::
291
+ * Hinting information.
292
+ *
293
+ * @return:
294
+ * FreeType error code. 0 means success.
295
+ *
296
+ * @note:
297
+ * On input, all points within the outline are in font coordinates. On
298
+ * output, they are in 1/64th of pixels.
299
+ *
300
+ * The scaling transformation is taken from the `globals' object which
301
+ * must correspond to the same font as the glyph.
302
+ *
303
+ */
304
+ typedef FT_Error
305
+ (*T1_Hints_ApplyFunc)( T1_Hints hints,
306
+ FT_Outline* outline,
307
+ PSH_Globals globals,
308
+ FT_Render_Mode hint_mode );
309
+
310
+
311
+ /*************************************************************************
312
+ *
313
+ * @struct:
314
+ * T1_Hints_FuncsRec
315
+ *
316
+ * @description:
317
+ * The structure used to provide the API to @T1_Hints objects.
318
+ *
319
+ * @fields:
320
+ * hints ::
321
+ * A handle to the T1 Hints recorder.
322
+ *
323
+ * open ::
324
+ * The function to open a recording session.
325
+ *
326
+ * close ::
327
+ * The function to close a recording session.
328
+ *
329
+ * stem ::
330
+ * The function to set a simple stem.
331
+ *
332
+ * stem3 ::
333
+ * The function to set counter-controlled stems.
334
+ *
335
+ * reset ::
336
+ * The function to reset stem hints.
337
+ *
338
+ * apply ::
339
+ * The function to apply the hints to the corresponding glyph outline.
340
+ *
341
+ */
342
+ typedef struct T1_Hints_FuncsRec_
343
+ {
344
+ T1_Hints hints;
345
+ T1_Hints_OpenFunc open;
346
+ T1_Hints_CloseFunc close;
347
+ T1_Hints_SetStemFunc stem;
348
+ T1_Hints_SetStem3Func stem3;
349
+ T1_Hints_ResetFunc reset;
350
+ T1_Hints_ApplyFunc apply;
351
+
352
+ } T1_Hints_FuncsRec;
353
+
354
+
355
+ /*************************************************************************/
356
+ /*************************************************************************/
357
+ /***** *****/
358
+ /***** PUBLIC TYPE 2 HINTS RECORDER *****/
359
+ /***** *****/
360
+ /*************************************************************************/
361
+ /*************************************************************************/
362
+
363
+ /*************************************************************************
364
+ *
365
+ * @type:
366
+ * T2_Hints
367
+ *
368
+ * @description:
369
+ * This is a handle to an opaque structure used to record glyph hints
370
+ * from a Type 2 character glyph character string.
371
+ *
372
+ * The methods used to operate on this object are defined by the
373
+ * @T2_Hints_FuncsRec structure. Recording glyph hints is normally
374
+ * achieved through the following scheme:
375
+ *
376
+ * - Open a new hint recording session by calling the `open' method.
377
+ * This rewinds the recorder and prepare it for new input.
378
+ *
379
+ * - For each hint found in the glyph charstring, call the corresponding
380
+ * method (`stems', `hintmask', `counters'). Note that these
381
+ * functions do not return an error code.
382
+ *
383
+ * - Close the recording session by calling the `close' method. It
384
+ * returns an error code if the hints were invalid or something
385
+ * strange happened (e.g., memory shortage).
386
+ *
387
+ * The hints accumulated in the object can later be used by the
388
+ * Postscript hinter.
389
+ *
390
+ */
391
+ typedef struct T2_HintsRec_* T2_Hints;
392
+
393
+
394
+ /*************************************************************************
395
+ *
396
+ * @type:
397
+ * T2_Hints_Funcs
398
+ *
399
+ * @description:
400
+ * A pointer to the @T2_Hints_FuncsRec structure that defines the API of
401
+ * a given @T2_Hints object.
402
+ *
403
+ */
404
+ typedef const struct T2_Hints_FuncsRec_* T2_Hints_Funcs;
405
+
406
+
407
+ /*************************************************************************
408
+ *
409
+ * @functype:
410
+ * T2_Hints_OpenFunc
411
+ *
412
+ * @description:
413
+ * A method of the @T2_Hints class used to prepare it for a new Type 2
414
+ * hints recording session.
415
+ *
416
+ * @input:
417
+ * hints ::
418
+ * A handle to the Type 2 hints recorder.
419
+ *
420
+ * @note:
421
+ * You should always call the @T2_Hints_CloseFunc method in order to
422
+ * close an opened recording session.
423
+ *
424
+ */
425
+ typedef void
426
+ (*T2_Hints_OpenFunc)( T2_Hints hints );
427
+
428
+
429
+ /*************************************************************************
430
+ *
431
+ * @functype:
432
+ * T2_Hints_StemsFunc
433
+ *
434
+ * @description:
435
+ * A method of the @T2_Hints class used to set the table of stems in
436
+ * either the vertical or horizontal dimension. Equivalent to the
437
+ * `hstem', `vstem', `hstemhm', and `vstemhm' Type 2 operators.
438
+ *
439
+ * @input:
440
+ * hints ::
441
+ * A handle to the Type 2 hints recorder.
442
+ *
443
+ * dimension ::
444
+ * 0 for horizontal stems (hstem), 1 for vertical ones (vstem).
445
+ *
446
+ * count ::
447
+ * The number of stems.
448
+ *
449
+ * coords ::
450
+ * An array of `count' (position,length) pairs in 16.16 format.
451
+ *
452
+ * @note:
453
+ * Use vertical coordinates (y) for horizontal stems (dim=0). Use
454
+ * horizontal coordinates (x) for vertical stems (dim=1).
455
+ *
456
+ * There are `2*count' elements in the `coords' array. Each even
457
+ * element is an absolute position in font units, each odd element is a
458
+ * length in font units.
459
+ *
460
+ * A length can be negative, in which case it must be either -20 or
461
+ * -21. It is interpreted as a `ghost' stem, according to the Type 1
462
+ * specification.
463
+ *
464
+ */
465
+ typedef void
466
+ (*T2_Hints_StemsFunc)( T2_Hints hints,
467
+ FT_UInt dimension,
468
+ FT_UInt count,
469
+ FT_Fixed* coordinates );
470
+
471
+
472
+ /*************************************************************************
473
+ *
474
+ * @functype:
475
+ * T2_Hints_MaskFunc
476
+ *
477
+ * @description:
478
+ * A method of the @T2_Hints class used to set a given hintmask (this
479
+ * corresponds to the `hintmask' Type 2 operator).
480
+ *
481
+ * @input:
482
+ * hints ::
483
+ * A handle to the Type 2 hints recorder.
484
+ *
485
+ * end_point ::
486
+ * The glyph index of the last point to which the previously defined
487
+ * or activated hints apply.
488
+ *
489
+ * bit_count ::
490
+ * The number of bits in the hint mask.
491
+ *
492
+ * bytes ::
493
+ * An array of bytes modelling the hint mask.
494
+ *
495
+ * @note:
496
+ * If the hintmask starts the charstring (before any glyph point
497
+ * definition), the value of `end_point' should be 0.
498
+ *
499
+ * `bit_count' is the number of meaningful bits in the `bytes' array; it
500
+ * must be equal to the total number of hints defined so far (i.e.,
501
+ * horizontal+verticals).
502
+ *
503
+ * The `bytes' array can come directly from the Type 2 charstring and
504
+ * respects the same format.
505
+ *
506
+ */
507
+ typedef void
508
+ (*T2_Hints_MaskFunc)( T2_Hints hints,
509
+ FT_UInt end_point,
510
+ FT_UInt bit_count,
511
+ const FT_Byte* bytes );
512
+
513
+
514
+ /*************************************************************************
515
+ *
516
+ * @functype:
517
+ * T2_Hints_CounterFunc
518
+ *
519
+ * @description:
520
+ * A method of the @T2_Hints class used to set a given counter mask
521
+ * (this corresponds to the `hintmask' Type 2 operator).
522
+ *
523
+ * @input:
524
+ * hints ::
525
+ * A handle to the Type 2 hints recorder.
526
+ *
527
+ * end_point ::
528
+ * A glyph index of the last point to which the previously defined or
529
+ * active hints apply.
530
+ *
531
+ * bit_count ::
532
+ * The number of bits in the hint mask.
533
+ *
534
+ * bytes ::
535
+ * An array of bytes modelling the hint mask.
536
+ *
537
+ * @note:
538
+ * If the hintmask starts the charstring (before any glyph point
539
+ * definition), the value of `end_point' should be 0.
540
+ *
541
+ * `bit_count' is the number of meaningful bits in the `bytes' array; it
542
+ * must be equal to the total number of hints defined so far (i.e.,
543
+ * horizontal+verticals).
544
+ *
545
+ * The `bytes' array can come directly from the Type 2 charstring and
546
+ * respects the same format.
547
+ *
548
+ */
549
+ typedef void
550
+ (*T2_Hints_CounterFunc)( T2_Hints hints,
551
+ FT_UInt bit_count,
552
+ const FT_Byte* bytes );
553
+
554
+
555
+ /*************************************************************************
556
+ *
557
+ * @functype:
558
+ * T2_Hints_CloseFunc
559
+ *
560
+ * @description:
561
+ * A method of the @T2_Hints class used to close a hint recording
562
+ * session.
563
+ *
564
+ * @input:
565
+ * hints ::
566
+ * A handle to the Type 2 hints recorder.
567
+ *
568
+ * end_point ::
569
+ * The index of the last point in the input glyph.
570
+ *
571
+ * @return:
572
+ * FreeType error code. 0 means success.
573
+ *
574
+ * @note:
575
+ * The error code is set to indicate that an error occurred during the
576
+ * recording session.
577
+ *
578
+ */
579
+ typedef FT_Error
580
+ (*T2_Hints_CloseFunc)( T2_Hints hints,
581
+ FT_UInt end_point );
582
+
583
+
584
+ /*************************************************************************
585
+ *
586
+ * @functype:
587
+ * T2_Hints_ApplyFunc
588
+ *
589
+ * @description:
590
+ * A method of the @T2_Hints class used to apply hints to the
591
+ * corresponding glyph outline. Must be called after the `close'
592
+ * method.
593
+ *
594
+ * @input:
595
+ * hints ::
596
+ * A handle to the Type 2 hints recorder.
597
+ *
598
+ * outline ::
599
+ * A pointer to the target outline descriptor.
600
+ *
601
+ * globals ::
602
+ * The hinter globals for this font.
603
+ *
604
+ * hint_mode ::
605
+ * Hinting information.
606
+ *
607
+ * @return:
608
+ * FreeType error code. 0 means success.
609
+ *
610
+ * @note:
611
+ * On input, all points within the outline are in font coordinates. On
612
+ * output, they are in 1/64th of pixels.
613
+ *
614
+ * The scaling transformation is taken from the `globals' object which
615
+ * must correspond to the same font than the glyph.
616
+ *
617
+ */
618
+ typedef FT_Error
619
+ (*T2_Hints_ApplyFunc)( T2_Hints hints,
620
+ FT_Outline* outline,
621
+ PSH_Globals globals,
622
+ FT_Render_Mode hint_mode );
623
+
624
+
625
+ /*************************************************************************
626
+ *
627
+ * @struct:
628
+ * T2_Hints_FuncsRec
629
+ *
630
+ * @description:
631
+ * The structure used to provide the API to @T2_Hints objects.
632
+ *
633
+ * @fields:
634
+ * hints ::
635
+ * A handle to the T2 hints recorder object.
636
+ *
637
+ * open ::
638
+ * The function to open a recording session.
639
+ *
640
+ * close ::
641
+ * The function to close a recording session.
642
+ *
643
+ * stems ::
644
+ * The function to set the dimension's stems table.
645
+ *
646
+ * hintmask ::
647
+ * The function to set hint masks.
648
+ *
649
+ * counter ::
650
+ * The function to set counter masks.
651
+ *
652
+ * apply ::
653
+ * The function to apply the hints on the corresponding glyph outline.
654
+ *
655
+ */
656
+ typedef struct T2_Hints_FuncsRec_
657
+ {
658
+ T2_Hints hints;
659
+ T2_Hints_OpenFunc open;
660
+ T2_Hints_CloseFunc close;
661
+ T2_Hints_StemsFunc stems;
662
+ T2_Hints_MaskFunc hintmask;
663
+ T2_Hints_CounterFunc counter;
664
+ T2_Hints_ApplyFunc apply;
665
+
666
+ } T2_Hints_FuncsRec;
667
+
668
+
669
+ /* */
670
+
671
+
672
+ typedef struct PSHinter_Interface_
673
+ {
674
+ PSH_Globals_Funcs (*get_globals_funcs)( FT_Module module );
675
+ T1_Hints_Funcs (*get_t1_funcs) ( FT_Module module );
676
+ T2_Hints_Funcs (*get_t2_funcs) ( FT_Module module );
677
+
678
+ } PSHinter_Interface;
679
+
680
+ typedef PSHinter_Interface* PSHinter_Service;
681
+
682
+ #ifndef FT_CONFIG_OPTION_PIC
683
+
684
+ #define FT_DEFINE_PSHINTER_INTERFACE(class_, get_globals_funcs_, \
685
+ get_t1_funcs_, get_t2_funcs_) \
686
+ static const PSHinter_Interface class_ = \
687
+ { \
688
+ get_globals_funcs_, get_t1_funcs_, get_t2_funcs_ \
689
+ };
690
+
691
+ #else /* FT_CONFIG_OPTION_PIC */
692
+
693
+ #define FT_DEFINE_PSHINTER_INTERFACE(class_, get_globals_funcs_, \
694
+ get_t1_funcs_, get_t2_funcs_) \
695
+ void \
696
+ FT_Init_Class_##class_( FT_Library library, \
697
+ PSHinter_Interface* clazz) \
698
+ { \
699
+ FT_UNUSED(library); \
700
+ clazz->get_globals_funcs = get_globals_funcs_; \
701
+ clazz->get_t1_funcs = get_t1_funcs_; \
702
+ clazz->get_t2_funcs = get_t2_funcs_; \
703
+ }
704
+
705
+ #endif /* FT_CONFIG_OPTION_PIC */
706
+
707
+ FT_END_HEADER
708
+
709
+ #endif /* __PSHINTS_H__ */
710
+
711
+
712
+ /* END */