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,179 @@
1
+ /***************************************************************************/
2
+ /* */
3
+ /* ftcalc.h */
4
+ /* */
5
+ /* Arithmetic computations (specification). */
6
+ /* */
7
+ /* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009 by */
8
+ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9
+ /* */
10
+ /* This file is part of the FreeType project, and may only be used, */
11
+ /* modified, and distributed under the terms of the FreeType project */
12
+ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13
+ /* this file you indicate that you have read the license and */
14
+ /* understand and accept it fully. */
15
+ /* */
16
+ /***************************************************************************/
17
+
18
+
19
+ #ifndef __FTCALC_H__
20
+ #define __FTCALC_H__
21
+
22
+
23
+ #include <ft2build.h>
24
+ #include FT_FREETYPE_H
25
+
26
+
27
+ FT_BEGIN_HEADER
28
+
29
+
30
+ /*************************************************************************/
31
+ /* */
32
+ /* <Function> */
33
+ /* FT_FixedSqrt */
34
+ /* */
35
+ /* <Description> */
36
+ /* Computes the square root of a 16.16 fixed point value. */
37
+ /* */
38
+ /* <Input> */
39
+ /* x :: The value to compute the root for. */
40
+ /* */
41
+ /* <Return> */
42
+ /* The result of `sqrt(x)'. */
43
+ /* */
44
+ /* <Note> */
45
+ /* This function is not very fast. */
46
+ /* */
47
+ FT_BASE( FT_Int32 )
48
+ FT_SqrtFixed( FT_Int32 x );
49
+
50
+
51
+ #ifdef FT_CONFIG_OPTION_OLD_INTERNALS
52
+
53
+ /*************************************************************************/
54
+ /* */
55
+ /* <Function> */
56
+ /* FT_Sqrt32 */
57
+ /* */
58
+ /* <Description> */
59
+ /* Computes the square root of an Int32 integer (which will be */
60
+ /* handled as an unsigned long value). */
61
+ /* */
62
+ /* <Input> */
63
+ /* x :: The value to compute the root for. */
64
+ /* */
65
+ /* <Return> */
66
+ /* The result of `sqrt(x)'. */
67
+ /* */
68
+ FT_EXPORT( FT_Int32 )
69
+ FT_Sqrt32( FT_Int32 x );
70
+
71
+ #endif /* FT_CONFIG_OPTION_OLD_INTERNALS */
72
+
73
+
74
+ /*************************************************************************/
75
+ /* */
76
+ /* FT_MulDiv() and FT_MulFix() are declared in freetype.h. */
77
+ /* */
78
+ /*************************************************************************/
79
+
80
+
81
+ #ifdef TT_USE_BYTECODE_INTERPRETER
82
+
83
+ /*************************************************************************/
84
+ /* */
85
+ /* <Function> */
86
+ /* FT_MulDiv_No_Round */
87
+ /* */
88
+ /* <Description> */
89
+ /* A very simple function used to perform the computation `(a*b)/c' */
90
+ /* (without rounding) with maximal accuracy (it uses a 64-bit */
91
+ /* intermediate integer whenever necessary). */
92
+ /* */
93
+ /* This function isn't necessarily as fast as some processor specific */
94
+ /* operations, but is at least completely portable. */
95
+ /* */
96
+ /* <Input> */
97
+ /* a :: The first multiplier. */
98
+ /* b :: The second multiplier. */
99
+ /* c :: The divisor. */
100
+ /* */
101
+ /* <Return> */
102
+ /* The result of `(a*b)/c'. This function never traps when trying to */
103
+ /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */
104
+ /* on the signs of `a' and `b'. */
105
+ /* */
106
+ FT_BASE( FT_Long )
107
+ FT_MulDiv_No_Round( FT_Long a,
108
+ FT_Long b,
109
+ FT_Long c );
110
+
111
+ #endif /* TT_USE_BYTECODE_INTERPRETER */
112
+
113
+
114
+ /*
115
+ * A variant of FT_Matrix_Multiply which scales its result afterwards.
116
+ * The idea is that both `a' and `b' are scaled by factors of 10 so that
117
+ * the values are as precise as possible to get a correct result during
118
+ * the 64bit multiplication. Let `sa' and `sb' be the scaling factors of
119
+ * `a' and `b', respectively, then the scaling factor of the result is
120
+ * `sa*sb'.
121
+ */
122
+ FT_BASE( void )
123
+ FT_Matrix_Multiply_Scaled( const FT_Matrix* a,
124
+ FT_Matrix *b,
125
+ FT_Long scaling );
126
+
127
+
128
+ /*
129
+ * A variant of FT_Vector_Transform. See comments for
130
+ * FT_Matrix_Multiply_Scaled.
131
+ */
132
+
133
+ FT_BASE( void )
134
+ FT_Vector_Transform_Scaled( FT_Vector* vector,
135
+ const FT_Matrix* matrix,
136
+ FT_Long scaling );
137
+
138
+
139
+ /*
140
+ * Return -1, 0, or +1, depending on the orientation of a given corner.
141
+ * We use the Cartesian coordinate system, with positive vertical values
142
+ * going upwards. The function returns +1 if the corner turns to the
143
+ * left, -1 to the right, and 0 for undecidable cases.
144
+ */
145
+ FT_BASE( FT_Int )
146
+ ft_corner_orientation( FT_Pos in_x,
147
+ FT_Pos in_y,
148
+ FT_Pos out_x,
149
+ FT_Pos out_y );
150
+
151
+ /*
152
+ * Return TRUE if a corner is flat or nearly flat. This is equivalent to
153
+ * saying that the angle difference between the `in' and `out' vectors is
154
+ * very small.
155
+ */
156
+ FT_BASE( FT_Int )
157
+ ft_corner_is_flat( FT_Pos in_x,
158
+ FT_Pos in_y,
159
+ FT_Pos out_x,
160
+ FT_Pos out_y );
161
+
162
+
163
+ #define INT_TO_F26DOT6( x ) ( (FT_Long)(x) << 6 )
164
+ #define INT_TO_F2DOT14( x ) ( (FT_Long)(x) << 14 )
165
+ #define INT_TO_FIXED( x ) ( (FT_Long)(x) << 16 )
166
+ #define F2DOT14_TO_FIXED( x ) ( (FT_Long)(x) << 2 )
167
+ #define FLOAT_TO_FIXED( x ) ( (FT_Long)( x * 65536.0 ) )
168
+ #define FIXED_TO_INT( x ) ( FT_RoundFix( x ) >> 16 )
169
+
170
+ #define ROUND_F26DOT6( x ) ( x >= 0 ? ( ( (x) + 32 ) & -64 ) \
171
+ : ( -( ( 32 - (x) ) & -64 ) ) )
172
+
173
+
174
+ FT_END_HEADER
175
+
176
+ #endif /* __FTCALC_H__ */
177
+
178
+
179
+ /* END */
@@ -0,0 +1,250 @@
1
+ /***************************************************************************/
2
+ /* */
3
+ /* ftdebug.h */
4
+ /* */
5
+ /* Debugging and logging component (specification). */
6
+ /* */
7
+ /* Copyright 1996-2001, 2002, 2004, 2006, 2007, 2008, 2009 by */
8
+ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9
+ /* */
10
+ /* This file is part of the FreeType project, and may only be used, */
11
+ /* modified, and distributed under the terms of the FreeType project */
12
+ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13
+ /* this file you indicate that you have read the license and */
14
+ /* understand and accept it fully. */
15
+ /* */
16
+ /* */
17
+ /* IMPORTANT: A description of FreeType's debugging support can be */
18
+ /* found in `docs/DEBUG.TXT'. Read it if you need to use or */
19
+ /* understand this code. */
20
+ /* */
21
+ /***************************************************************************/
22
+
23
+
24
+ #ifndef __FTDEBUG_H__
25
+ #define __FTDEBUG_H__
26
+
27
+
28
+ #include <ft2build.h>
29
+ #include FT_CONFIG_CONFIG_H
30
+ #include FT_FREETYPE_H
31
+
32
+
33
+ FT_BEGIN_HEADER
34
+
35
+
36
+ /* force the definition of FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE */
37
+ /* is already defined; this simplifies the following #ifdefs */
38
+ /* */
39
+ #ifdef FT_DEBUG_LEVEL_TRACE
40
+ #undef FT_DEBUG_LEVEL_ERROR
41
+ #define FT_DEBUG_LEVEL_ERROR
42
+ #endif
43
+
44
+
45
+ /*************************************************************************/
46
+ /* */
47
+ /* Define the trace enums as well as the trace levels array when they */
48
+ /* are needed. */
49
+ /* */
50
+ /*************************************************************************/
51
+
52
+ #ifdef FT_DEBUG_LEVEL_TRACE
53
+
54
+ #define FT_TRACE_DEF( x ) trace_ ## x ,
55
+
56
+ /* defining the enumeration */
57
+ typedef enum FT_Trace_
58
+ {
59
+ #include FT_INTERNAL_TRACE_H
60
+ trace_count
61
+
62
+ } FT_Trace;
63
+
64
+
65
+ /* defining the array of trace levels, provided by `src/base/ftdebug.c' */
66
+ extern int ft_trace_levels[trace_count];
67
+
68
+ #undef FT_TRACE_DEF
69
+
70
+ #endif /* FT_DEBUG_LEVEL_TRACE */
71
+
72
+
73
+ /*************************************************************************/
74
+ /* */
75
+ /* Define the FT_TRACE macro */
76
+ /* */
77
+ /* IMPORTANT! */
78
+ /* */
79
+ /* Each component must define the macro FT_COMPONENT to a valid FT_Trace */
80
+ /* value before using any TRACE macro. */
81
+ /* */
82
+ /*************************************************************************/
83
+
84
+ #ifdef FT_DEBUG_LEVEL_TRACE
85
+
86
+ #define FT_TRACE( level, varformat ) \
87
+ do \
88
+ { \
89
+ if ( ft_trace_levels[FT_COMPONENT] >= level ) \
90
+ FT_Message varformat; \
91
+ } while ( 0 )
92
+
93
+ #else /* !FT_DEBUG_LEVEL_TRACE */
94
+
95
+ #define FT_TRACE( level, varformat ) do { } while ( 0 ) /* nothing */
96
+
97
+ #endif /* !FT_DEBUG_LEVEL_TRACE */
98
+
99
+
100
+ /*************************************************************************/
101
+ /* */
102
+ /* <Function> */
103
+ /* FT_Trace_Get_Count */
104
+ /* */
105
+ /* <Description> */
106
+ /* Return the number of available trace components. */
107
+ /* */
108
+ /* <Return> */
109
+ /* The number of trace components. 0 if FreeType 2 is not built with */
110
+ /* FT_DEBUG_LEVEL_TRACE definition. */
111
+ /* */
112
+ /* <Note> */
113
+ /* This function may be useful if you want to access elements of */
114
+ /* the internal `ft_trace_levels' array by an index. */
115
+ /* */
116
+ FT_BASE( FT_Int )
117
+ FT_Trace_Get_Count( void );
118
+
119
+
120
+ /*************************************************************************/
121
+ /* */
122
+ /* <Function> */
123
+ /* FT_Trace_Get_Name */
124
+ /* */
125
+ /* <Description> */
126
+ /* Return the name of a trace component. */
127
+ /* */
128
+ /* <Input> */
129
+ /* The index of the trace component. */
130
+ /* */
131
+ /* <Return> */
132
+ /* The name of the trace component. This is a statically allocated */
133
+ /* C string, so do not free it after use. NULL if FreeType 2 is not */
134
+ /* built with FT_DEBUG_LEVEL_TRACE definition. */
135
+ /* */
136
+ /* <Note> */
137
+ /* Use @FT_Trace_Get_Count to get the number of available trace */
138
+ /* components. */
139
+ /* */
140
+ /* This function may be useful if you want to control FreeType 2's */
141
+ /* debug level in your application. */
142
+ /* */
143
+ FT_BASE( const char * )
144
+ FT_Trace_Get_Name( FT_Int idx );
145
+
146
+
147
+ /*************************************************************************/
148
+ /* */
149
+ /* You need two opening and closing parentheses! */
150
+ /* */
151
+ /* Example: FT_TRACE0(( "Value is %i", foo )) */
152
+ /* */
153
+ /* Output of the FT_TRACEX macros is sent to stderr. */
154
+ /* */
155
+ /*************************************************************************/
156
+
157
+ #define FT_TRACE0( varformat ) FT_TRACE( 0, varformat )
158
+ #define FT_TRACE1( varformat ) FT_TRACE( 1, varformat )
159
+ #define FT_TRACE2( varformat ) FT_TRACE( 2, varformat )
160
+ #define FT_TRACE3( varformat ) FT_TRACE( 3, varformat )
161
+ #define FT_TRACE4( varformat ) FT_TRACE( 4, varformat )
162
+ #define FT_TRACE5( varformat ) FT_TRACE( 5, varformat )
163
+ #define FT_TRACE6( varformat ) FT_TRACE( 6, varformat )
164
+ #define FT_TRACE7( varformat ) FT_TRACE( 7, varformat )
165
+
166
+
167
+ /*************************************************************************/
168
+ /* */
169
+ /* Define the FT_ERROR macro. */
170
+ /* */
171
+ /* Output of this macro is sent to stderr. */
172
+ /* */
173
+ /*************************************************************************/
174
+
175
+ #ifdef FT_DEBUG_LEVEL_ERROR
176
+
177
+ #define FT_ERROR( varformat ) FT_Message varformat
178
+
179
+ #else /* !FT_DEBUG_LEVEL_ERROR */
180
+
181
+ #define FT_ERROR( varformat ) do { } while ( 0 ) /* nothing */
182
+
183
+ #endif /* !FT_DEBUG_LEVEL_ERROR */
184
+
185
+
186
+ /*************************************************************************/
187
+ /* */
188
+ /* Define the FT_ASSERT macro. */
189
+ /* */
190
+ /*************************************************************************/
191
+
192
+ #ifdef FT_DEBUG_LEVEL_ERROR
193
+
194
+ #define FT_ASSERT( condition ) \
195
+ do \
196
+ { \
197
+ if ( !( condition ) ) \
198
+ FT_Panic( "assertion failed on line %d of file %s\n", \
199
+ __LINE__, __FILE__ ); \
200
+ } while ( 0 )
201
+
202
+ #else /* !FT_DEBUG_LEVEL_ERROR */
203
+
204
+ #define FT_ASSERT( condition ) do { } while ( 0 )
205
+
206
+ #endif /* !FT_DEBUG_LEVEL_ERROR */
207
+
208
+
209
+ /*************************************************************************/
210
+ /* */
211
+ /* Define `FT_Message' and `FT_Panic' when needed. */
212
+ /* */
213
+ /*************************************************************************/
214
+
215
+ #ifdef FT_DEBUG_LEVEL_ERROR
216
+
217
+ #include "stdio.h" /* for vfprintf() */
218
+
219
+ /* print a message */
220
+ FT_BASE( void )
221
+ FT_Message( const char* fmt,
222
+ ... );
223
+
224
+ /* print a message and exit */
225
+ FT_BASE( void )
226
+ FT_Panic( const char* fmt,
227
+ ... );
228
+
229
+ #endif /* FT_DEBUG_LEVEL_ERROR */
230
+
231
+
232
+ FT_BASE( void )
233
+ ft_debug_init( void );
234
+
235
+
236
+ #if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */
237
+
238
+ /* We disable the warning `conditional expression is constant' here */
239
+ /* in order to compile cleanly with the maximum level of warnings. */
240
+ #pragma warning( disable : 4127 )
241
+
242
+ #endif /* _MSC_VER */
243
+
244
+
245
+ FT_END_HEADER
246
+
247
+ #endif /* __FTDEBUG_H__ */
248
+
249
+
250
+ /* END */
@@ -0,0 +1,422 @@
1
+ /***************************************************************************/
2
+ /* */
3
+ /* ftdriver.h */
4
+ /* */
5
+ /* FreeType font driver interface (specification). */
6
+ /* */
7
+ /* Copyright 1996-2001, 2002, 2003, 2006, 2008 by */
8
+ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9
+ /* */
10
+ /* This file is part of the FreeType project, and may only be used, */
11
+ /* modified, and distributed under the terms of the FreeType project */
12
+ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13
+ /* this file you indicate that you have read the license and */
14
+ /* understand and accept it fully. */
15
+ /* */
16
+ /***************************************************************************/
17
+
18
+
19
+ #ifndef __FTDRIVER_H__
20
+ #define __FTDRIVER_H__
21
+
22
+
23
+ #include <ft2build.h>
24
+ #include FT_MODULE_H
25
+
26
+
27
+ FT_BEGIN_HEADER
28
+
29
+
30
+ typedef FT_Error
31
+ (*FT_Face_InitFunc)( FT_Stream stream,
32
+ FT_Face face,
33
+ FT_Int typeface_index,
34
+ FT_Int num_params,
35
+ FT_Parameter* parameters );
36
+
37
+ typedef void
38
+ (*FT_Face_DoneFunc)( FT_Face face );
39
+
40
+
41
+ typedef FT_Error
42
+ (*FT_Size_InitFunc)( FT_Size size );
43
+
44
+ typedef void
45
+ (*FT_Size_DoneFunc)( FT_Size size );
46
+
47
+
48
+ typedef FT_Error
49
+ (*FT_Slot_InitFunc)( FT_GlyphSlot slot );
50
+
51
+ typedef void
52
+ (*FT_Slot_DoneFunc)( FT_GlyphSlot slot );
53
+
54
+
55
+ typedef FT_Error
56
+ (*FT_Size_RequestFunc)( FT_Size size,
57
+ FT_Size_Request req );
58
+
59
+ typedef FT_Error
60
+ (*FT_Size_SelectFunc)( FT_Size size,
61
+ FT_ULong size_index );
62
+
63
+ #ifdef FT_CONFIG_OPTION_OLD_INTERNALS
64
+
65
+ typedef FT_Error
66
+ (*FT_Size_ResetPointsFunc)( FT_Size size,
67
+ FT_F26Dot6 char_width,
68
+ FT_F26Dot6 char_height,
69
+ FT_UInt horz_resolution,
70
+ FT_UInt vert_resolution );
71
+
72
+ typedef FT_Error
73
+ (*FT_Size_ResetPixelsFunc)( FT_Size size,
74
+ FT_UInt pixel_width,
75
+ FT_UInt pixel_height );
76
+
77
+ #endif /* FT_CONFIG_OPTION_OLD_INTERNALS */
78
+
79
+ typedef FT_Error
80
+ (*FT_Slot_LoadFunc)( FT_GlyphSlot slot,
81
+ FT_Size size,
82
+ FT_UInt glyph_index,
83
+ FT_Int32 load_flags );
84
+
85
+
86
+ typedef FT_UInt
87
+ (*FT_CharMap_CharIndexFunc)( FT_CharMap charmap,
88
+ FT_Long charcode );
89
+
90
+ typedef FT_Long
91
+ (*FT_CharMap_CharNextFunc)( FT_CharMap charmap,
92
+ FT_Long charcode );
93
+
94
+
95
+ typedef FT_Error
96
+ (*FT_Face_GetKerningFunc)( FT_Face face,
97
+ FT_UInt left_glyph,
98
+ FT_UInt right_glyph,
99
+ FT_Vector* kerning );
100
+
101
+
102
+ typedef FT_Error
103
+ (*FT_Face_AttachFunc)( FT_Face face,
104
+ FT_Stream stream );
105
+
106
+
107
+ typedef FT_Error
108
+ (*FT_Face_GetAdvancesFunc)( FT_Face face,
109
+ FT_UInt first,
110
+ FT_UInt count,
111
+ FT_Int32 flags,
112
+ FT_Fixed* advances );
113
+
114
+
115
+ /*************************************************************************/
116
+ /* */
117
+ /* <Struct> */
118
+ /* FT_Driver_ClassRec */
119
+ /* */
120
+ /* <Description> */
121
+ /* The font driver class. This structure mostly contains pointers to */
122
+ /* driver methods. */
123
+ /* */
124
+ /* <Fields> */
125
+ /* root :: The parent module. */
126
+ /* */
127
+ /* face_object_size :: The size of a face object in bytes. */
128
+ /* */
129
+ /* size_object_size :: The size of a size object in bytes. */
130
+ /* */
131
+ /* slot_object_size :: The size of a glyph object in bytes. */
132
+ /* */
133
+ /* init_face :: The format-specific face constructor. */
134
+ /* */
135
+ /* done_face :: The format-specific face destructor. */
136
+ /* */
137
+ /* init_size :: The format-specific size constructor. */
138
+ /* */
139
+ /* done_size :: The format-specific size destructor. */
140
+ /* */
141
+ /* init_slot :: The format-specific slot constructor. */
142
+ /* */
143
+ /* done_slot :: The format-specific slot destructor. */
144
+ /* */
145
+ /* */
146
+ /* load_glyph :: A function handle to load a glyph to a slot. */
147
+ /* This field is mandatory! */
148
+ /* */
149
+ /* get_kerning :: A function handle to return the unscaled */
150
+ /* kerning for a given pair of glyphs. Can be */
151
+ /* set to 0 if the format doesn't support */
152
+ /* kerning. */
153
+ /* */
154
+ /* attach_file :: This function handle is used to read */
155
+ /* additional data for a face from another */
156
+ /* file/stream. For example, this can be used to */
157
+ /* add data from AFM or PFM files on a Type 1 */
158
+ /* face, or a CIDMap on a CID-keyed face. */
159
+ /* */
160
+ /* get_advances :: A function handle used to return advance */
161
+ /* widths of `count' glyphs (in font units), */
162
+ /* starting at `first'. The `vertical' flag must */
163
+ /* be set to get vertical advance heights. The */
164
+ /* `advances' buffer is caller-allocated. */
165
+ /* Currently not implemented. The idea of this */
166
+ /* function is to be able to perform */
167
+ /* device-independent text layout without loading */
168
+ /* a single glyph image. */
169
+ /* */
170
+ /* request_size :: A handle to a function used to request the new */
171
+ /* character size. Can be set to 0 if the */
172
+ /* scaling done in the base layer suffices. */
173
+ /* */
174
+ /* select_size :: A handle to a function used to select a new */
175
+ /* fixed size. It is used only if */
176
+ /* @FT_FACE_FLAG_FIXED_SIZES is set. Can be set */
177
+ /* to 0 if the scaling done in the base layer */
178
+ /* suffices. */
179
+ /* <Note> */
180
+ /* Most function pointers, with the exception of `load_glyph', can be */
181
+ /* set to 0 to indicate a default behaviour. */
182
+ /* */
183
+ typedef struct FT_Driver_ClassRec_
184
+ {
185
+ FT_Module_Class root;
186
+
187
+ FT_Long face_object_size;
188
+ FT_Long size_object_size;
189
+ FT_Long slot_object_size;
190
+
191
+ FT_Face_InitFunc init_face;
192
+ FT_Face_DoneFunc done_face;
193
+
194
+ FT_Size_InitFunc init_size;
195
+ FT_Size_DoneFunc done_size;
196
+
197
+ FT_Slot_InitFunc init_slot;
198
+ FT_Slot_DoneFunc done_slot;
199
+
200
+ #ifdef FT_CONFIG_OPTION_OLD_INTERNALS
201
+
202
+ FT_Size_ResetPointsFunc set_char_sizes;
203
+ FT_Size_ResetPixelsFunc set_pixel_sizes;
204
+
205
+ #endif /* FT_CONFIG_OPTION_OLD_INTERNALS */
206
+
207
+ FT_Slot_LoadFunc load_glyph;
208
+
209
+ FT_Face_GetKerningFunc get_kerning;
210
+ FT_Face_AttachFunc attach_file;
211
+ FT_Face_GetAdvancesFunc get_advances;
212
+
213
+ /* since version 2.2 */
214
+ FT_Size_RequestFunc request_size;
215
+ FT_Size_SelectFunc select_size;
216
+
217
+ } FT_Driver_ClassRec, *FT_Driver_Class;
218
+
219
+
220
+ /*
221
+ * The following functions are used as stubs for `set_char_sizes' and
222
+ * `set_pixel_sizes'; the code uses `request_size' and `select_size'
223
+ * functions instead.
224
+ *
225
+ * Implementation is in `src/base/ftobjs.c'.
226
+ */
227
+ #ifdef FT_CONFIG_OPTION_OLD_INTERNALS
228
+
229
+ FT_BASE( FT_Error )
230
+ ft_stub_set_char_sizes( FT_Size size,
231
+ FT_F26Dot6 width,
232
+ FT_F26Dot6 height,
233
+ FT_UInt horz_res,
234
+ FT_UInt vert_res );
235
+
236
+ FT_BASE( FT_Error )
237
+ ft_stub_set_pixel_sizes( FT_Size size,
238
+ FT_UInt width,
239
+ FT_UInt height );
240
+
241
+ #endif /* FT_CONFIG_OPTION_OLD_INTERNALS */
242
+
243
+ /*************************************************************************/
244
+ /* */
245
+ /* <Macro> */
246
+ /* FT_DECLARE_DRIVER */
247
+ /* */
248
+ /* <Description> */
249
+ /* Used to create a forward declaration of a */
250
+ /* FT_Driver_ClassRec stract instance. */
251
+ /* */
252
+ /* <Macro> */
253
+ /* FT_DEFINE_DRIVER */
254
+ /* */
255
+ /* <Description> */
256
+ /* Used to initialize an instance of FT_Driver_ClassRec struct. */
257
+ /* */
258
+ /* When FT_CONFIG_OPTION_PIC is defined a Create funtion will need */
259
+ /* to called with a pointer where the allocated stracture is returned.*/
260
+ /* And when it is no longer needed a Destroy function needs */
261
+ /* to be called to release that allocation. */
262
+ /* fcinit.c (ft_create_default_module_classes) already contains */
263
+ /* a mechanism to call these functions for the default modules */
264
+ /* described in ftmodule.h */
265
+ /* */
266
+ /* Notice that the created Create and Destroy functions call */
267
+ /* pic_init and pic_free function to allow you to manually allocate */
268
+ /* and initialize any additional global data, like module specific */
269
+ /* interface, and put them in the global pic container defined in */
270
+ /* ftpic.h. if you don't need them just implement the functions as */
271
+ /* empty to resolve the link error. */
272
+ /* */
273
+ /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */
274
+ /* allocated in the global scope (or the scope where the macro */
275
+ /* is used). */
276
+ /* */
277
+ #ifndef FT_CONFIG_OPTION_PIC
278
+
279
+ #ifdef FT_CONFIG_OPTION_OLD_INTERNALS
280
+ #define FT_DEFINE_DRIVERS_OLD_INTERNALS(a_,b_) \
281
+ a_, b_,
282
+ #else
283
+ #define FT_DEFINE_DRIVERS_OLD_INTERNALS(a_,b_)
284
+ #endif
285
+
286
+ #define FT_DECLARE_DRIVER(class_) \
287
+ FT_CALLBACK_TABLE \
288
+ const FT_Driver_ClassRec class_;
289
+
290
+ #define FT_DEFINE_DRIVER(class_, \
291
+ flags_, size_, name_, version_, requires_, \
292
+ interface_, init_, done_, get_interface_, \
293
+ face_object_size_, size_object_size_, \
294
+ slot_object_size_, init_face_, done_face_, \
295
+ init_size_, done_size_, init_slot_, done_slot_, \
296
+ old_set_char_sizes_, old_set_pixel_sizes_, \
297
+ load_glyph_, get_kerning_, attach_file_, \
298
+ get_advances_, request_size_, select_size_ ) \
299
+ FT_CALLBACK_TABLE_DEF \
300
+ const FT_Driver_ClassRec class_ = \
301
+ { \
302
+ FT_DEFINE_ROOT_MODULE(flags_,size_,name_,version_,requires_,interface_, \
303
+ init_,done_,get_interface_) \
304
+ \
305
+ face_object_size_, \
306
+ size_object_size_, \
307
+ slot_object_size_, \
308
+ \
309
+ init_face_, \
310
+ done_face_, \
311
+ \
312
+ init_size_, \
313
+ done_size_, \
314
+ \
315
+ init_slot_, \
316
+ done_slot_, \
317
+ \
318
+ FT_DEFINE_DRIVERS_OLD_INTERNALS(old_set_char_sizes_, old_set_pixel_sizes_) \
319
+ \
320
+ load_glyph_, \
321
+ \
322
+ get_kerning_, \
323
+ attach_file_, \
324
+ get_advances_, \
325
+ \
326
+ request_size_, \
327
+ select_size_ \
328
+ };
329
+
330
+ #else /* FT_CONFIG_OPTION_PIC */
331
+
332
+ #ifdef FT_CONFIG_OPTION_OLD_INTERNALS
333
+ #define FT_DEFINE_DRIVERS_OLD_INTERNALS(a_,b_) \
334
+ clazz->set_char_sizes = a_; \
335
+ clazz->set_pixel_sizes = b_;
336
+ #else
337
+ #define FT_DEFINE_DRIVERS_OLD_INTERNALS(a_,b_)
338
+ #endif
339
+
340
+ #define FT_DECLARE_DRIVER(class_) FT_DECLARE_MODULE(class_)
341
+
342
+ #define FT_DEFINE_DRIVER(class_, \
343
+ flags_, size_, name_, version_, requires_, \
344
+ interface_, init_, done_, get_interface_, \
345
+ face_object_size_, size_object_size_, \
346
+ slot_object_size_, init_face_, done_face_, \
347
+ init_size_, done_size_, init_slot_, done_slot_, \
348
+ old_set_char_sizes_, old_set_pixel_sizes_, \
349
+ load_glyph_, get_kerning_, attach_file_, \
350
+ get_advances_, request_size_, select_size_ ) \
351
+ void class_##_pic_free( FT_Library library ); \
352
+ FT_Error class_##_pic_init( FT_Library library ); \
353
+ \
354
+ void \
355
+ FT_Destroy_Class_##class_( FT_Library library, \
356
+ FT_Module_Class* clazz ) \
357
+ { \
358
+ FT_Memory memory = library->memory; \
359
+ FT_Driver_Class dclazz = (FT_Driver_Class)clazz; \
360
+ class_##_pic_free( library ); \
361
+ if ( dclazz ) \
362
+ FT_FREE( dclazz ); \
363
+ } \
364
+ \
365
+ FT_Error \
366
+ FT_Create_Class_##class_( FT_Library library, \
367
+ FT_Module_Class** output_class ) \
368
+ { \
369
+ FT_Driver_Class clazz; \
370
+ FT_Error error; \
371
+ FT_Memory memory = library->memory; \
372
+ \
373
+ if ( FT_ALLOC( clazz, sizeof(*clazz) ) ) \
374
+ return error; \
375
+ \
376
+ error = class_##_pic_init( library ); \
377
+ if(error) \
378
+ { \
379
+ FT_FREE( clazz ); \
380
+ return error; \
381
+ } \
382
+ \
383
+ FT_DEFINE_ROOT_MODULE(flags_,size_,name_,version_,requires_,interface_, \
384
+ init_,done_,get_interface_) \
385
+ \
386
+ clazz->face_object_size = face_object_size_; \
387
+ clazz->size_object_size = size_object_size_; \
388
+ clazz->slot_object_size = slot_object_size_; \
389
+ \
390
+ clazz->init_face = init_face_; \
391
+ clazz->done_face = done_face_; \
392
+ \
393
+ clazz->init_size = init_size_; \
394
+ clazz->done_size = done_size_; \
395
+ \
396
+ clazz->init_slot = init_slot_; \
397
+ clazz->done_slot = done_slot_; \
398
+ \
399
+ FT_DEFINE_DRIVERS_OLD_INTERNALS(old_set_char_sizes_, old_set_pixel_sizes_) \
400
+ \
401
+ clazz->load_glyph = load_glyph_; \
402
+ \
403
+ clazz->get_kerning = get_kerning_; \
404
+ clazz->attach_file = attach_file_; \
405
+ clazz->get_advances = get_advances_; \
406
+ \
407
+ clazz->request_size = request_size_; \
408
+ clazz->select_size = select_size_; \
409
+ \
410
+ *output_class = (FT_Module_Class*)clazz; \
411
+ return FT_Err_Ok; \
412
+ }
413
+
414
+
415
+ #endif /* FT_CONFIG_OPTION_PIC */
416
+
417
+ FT_END_HEADER
418
+
419
+ #endif /* __FTDRIVER_H__ */
420
+
421
+
422
+ /* END */