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,104 @@
1
+ //========================================================================
2
+ //
3
+ // SplashFont.h
4
+ //
5
+ //========================================================================
6
+
7
+ #ifndef SPLASHFONT_H
8
+ #define SPLASHFONT_H
9
+
10
+ #include <aconf.h>
11
+
12
+ #ifdef USE_GCC_PRAGMAS
13
+ #pragma interface
14
+ #endif
15
+
16
+ #include "gtypes.h"
17
+ #include "SplashTypes.h"
18
+
19
+ struct SplashGlyphBitmap;
20
+ struct SplashFontCacheTag;
21
+ class SplashFontFile;
22
+ class SplashPath;
23
+
24
+ //------------------------------------------------------------------------
25
+
26
+ // Fractional positioning uses this many bits to the right of the
27
+ // decimal points.
28
+ #define splashFontFractionBits 2
29
+ #define splashFontFraction (1 << splashFontFractionBits)
30
+ #define splashFontFractionMul \
31
+ ((SplashCoord)1 / (SplashCoord)splashFontFraction)
32
+
33
+ //------------------------------------------------------------------------
34
+ // SplashFont
35
+ //------------------------------------------------------------------------
36
+
37
+ class SplashFont {
38
+ public:
39
+
40
+ SplashFont(SplashFontFile *fontFileA, SplashCoord *matA,
41
+ SplashCoord *textMatA, GBool aaA);
42
+
43
+ // This must be called after the constructor, so that the subclass
44
+ // constructor has a chance to compute the bbox.
45
+ void initCache();
46
+
47
+ virtual ~SplashFont();
48
+
49
+ SplashFontFile *getFontFile() { return fontFile; }
50
+
51
+ // Return true if <this> matches the specified font file and matrix.
52
+ GBool matches(SplashFontFile *fontFileA, SplashCoord *matA,
53
+ SplashCoord *textMatA) {
54
+ return fontFileA == fontFile &&
55
+ matA[0] == mat[0] && matA[1] == mat[1] &&
56
+ matA[2] == mat[2] && matA[3] == mat[3] &&
57
+ textMatA[0] == textMat[0] && textMatA[1] == textMat[1] &&
58
+ textMatA[2] == textMat[2] && textMatA[3] == textMat[3];
59
+ }
60
+
61
+ // Get a glyph - this does a cache lookup first, and if not found,
62
+ // creates a new bitmap and adds it to the cache. The <xFrac> and
63
+ // <yFrac> values are splashFontFractionBits bits each, representing
64
+ // the numerators of fractions in [0, 1), where the denominator is
65
+ // splashFontFraction = 1 << splashFontFractionBits. Subclasses
66
+ // should override this to zero out xFrac and/or yFrac if they don't
67
+ // support fractional coordinates.
68
+ virtual GBool getGlyph(int c, int xFrac, int yFrac,
69
+ SplashGlyphBitmap *bitmap);
70
+
71
+ // Rasterize a glyph. The <xFrac> and <yFrac> values are the same
72
+ // as described for getGlyph.
73
+ virtual GBool makeGlyph(int c, int xFrac, int yFrac,
74
+ SplashGlyphBitmap *bitmap) = 0;
75
+
76
+ // Return the path for a glyph.
77
+ virtual SplashPath *getGlyphPath(int c) = 0;
78
+
79
+ // Return the font transform matrix.
80
+ SplashCoord *getMatrix() { return mat; }
81
+
82
+ // Return the glyph bounding box.
83
+ void getBBox(int *xMinA, int *yMinA, int *xMaxA, int *yMaxA)
84
+ { *xMinA = xMin; *yMinA = yMin; *xMaxA = xMax; *yMaxA = yMax; }
85
+
86
+ protected:
87
+
88
+ SplashFontFile *fontFile;
89
+ SplashCoord mat[4]; // font transform matrix
90
+ // (text space -> device space)
91
+ SplashCoord textMat[4]; // text transform matrix
92
+ // (text space -> user space)
93
+ GBool aa; // anti-aliasing
94
+ int xMin, yMin, xMax, yMax; // glyph bounding box
95
+ Guchar *cache; // glyph bitmap cache
96
+ SplashFontCacheTag * // cache tags
97
+ cacheTags;
98
+ int glyphW, glyphH; // size of glyph bitmaps
99
+ int glyphSize; // size of glyph bitmaps, in bytes
100
+ int cacheSets; // number of sets in cache
101
+ int cacheAssoc; // cache associativity (glyphs per set)
102
+ };
103
+
104
+ #endif
@@ -0,0 +1,317 @@
1
+ //========================================================================
2
+ //
3
+ // SplashFontEngine.cc
4
+ //
5
+ //========================================================================
6
+
7
+ #include <aconf.h>
8
+
9
+ #ifdef USE_GCC_PRAGMAS
10
+ #pragma implementation
11
+ #endif
12
+
13
+ #if HAVE_T1LIB_H
14
+ #include <t1lib.h>
15
+ #endif
16
+
17
+ #include <stdlib.h>
18
+ #include <stdio.h>
19
+ #ifndef WIN32
20
+ # include <unistd.h>
21
+ #endif
22
+ #include "gmem.h"
23
+ #include "GString.h"
24
+ #include "SplashMath.h"
25
+ #include "SplashT1FontEngine.h"
26
+ #include "SplashFTFontEngine.h"
27
+ #include "SplashFontFile.h"
28
+ #include "SplashFontFileID.h"
29
+ #include "SplashFont.h"
30
+ #include "SplashFontEngine.h"
31
+
32
+ #ifdef VMS
33
+ #if (__VMS_VER < 70000000)
34
+ extern "C" int unlink(char *filename);
35
+ #endif
36
+ #endif
37
+
38
+ //------------------------------------------------------------------------
39
+ // SplashFontEngine
40
+ //------------------------------------------------------------------------
41
+
42
+ SplashFontEngine::SplashFontEngine(
43
+ #if HAVE_T1LIB_H
44
+ GBool enableT1lib,
45
+ #endif
46
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
47
+ GBool enableFreeType,
48
+ #endif
49
+ GBool aa) {
50
+ int i;
51
+
52
+ for (i = 0; i < splashFontCacheSize; ++i) {
53
+ fontCache[i] = NULL;
54
+ }
55
+
56
+ #if HAVE_T1LIB_H
57
+ if (enableT1lib) {
58
+ t1Engine = SplashT1FontEngine::init(aa);
59
+ } else {
60
+ t1Engine = NULL;
61
+ }
62
+ #endif
63
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
64
+ if (enableFreeType) {
65
+ ftEngine = SplashFTFontEngine::init(aa);
66
+ } else {
67
+ ftEngine = NULL;
68
+ }
69
+ #endif
70
+ }
71
+
72
+ SplashFontEngine::~SplashFontEngine() {
73
+ int i;
74
+
75
+ for (i = 0; i < splashFontCacheSize; ++i) {
76
+ if (fontCache[i]) {
77
+ delete fontCache[i];
78
+ }
79
+ }
80
+
81
+ #if HAVE_T1LIB_H
82
+ if (t1Engine) {
83
+ delete t1Engine;
84
+ }
85
+ #endif
86
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
87
+ if (ftEngine) {
88
+ delete ftEngine;
89
+ }
90
+ #endif
91
+ }
92
+
93
+ SplashFontFile *SplashFontEngine::getFontFile(SplashFontFileID *id) {
94
+ SplashFontFile *fontFile;
95
+ int i;
96
+
97
+ for (i = 0; i < splashFontCacheSize; ++i) {
98
+ if (fontCache[i]) {
99
+ fontFile = fontCache[i]->getFontFile();
100
+ if (fontFile && fontFile->getID()->matches(id)) {
101
+ return fontFile;
102
+ }
103
+ }
104
+ }
105
+ return NULL;
106
+ }
107
+
108
+ SplashFontFile *SplashFontEngine::loadType1Font(SplashFontFileID *idA,
109
+ char *fileName,
110
+ GBool deleteFile, char **enc) {
111
+ SplashFontFile *fontFile;
112
+
113
+ fontFile = NULL;
114
+ #if HAVE_T1LIB_H
115
+ if (!fontFile && t1Engine) {
116
+ fontFile = t1Engine->loadType1Font(idA, fileName, deleteFile, enc);
117
+ }
118
+ #endif
119
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
120
+ if (!fontFile && ftEngine) {
121
+ fontFile = ftEngine->loadType1Font(idA, fileName, deleteFile, enc);
122
+ }
123
+ #endif
124
+
125
+ #ifndef WIN32
126
+ // delete the (temporary) font file -- with Unix hard link
127
+ // semantics, this will remove the last link; otherwise it will
128
+ // return an error, leaving the file to be deleted later (if
129
+ // loadXYZFont failed, the file will always be deleted)
130
+ if (deleteFile) {
131
+ unlink(fontFile ? fontFile->fileName->getCString() : fileName);
132
+ }
133
+ #endif
134
+
135
+ return fontFile;
136
+ }
137
+
138
+ SplashFontFile *SplashFontEngine::loadType1CFont(SplashFontFileID *idA,
139
+ char *fileName,
140
+ GBool deleteFile,
141
+ char **enc) {
142
+ SplashFontFile *fontFile;
143
+
144
+ fontFile = NULL;
145
+ #if HAVE_T1LIB_H
146
+ if (!fontFile && t1Engine) {
147
+ fontFile = t1Engine->loadType1CFont(idA, fileName, deleteFile, enc);
148
+ }
149
+ #endif
150
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
151
+ if (!fontFile && ftEngine) {
152
+ fontFile = ftEngine->loadType1CFont(idA, fileName, deleteFile, enc);
153
+ }
154
+ #endif
155
+
156
+ #ifndef WIN32
157
+ // delete the (temporary) font file -- with Unix hard link
158
+ // semantics, this will remove the last link; otherwise it will
159
+ // return an error, leaving the file to be deleted later (if
160
+ // loadXYZFont failed, the file will always be deleted)
161
+ if (deleteFile) {
162
+ unlink(fontFile ? fontFile->fileName->getCString() : fileName);
163
+ }
164
+ #endif
165
+
166
+ return fontFile;
167
+ }
168
+
169
+ SplashFontFile *SplashFontEngine::loadOpenTypeT1CFont(SplashFontFileID *idA,
170
+ char *fileName,
171
+ GBool deleteFile,
172
+ char **enc) {
173
+ SplashFontFile *fontFile;
174
+
175
+ fontFile = NULL;
176
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
177
+ if (!fontFile && ftEngine) {
178
+ fontFile = ftEngine->loadOpenTypeT1CFont(idA, fileName, deleteFile, enc);
179
+ }
180
+ #endif
181
+
182
+ #ifndef WIN32
183
+ // delete the (temporary) font file -- with Unix hard link
184
+ // semantics, this will remove the last link; otherwise it will
185
+ // return an error, leaving the file to be deleted later (if
186
+ // loadXYZFont failed, the file will always be deleted)
187
+ if (deleteFile) {
188
+ unlink(fontFile ? fontFile->fileName->getCString() : fileName);
189
+ }
190
+ #endif
191
+
192
+ return fontFile;
193
+ }
194
+
195
+ SplashFontFile *SplashFontEngine::loadCIDFont(SplashFontFileID *idA,
196
+ char *fileName,
197
+ GBool deleteFile) {
198
+ SplashFontFile *fontFile;
199
+
200
+ fontFile = NULL;
201
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
202
+ if (!fontFile && ftEngine) {
203
+ fontFile = ftEngine->loadCIDFont(idA, fileName, deleteFile);
204
+ }
205
+ #endif
206
+
207
+ #ifndef WIN32
208
+ // delete the (temporary) font file -- with Unix hard link
209
+ // semantics, this will remove the last link; otherwise it will
210
+ // return an error, leaving the file to be deleted later (if
211
+ // loadXYZFont failed, the file will always be deleted)
212
+ if (deleteFile) {
213
+ unlink(fontFile ? fontFile->fileName->getCString() : fileName);
214
+ }
215
+ #endif
216
+
217
+ return fontFile;
218
+ }
219
+
220
+ SplashFontFile *SplashFontEngine::loadOpenTypeCFFFont(SplashFontFileID *idA,
221
+ char *fileName,
222
+ GBool deleteFile) {
223
+ SplashFontFile *fontFile;
224
+
225
+ fontFile = NULL;
226
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
227
+ if (!fontFile && ftEngine) {
228
+ fontFile = ftEngine->loadOpenTypeCFFFont(idA, fileName, deleteFile);
229
+ }
230
+ #endif
231
+
232
+ #ifndef WIN32
233
+ // delete the (temporary) font file -- with Unix hard link
234
+ // semantics, this will remove the last link; otherwise it will
235
+ // return an error, leaving the file to be deleted later (if
236
+ // loadXYZFont failed, the file will always be deleted)
237
+ if (deleteFile) {
238
+ unlink(fontFile ? fontFile->fileName->getCString() : fileName);
239
+ }
240
+ #endif
241
+
242
+ return fontFile;
243
+ }
244
+
245
+ SplashFontFile *SplashFontEngine::loadTrueTypeFont(SplashFontFileID *idA,
246
+ char *fileName,
247
+ GBool deleteFile,
248
+ Gushort *codeToGID,
249
+ int codeToGIDLen) {
250
+ SplashFontFile *fontFile;
251
+
252
+ fontFile = NULL;
253
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
254
+ if (!fontFile && ftEngine) {
255
+ fontFile = ftEngine->loadTrueTypeFont(idA, fileName, deleteFile,
256
+ codeToGID, codeToGIDLen);
257
+ }
258
+ #endif
259
+
260
+ if (!fontFile) {
261
+ gfree(codeToGID);
262
+ }
263
+
264
+ #ifndef WIN32
265
+ // delete the (temporary) font file -- with Unix hard link
266
+ // semantics, this will remove the last link; otherwise it will
267
+ // return an error, leaving the file to be deleted later (if
268
+ // loadXYZFont failed, the file will always be deleted)
269
+ if (deleteFile) {
270
+ unlink(fontFile ? fontFile->fileName->getCString() : fileName);
271
+ }
272
+ #endif
273
+
274
+ return fontFile;
275
+ }
276
+
277
+ SplashFont *SplashFontEngine::getFont(SplashFontFile *fontFile,
278
+ SplashCoord *textMat,
279
+ SplashCoord *ctm) {
280
+ SplashCoord mat[4];
281
+ SplashFont *font;
282
+ int i, j;
283
+
284
+ mat[0] = textMat[0] * ctm[0] + textMat[1] * ctm[2];
285
+ mat[1] = -(textMat[0] * ctm[1] + textMat[1] * ctm[3]);
286
+ mat[2] = textMat[2] * ctm[0] + textMat[3] * ctm[2];
287
+ mat[3] = -(textMat[2] * ctm[1] + textMat[3] * ctm[3]);
288
+ if (splashAbs(mat[0] * mat[3] - mat[1] * mat[2]) < 0.01) {
289
+ // avoid a singular (or close-to-singular) matrix
290
+ mat[0] = 0.01; mat[1] = 0;
291
+ mat[2] = 0; mat[3] = 0.01;
292
+ }
293
+
294
+ font = fontCache[0];
295
+ if (font && font->matches(fontFile, mat, textMat)) {
296
+ return font;
297
+ }
298
+ for (i = 1; i < splashFontCacheSize; ++i) {
299
+ font = fontCache[i];
300
+ if (font && font->matches(fontFile, mat, textMat)) {
301
+ for (j = i; j > 0; --j) {
302
+ fontCache[j] = fontCache[j-1];
303
+ }
304
+ fontCache[0] = font;
305
+ return font;
306
+ }
307
+ }
308
+ font = fontFile->makeFont(mat, textMat);
309
+ if (fontCache[splashFontCacheSize - 1]) {
310
+ delete fontCache[splashFontCacheSize - 1];
311
+ }
312
+ for (j = splashFontCacheSize - 1; j > 0; --j) {
313
+ fontCache[j] = fontCache[j-1];
314
+ }
315
+ fontCache[0] = font;
316
+ return font;
317
+ }
@@ -0,0 +1,91 @@
1
+ //========================================================================
2
+ //
3
+ // SplashFontEngine.h
4
+ //
5
+ //========================================================================
6
+
7
+ #ifndef SPLASHFONTENGINE_H
8
+ #define SPLASHFONTENGINE_H
9
+
10
+ #include <aconf.h>
11
+
12
+ #ifdef USE_GCC_PRAGMAS
13
+ #pragma interface
14
+ #endif
15
+
16
+ #include "gtypes.h"
17
+
18
+ class SplashT1FontEngine;
19
+ class SplashFTFontEngine;
20
+ class SplashDTFontEngine;
21
+ class SplashDT4FontEngine;
22
+ class SplashFontFile;
23
+ class SplashFontFileID;
24
+ class SplashFont;
25
+
26
+ //------------------------------------------------------------------------
27
+
28
+ #define splashFontCacheSize 16
29
+
30
+ //------------------------------------------------------------------------
31
+ // SplashFontEngine
32
+ //------------------------------------------------------------------------
33
+
34
+ class SplashFontEngine {
35
+ public:
36
+
37
+ // Create a font engine.
38
+ SplashFontEngine(
39
+ #if HAVE_T1LIB_H
40
+ GBool enableT1lib,
41
+ #endif
42
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
43
+ GBool enableFreeType,
44
+ #endif
45
+ GBool aa);
46
+
47
+ ~SplashFontEngine();
48
+
49
+ // Get a font file from the cache. Returns NULL if there is no
50
+ // matching entry in the cache.
51
+ SplashFontFile *getFontFile(SplashFontFileID *id);
52
+
53
+ // Load fonts - these create new SplashFontFile objects.
54
+ SplashFontFile *loadType1Font(SplashFontFileID *idA, char *fileName,
55
+ GBool deleteFile, char **enc);
56
+ SplashFontFile *loadType1CFont(SplashFontFileID *idA, char *fileName,
57
+ GBool deleteFile, char **enc);
58
+ SplashFontFile *loadOpenTypeT1CFont(SplashFontFileID *idA, char *fileName,
59
+ GBool deleteFile, char **enc);
60
+ SplashFontFile *loadCIDFont(SplashFontFileID *idA, char *fileName,
61
+ GBool deleteFile);
62
+ SplashFontFile *loadOpenTypeCFFFont(SplashFontFileID *idA, char *fileName,
63
+ GBool deleteFile);
64
+ SplashFontFile *loadTrueTypeFont(SplashFontFileID *idA, char *fileName,
65
+ GBool deleteFile,
66
+ Gushort *codeToGID, int codeToGIDLen);
67
+
68
+ // Get a font - this does a cache lookup first, and if not found,
69
+ // creates a new SplashFont object and adds it to the cache. The
70
+ // matrix, mat = textMat * ctm:
71
+ // [ mat[0] mat[1] ]
72
+ // [ mat[2] mat[3] ]
73
+ // specifies the font transform in PostScript style:
74
+ // [x' y'] = [x y] * mat
75
+ // Note that the Splash y axis points downward.
76
+ SplashFont *getFont(SplashFontFile *fontFile,
77
+ SplashCoord *textMat, SplashCoord *ctm);
78
+
79
+ private:
80
+
81
+ SplashFont *fontCache[splashFontCacheSize];
82
+
83
+ #if HAVE_T1LIB_H
84
+ SplashT1FontEngine *t1Engine;
85
+ #endif
86
+ #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
87
+ SplashFTFontEngine *ftEngine;
88
+ #endif
89
+ };
90
+
91
+ #endif