hexapdf 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (346) hide show
  1. checksums.yaml +7 -0
  2. data/CONTRIBUTERS +3 -0
  3. data/LICENSE +26 -0
  4. data/README.md +88 -0
  5. data/Rakefile +121 -0
  6. data/VERSION +1 -0
  7. data/agpl-3.0.txt +661 -0
  8. data/bin/hexapdf +6 -0
  9. data/data/hexapdf/afm/Courier-Bold.afm +342 -0
  10. data/data/hexapdf/afm/Courier-BoldOblique.afm +342 -0
  11. data/data/hexapdf/afm/Courier-Oblique.afm +342 -0
  12. data/data/hexapdf/afm/Courier.afm +342 -0
  13. data/data/hexapdf/afm/Helvetica-Bold.afm +2827 -0
  14. data/data/hexapdf/afm/Helvetica-BoldOblique.afm +2827 -0
  15. data/data/hexapdf/afm/Helvetica-Oblique.afm +3051 -0
  16. data/data/hexapdf/afm/Helvetica.afm +3051 -0
  17. data/data/hexapdf/afm/MustRead.html +1 -0
  18. data/data/hexapdf/afm/Symbol.afm +213 -0
  19. data/data/hexapdf/afm/Times-Bold.afm +2588 -0
  20. data/data/hexapdf/afm/Times-BoldItalic.afm +2384 -0
  21. data/data/hexapdf/afm/Times-Italic.afm +2667 -0
  22. data/data/hexapdf/afm/Times-Roman.afm +2419 -0
  23. data/data/hexapdf/afm/ZapfDingbats.afm +225 -0
  24. data/data/hexapdf/encoding/glyphlist.txt +4305 -0
  25. data/data/hexapdf/encoding/zapfdingbats.txt +225 -0
  26. data/examples/arc.rb +50 -0
  27. data/examples/graphics.rb +274 -0
  28. data/examples/hello_world.rb +16 -0
  29. data/examples/machupicchu.jpg +0 -0
  30. data/examples/merging.rb +24 -0
  31. data/examples/optimizing.rb +20 -0
  32. data/examples/show_char_bboxes.rb +55 -0
  33. data/examples/standard_pdf_fonts.rb +72 -0
  34. data/examples/truetype.rb +45 -0
  35. data/lib/hexapdf/cli/extract.rb +128 -0
  36. data/lib/hexapdf/cli/info.rb +121 -0
  37. data/lib/hexapdf/cli/inspect.rb +157 -0
  38. data/lib/hexapdf/cli/modify.rb +218 -0
  39. data/lib/hexapdf/cli.rb +121 -0
  40. data/lib/hexapdf/configuration.rb +392 -0
  41. data/lib/hexapdf/content/canvas.rb +1974 -0
  42. data/lib/hexapdf/content/color_space.rb +364 -0
  43. data/lib/hexapdf/content/graphic_object/arc.rb +267 -0
  44. data/lib/hexapdf/content/graphic_object/endpoint_arc.rb +208 -0
  45. data/lib/hexapdf/content/graphic_object/solid_arc.rb +173 -0
  46. data/lib/hexapdf/content/graphic_object.rb +81 -0
  47. data/lib/hexapdf/content/graphics_state.rb +579 -0
  48. data/lib/hexapdf/content/operator.rb +1072 -0
  49. data/lib/hexapdf/content/parser.rb +204 -0
  50. data/lib/hexapdf/content/processor.rb +451 -0
  51. data/lib/hexapdf/content/transformation_matrix.rb +172 -0
  52. data/lib/hexapdf/content.rb +47 -0
  53. data/lib/hexapdf/data_dir.rb +51 -0
  54. data/lib/hexapdf/dictionary.rb +303 -0
  55. data/lib/hexapdf/dictionary_fields.rb +382 -0
  56. data/lib/hexapdf/document.rb +589 -0
  57. data/lib/hexapdf/document_utils.rb +209 -0
  58. data/lib/hexapdf/encryption/aes.rb +206 -0
  59. data/lib/hexapdf/encryption/arc4.rb +93 -0
  60. data/lib/hexapdf/encryption/fast_aes.rb +79 -0
  61. data/lib/hexapdf/encryption/fast_arc4.rb +67 -0
  62. data/lib/hexapdf/encryption/identity.rb +63 -0
  63. data/lib/hexapdf/encryption/ruby_aes.rb +447 -0
  64. data/lib/hexapdf/encryption/ruby_arc4.rb +96 -0
  65. data/lib/hexapdf/encryption/security_handler.rb +494 -0
  66. data/lib/hexapdf/encryption/standard_security_handler.rb +616 -0
  67. data/lib/hexapdf/encryption.rb +94 -0
  68. data/lib/hexapdf/error.rb +73 -0
  69. data/lib/hexapdf/filter/ascii85_decode.rb +160 -0
  70. data/lib/hexapdf/filter/ascii_hex_decode.rb +87 -0
  71. data/lib/hexapdf/filter/dct_decode.rb +57 -0
  72. data/lib/hexapdf/filter/encryption.rb +59 -0
  73. data/lib/hexapdf/filter/flate_decode.rb +93 -0
  74. data/lib/hexapdf/filter/jpx_decode.rb +56 -0
  75. data/lib/hexapdf/filter/lzw_decode.rb +191 -0
  76. data/lib/hexapdf/filter/predictor.rb +266 -0
  77. data/lib/hexapdf/filter/run_length_decode.rb +108 -0
  78. data/lib/hexapdf/filter.rb +176 -0
  79. data/lib/hexapdf/font/cmap/parser.rb +146 -0
  80. data/lib/hexapdf/font/cmap/writer.rb +176 -0
  81. data/lib/hexapdf/font/cmap.rb +90 -0
  82. data/lib/hexapdf/font/encoding/base.rb +77 -0
  83. data/lib/hexapdf/font/encoding/difference_encoding.rb +64 -0
  84. data/lib/hexapdf/font/encoding/glyph_list.rb +150 -0
  85. data/lib/hexapdf/font/encoding/mac_expert_encoding.rb +221 -0
  86. data/lib/hexapdf/font/encoding/mac_roman_encoding.rb +265 -0
  87. data/lib/hexapdf/font/encoding/standard_encoding.rb +205 -0
  88. data/lib/hexapdf/font/encoding/symbol_encoding.rb +244 -0
  89. data/lib/hexapdf/font/encoding/win_ansi_encoding.rb +280 -0
  90. data/lib/hexapdf/font/encoding/zapf_dingbats_encoding.rb +250 -0
  91. data/lib/hexapdf/font/encoding.rb +68 -0
  92. data/lib/hexapdf/font/true_type/font.rb +179 -0
  93. data/lib/hexapdf/font/true_type/table/cmap.rb +103 -0
  94. data/lib/hexapdf/font/true_type/table/cmap_subtable.rb +384 -0
  95. data/lib/hexapdf/font/true_type/table/directory.rb +92 -0
  96. data/lib/hexapdf/font/true_type/table/glyf.rb +166 -0
  97. data/lib/hexapdf/font/true_type/table/head.rb +143 -0
  98. data/lib/hexapdf/font/true_type/table/hhea.rb +109 -0
  99. data/lib/hexapdf/font/true_type/table/hmtx.rb +79 -0
  100. data/lib/hexapdf/font/true_type/table/loca.rb +79 -0
  101. data/lib/hexapdf/font/true_type/table/maxp.rb +112 -0
  102. data/lib/hexapdf/font/true_type/table/name.rb +218 -0
  103. data/lib/hexapdf/font/true_type/table/os2.rb +200 -0
  104. data/lib/hexapdf/font/true_type/table/post.rb +230 -0
  105. data/lib/hexapdf/font/true_type/table.rb +155 -0
  106. data/lib/hexapdf/font/true_type.rb +48 -0
  107. data/lib/hexapdf/font/true_type_wrapper.rb +240 -0
  108. data/lib/hexapdf/font/type1/afm_parser.rb +230 -0
  109. data/lib/hexapdf/font/type1/character_metrics.rb +67 -0
  110. data/lib/hexapdf/font/type1/font.rb +123 -0
  111. data/lib/hexapdf/font/type1/font_metrics.rb +117 -0
  112. data/lib/hexapdf/font/type1/pfb_parser.rb +71 -0
  113. data/lib/hexapdf/font/type1.rb +52 -0
  114. data/lib/hexapdf/font/type1_wrapper.rb +193 -0
  115. data/lib/hexapdf/font_loader/from_configuration.rb +70 -0
  116. data/lib/hexapdf/font_loader/standard14.rb +98 -0
  117. data/lib/hexapdf/font_loader.rb +85 -0
  118. data/lib/hexapdf/font_utils.rb +89 -0
  119. data/lib/hexapdf/image_loader/jpeg.rb +166 -0
  120. data/lib/hexapdf/image_loader/pdf.rb +89 -0
  121. data/lib/hexapdf/image_loader/png.rb +410 -0
  122. data/lib/hexapdf/image_loader.rb +68 -0
  123. data/lib/hexapdf/importer.rb +139 -0
  124. data/lib/hexapdf/name_tree_node.rb +78 -0
  125. data/lib/hexapdf/number_tree_node.rb +67 -0
  126. data/lib/hexapdf/object.rb +363 -0
  127. data/lib/hexapdf/parser.rb +349 -0
  128. data/lib/hexapdf/rectangle.rb +99 -0
  129. data/lib/hexapdf/reference.rb +98 -0
  130. data/lib/hexapdf/revision.rb +206 -0
  131. data/lib/hexapdf/revisions.rb +194 -0
  132. data/lib/hexapdf/serializer.rb +326 -0
  133. data/lib/hexapdf/stream.rb +279 -0
  134. data/lib/hexapdf/task/dereference.rb +109 -0
  135. data/lib/hexapdf/task/optimize.rb +230 -0
  136. data/lib/hexapdf/task.rb +68 -0
  137. data/lib/hexapdf/tokenizer.rb +406 -0
  138. data/lib/hexapdf/type/catalog.rb +107 -0
  139. data/lib/hexapdf/type/embedded_file.rb +87 -0
  140. data/lib/hexapdf/type/file_specification.rb +232 -0
  141. data/lib/hexapdf/type/font.rb +81 -0
  142. data/lib/hexapdf/type/font_descriptor.rb +109 -0
  143. data/lib/hexapdf/type/font_simple.rb +190 -0
  144. data/lib/hexapdf/type/font_true_type.rb +47 -0
  145. data/lib/hexapdf/type/font_type1.rb +162 -0
  146. data/lib/hexapdf/type/form.rb +103 -0
  147. data/lib/hexapdf/type/graphics_state_parameter.rb +79 -0
  148. data/lib/hexapdf/type/image.rb +73 -0
  149. data/lib/hexapdf/type/info.rb +70 -0
  150. data/lib/hexapdf/type/names.rb +69 -0
  151. data/lib/hexapdf/type/object_stream.rb +224 -0
  152. data/lib/hexapdf/type/page.rb +355 -0
  153. data/lib/hexapdf/type/page_tree_node.rb +269 -0
  154. data/lib/hexapdf/type/resources.rb +212 -0
  155. data/lib/hexapdf/type/trailer.rb +128 -0
  156. data/lib/hexapdf/type/viewer_preferences.rb +73 -0
  157. data/lib/hexapdf/type/xref_stream.rb +204 -0
  158. data/lib/hexapdf/type.rb +67 -0
  159. data/lib/hexapdf/utils/bit_field.rb +87 -0
  160. data/lib/hexapdf/utils/bit_stream.rb +148 -0
  161. data/lib/hexapdf/utils/lru_cache.rb +65 -0
  162. data/lib/hexapdf/utils/math_helpers.rb +55 -0
  163. data/lib/hexapdf/utils/object_hash.rb +130 -0
  164. data/lib/hexapdf/utils/pdf_doc_encoding.rb +93 -0
  165. data/lib/hexapdf/utils/sorted_tree_node.rb +339 -0
  166. data/lib/hexapdf/version.rb +39 -0
  167. data/lib/hexapdf/writer.rb +199 -0
  168. data/lib/hexapdf/xref_section.rb +152 -0
  169. data/lib/hexapdf.rb +34 -0
  170. data/man/man1/hexapdf.1 +249 -0
  171. data/test/data/aes-test-vectors/CBCGFSbox-128-decrypt.data.gz +0 -0
  172. data/test/data/aes-test-vectors/CBCGFSbox-128-encrypt.data.gz +0 -0
  173. data/test/data/aes-test-vectors/CBCGFSbox-192-decrypt.data.gz +0 -0
  174. data/test/data/aes-test-vectors/CBCGFSbox-192-encrypt.data.gz +0 -0
  175. data/test/data/aes-test-vectors/CBCGFSbox-256-decrypt.data.gz +0 -0
  176. data/test/data/aes-test-vectors/CBCGFSbox-256-encrypt.data.gz +0 -0
  177. data/test/data/aes-test-vectors/CBCKeySbox-128-decrypt.data.gz +0 -0
  178. data/test/data/aes-test-vectors/CBCKeySbox-128-encrypt.data.gz +0 -0
  179. data/test/data/aes-test-vectors/CBCKeySbox-192-decrypt.data.gz +0 -0
  180. data/test/data/aes-test-vectors/CBCKeySbox-192-encrypt.data.gz +0 -0
  181. data/test/data/aes-test-vectors/CBCKeySbox-256-decrypt.data.gz +0 -0
  182. data/test/data/aes-test-vectors/CBCKeySbox-256-encrypt.data.gz +0 -0
  183. data/test/data/aes-test-vectors/CBCVarKey-128-decrypt.data.gz +0 -0
  184. data/test/data/aes-test-vectors/CBCVarKey-128-encrypt.data.gz +0 -0
  185. data/test/data/aes-test-vectors/CBCVarKey-192-decrypt.data.gz +0 -0
  186. data/test/data/aes-test-vectors/CBCVarKey-192-encrypt.data.gz +0 -0
  187. data/test/data/aes-test-vectors/CBCVarKey-256-decrypt.data.gz +0 -0
  188. data/test/data/aes-test-vectors/CBCVarKey-256-encrypt.data.gz +0 -0
  189. data/test/data/aes-test-vectors/CBCVarTxt-128-decrypt.data.gz +0 -0
  190. data/test/data/aes-test-vectors/CBCVarTxt-128-encrypt.data.gz +0 -0
  191. data/test/data/aes-test-vectors/CBCVarTxt-192-decrypt.data.gz +0 -0
  192. data/test/data/aes-test-vectors/CBCVarTxt-192-encrypt.data.gz +0 -0
  193. data/test/data/aes-test-vectors/CBCVarTxt-256-decrypt.data.gz +0 -0
  194. data/test/data/aes-test-vectors/CBCVarTxt-256-encrypt.data.gz +0 -0
  195. data/test/data/fonts/Ubuntu-Title.ttf +0 -0
  196. data/test/data/images/cmyk.jpg +0 -0
  197. data/test/data/images/fillbytes.jpg +0 -0
  198. data/test/data/images/gray.jpg +0 -0
  199. data/test/data/images/greyscale-1bit.png +0 -0
  200. data/test/data/images/greyscale-2bit.png +0 -0
  201. data/test/data/images/greyscale-4bit.png +0 -0
  202. data/test/data/images/greyscale-8bit.png +0 -0
  203. data/test/data/images/greyscale-alpha-8bit.png +0 -0
  204. data/test/data/images/greyscale-trns-8bit.png +0 -0
  205. data/test/data/images/greyscale-with-gamma1.0.png +0 -0
  206. data/test/data/images/greyscale-with-gamma1.5.png +0 -0
  207. data/test/data/images/indexed-1bit.png +0 -0
  208. data/test/data/images/indexed-2bit.png +0 -0
  209. data/test/data/images/indexed-4bit.png +0 -0
  210. data/test/data/images/indexed-8bit.png +0 -0
  211. data/test/data/images/indexed-alpha-4bit.png +0 -0
  212. data/test/data/images/indexed-alpha-8bit.png +0 -0
  213. data/test/data/images/rgb.jpg +0 -0
  214. data/test/data/images/truecolour-8bit.png +0 -0
  215. data/test/data/images/truecolour-alpha-8bit.png +0 -0
  216. data/test/data/images/truecolour-gama-chrm-8bit.png +0 -0
  217. data/test/data/images/truecolour-srgb-8bit.png +0 -0
  218. data/test/data/minimal.pdf +44 -0
  219. data/test/data/standard-security-handler/README +9 -0
  220. data/test/data/standard-security-handler/bothpwd-aes-128bit-V4.pdf +44 -0
  221. data/test/data/standard-security-handler/bothpwd-aes-256bit-V5.pdf +0 -0
  222. data/test/data/standard-security-handler/bothpwd-arc4-128bit-V2.pdf +43 -0
  223. data/test/data/standard-security-handler/bothpwd-arc4-128bit-V4.pdf +43 -0
  224. data/test/data/standard-security-handler/bothpwd-arc4-40bit-V1.pdf +0 -0
  225. data/test/data/standard-security-handler/nopwd-aes-128bit-V4.pdf +43 -0
  226. data/test/data/standard-security-handler/nopwd-aes-256bit-V5.pdf +0 -0
  227. data/test/data/standard-security-handler/nopwd-arc4-128bit-V2.pdf +43 -0
  228. data/test/data/standard-security-handler/nopwd-arc4-128bit-V4.pdf +43 -0
  229. data/test/data/standard-security-handler/nopwd-arc4-40bit-V1.pdf +43 -0
  230. data/test/data/standard-security-handler/ownerpwd-aes-128bit-V4.pdf +0 -0
  231. data/test/data/standard-security-handler/ownerpwd-aes-256bit-V5.pdf +43 -0
  232. data/test/data/standard-security-handler/ownerpwd-arc4-128bit-V2.pdf +43 -0
  233. data/test/data/standard-security-handler/ownerpwd-arc4-128bit-V4.pdf +43 -0
  234. data/test/data/standard-security-handler/ownerpwd-arc4-40bit-V1.pdf +43 -0
  235. data/test/data/standard-security-handler/userpwd-aes-128bit-V4.pdf +43 -0
  236. data/test/data/standard-security-handler/userpwd-aes-256bit-V5.pdf +43 -0
  237. data/test/data/standard-security-handler/userpwd-arc4-128bit-V2.pdf +0 -0
  238. data/test/data/standard-security-handler/userpwd-arc4-128bit-V4.pdf +0 -0
  239. data/test/data/standard-security-handler/userpwd-arc4-40bit-V1.pdf +43 -0
  240. data/test/hexapdf/common_tokenizer_tests.rb +204 -0
  241. data/test/hexapdf/content/common.rb +31 -0
  242. data/test/hexapdf/content/graphic_object/test_arc.rb +93 -0
  243. data/test/hexapdf/content/graphic_object/test_endpoint_arc.rb +91 -0
  244. data/test/hexapdf/content/graphic_object/test_solid_arc.rb +86 -0
  245. data/test/hexapdf/content/test_canvas.rb +1113 -0
  246. data/test/hexapdf/content/test_color_space.rb +97 -0
  247. data/test/hexapdf/content/test_graphics_state.rb +138 -0
  248. data/test/hexapdf/content/test_operator.rb +619 -0
  249. data/test/hexapdf/content/test_parser.rb +66 -0
  250. data/test/hexapdf/content/test_processor.rb +156 -0
  251. data/test/hexapdf/content/test_transformation_matrix.rb +64 -0
  252. data/test/hexapdf/encryption/common.rb +87 -0
  253. data/test/hexapdf/encryption/test_aes.rb +121 -0
  254. data/test/hexapdf/encryption/test_arc4.rb +39 -0
  255. data/test/hexapdf/encryption/test_fast_aes.rb +17 -0
  256. data/test/hexapdf/encryption/test_fast_arc4.rb +12 -0
  257. data/test/hexapdf/encryption/test_identity.rb +21 -0
  258. data/test/hexapdf/encryption/test_ruby_aes.rb +23 -0
  259. data/test/hexapdf/encryption/test_ruby_arc4.rb +20 -0
  260. data/test/hexapdf/encryption/test_security_handler.rb +356 -0
  261. data/test/hexapdf/encryption/test_standard_security_handler.rb +274 -0
  262. data/test/hexapdf/filter/common.rb +53 -0
  263. data/test/hexapdf/filter/test_ascii85_decode.rb +60 -0
  264. data/test/hexapdf/filter/test_ascii_hex_decode.rb +33 -0
  265. data/test/hexapdf/filter/test_encryption.rb +24 -0
  266. data/test/hexapdf/filter/test_flate_decode.rb +35 -0
  267. data/test/hexapdf/filter/test_lzw_decode.rb +52 -0
  268. data/test/hexapdf/filter/test_predictor.rb +183 -0
  269. data/test/hexapdf/filter/test_run_length_decode.rb +32 -0
  270. data/test/hexapdf/font/cmap/test_parser.rb +67 -0
  271. data/test/hexapdf/font/cmap/test_writer.rb +58 -0
  272. data/test/hexapdf/font/encoding/test_base.rb +35 -0
  273. data/test/hexapdf/font/encoding/test_difference_encoding.rb +21 -0
  274. data/test/hexapdf/font/encoding/test_glyph_list.rb +59 -0
  275. data/test/hexapdf/font/encoding/test_zapf_dingbats_encoding.rb +16 -0
  276. data/test/hexapdf/font/test_encoding.rb +27 -0
  277. data/test/hexapdf/font/test_true_type_wrapper.rb +110 -0
  278. data/test/hexapdf/font/test_type1_wrapper.rb +66 -0
  279. data/test/hexapdf/font/true_type/common.rb +19 -0
  280. data/test/hexapdf/font/true_type/table/test_cmap.rb +59 -0
  281. data/test/hexapdf/font/true_type/table/test_cmap_subtable.rb +133 -0
  282. data/test/hexapdf/font/true_type/table/test_directory.rb +35 -0
  283. data/test/hexapdf/font/true_type/table/test_glyf.rb +58 -0
  284. data/test/hexapdf/font/true_type/table/test_head.rb +76 -0
  285. data/test/hexapdf/font/true_type/table/test_hhea.rb +40 -0
  286. data/test/hexapdf/font/true_type/table/test_hmtx.rb +38 -0
  287. data/test/hexapdf/font/true_type/table/test_loca.rb +43 -0
  288. data/test/hexapdf/font/true_type/table/test_maxp.rb +62 -0
  289. data/test/hexapdf/font/true_type/table/test_name.rb +95 -0
  290. data/test/hexapdf/font/true_type/table/test_os2.rb +65 -0
  291. data/test/hexapdf/font/true_type/table/test_post.rb +89 -0
  292. data/test/hexapdf/font/true_type/test_font.rb +120 -0
  293. data/test/hexapdf/font/true_type/test_table.rb +41 -0
  294. data/test/hexapdf/font/type1/test_afm_parser.rb +51 -0
  295. data/test/hexapdf/font/type1/test_font.rb +68 -0
  296. data/test/hexapdf/font/type1/test_pfb_parser.rb +37 -0
  297. data/test/hexapdf/font_loader/test_from_configuration.rb +28 -0
  298. data/test/hexapdf/font_loader/test_standard14.rb +22 -0
  299. data/test/hexapdf/image_loader/test_jpeg.rb +83 -0
  300. data/test/hexapdf/image_loader/test_pdf.rb +47 -0
  301. data/test/hexapdf/image_loader/test_png.rb +258 -0
  302. data/test/hexapdf/task/test_dereference.rb +46 -0
  303. data/test/hexapdf/task/test_optimize.rb +137 -0
  304. data/test/hexapdf/test_configuration.rb +82 -0
  305. data/test/hexapdf/test_data_dir.rb +32 -0
  306. data/test/hexapdf/test_dictionary.rb +284 -0
  307. data/test/hexapdf/test_dictionary_fields.rb +185 -0
  308. data/test/hexapdf/test_document.rb +574 -0
  309. data/test/hexapdf/test_document_utils.rb +144 -0
  310. data/test/hexapdf/test_filter.rb +96 -0
  311. data/test/hexapdf/test_font_utils.rb +47 -0
  312. data/test/hexapdf/test_importer.rb +78 -0
  313. data/test/hexapdf/test_object.rb +177 -0
  314. data/test/hexapdf/test_parser.rb +394 -0
  315. data/test/hexapdf/test_rectangle.rb +36 -0
  316. data/test/hexapdf/test_reference.rb +41 -0
  317. data/test/hexapdf/test_revision.rb +139 -0
  318. data/test/hexapdf/test_revisions.rb +93 -0
  319. data/test/hexapdf/test_serializer.rb +169 -0
  320. data/test/hexapdf/test_stream.rb +262 -0
  321. data/test/hexapdf/test_tokenizer.rb +30 -0
  322. data/test/hexapdf/test_writer.rb +120 -0
  323. data/test/hexapdf/test_xref_section.rb +35 -0
  324. data/test/hexapdf/type/test_catalog.rb +30 -0
  325. data/test/hexapdf/type/test_embedded_file.rb +16 -0
  326. data/test/hexapdf/type/test_file_specification.rb +148 -0
  327. data/test/hexapdf/type/test_font.rb +35 -0
  328. data/test/hexapdf/type/test_font_descriptor.rb +51 -0
  329. data/test/hexapdf/type/test_font_simple.rb +190 -0
  330. data/test/hexapdf/type/test_font_type1.rb +128 -0
  331. data/test/hexapdf/type/test_form.rb +60 -0
  332. data/test/hexapdf/type/test_info.rb +14 -0
  333. data/test/hexapdf/type/test_names.rb +9 -0
  334. data/test/hexapdf/type/test_object_stream.rb +84 -0
  335. data/test/hexapdf/type/test_page.rb +260 -0
  336. data/test/hexapdf/type/test_page_tree_node.rb +255 -0
  337. data/test/hexapdf/type/test_resources.rb +167 -0
  338. data/test/hexapdf/type/test_trailer.rb +109 -0
  339. data/test/hexapdf/type/test_xref_stream.rb +131 -0
  340. data/test/hexapdf/utils/test_bit_field.rb +47 -0
  341. data/test/hexapdf/utils/test_lru_cache.rb +22 -0
  342. data/test/hexapdf/utils/test_object_hash.rb +115 -0
  343. data/test/hexapdf/utils/test_pdf_doc_encoding.rb +18 -0
  344. data/test/hexapdf/utils/test_sorted_tree_node.rb +232 -0
  345. data/test/test_helper.rb +56 -0
  346. metadata +427 -0
@@ -0,0 +1 @@
1
+ <html>
@@ -0,0 +1,213 @@
1
+ StartFontMetrics 4.1
2
+ Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved.
3
+ Comment Creation Date: Thu May 1 15:12:25 1997
4
+ Comment UniqueID 43064
5
+ Comment VMusage 30820 39997
6
+ FontName Symbol
7
+ FullName Symbol
8
+ FamilyName Symbol
9
+ Weight Medium
10
+ ItalicAngle 0
11
+ IsFixedPitch false
12
+ CharacterSet Special
13
+ FontBBox -180 -293 1090 1010
14
+ UnderlinePosition -100
15
+ UnderlineThickness 50
16
+ Version 001.008
17
+ Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved.
18
+ EncodingScheme FontSpecific
19
+ StdHW 92
20
+ StdVW 85
21
+ StartCharMetrics 190
22
+ C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
23
+ C 33 ; WX 333 ; N exclam ; B 128 -17 240 672 ;
24
+ C 34 ; WX 713 ; N universal ; B 31 0 681 705 ;
25
+ C 35 ; WX 500 ; N numbersign ; B 20 -16 481 673 ;
26
+ C 36 ; WX 549 ; N existential ; B 25 0 478 707 ;
27
+ C 37 ; WX 833 ; N percent ; B 63 -36 771 655 ;
28
+ C 38 ; WX 778 ; N ampersand ; B 41 -18 750 661 ;
29
+ C 39 ; WX 439 ; N suchthat ; B 48 -17 414 500 ;
30
+ C 40 ; WX 333 ; N parenleft ; B 53 -191 300 673 ;
31
+ C 41 ; WX 333 ; N parenright ; B 30 -191 277 673 ;
32
+ C 42 ; WX 500 ; N asteriskmath ; B 65 134 427 551 ;
33
+ C 43 ; WX 549 ; N plus ; B 10 0 539 533 ;
34
+ C 44 ; WX 250 ; N comma ; B 56 -152 194 104 ;
35
+ C 45 ; WX 549 ; N minus ; B 11 233 535 288 ;
36
+ C 46 ; WX 250 ; N period ; B 69 -17 181 95 ;
37
+ C 47 ; WX 278 ; N slash ; B 0 -18 254 646 ;
38
+ C 48 ; WX 500 ; N zero ; B 24 -14 476 685 ;
39
+ C 49 ; WX 500 ; N one ; B 117 0 390 673 ;
40
+ C 50 ; WX 500 ; N two ; B 25 0 475 685 ;
41
+ C 51 ; WX 500 ; N three ; B 43 -14 435 685 ;
42
+ C 52 ; WX 500 ; N four ; B 15 0 469 685 ;
43
+ C 53 ; WX 500 ; N five ; B 32 -14 445 690 ;
44
+ C 54 ; WX 500 ; N six ; B 34 -14 468 685 ;
45
+ C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ;
46
+ C 56 ; WX 500 ; N eight ; B 56 -14 445 685 ;
47
+ C 57 ; WX 500 ; N nine ; B 30 -18 459 685 ;
48
+ C 58 ; WX 278 ; N colon ; B 81 -17 193 460 ;
49
+ C 59 ; WX 278 ; N semicolon ; B 83 -152 221 460 ;
50
+ C 60 ; WX 549 ; N less ; B 26 0 523 522 ;
51
+ C 61 ; WX 549 ; N equal ; B 11 141 537 390 ;
52
+ C 62 ; WX 549 ; N greater ; B 26 0 523 522 ;
53
+ C 63 ; WX 444 ; N question ; B 70 -17 412 686 ;
54
+ C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ;
55
+ C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ;
56
+ C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ;
57
+ C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ;
58
+ C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ;
59
+ C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ;
60
+ C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ;
61
+ C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ;
62
+ C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ;
63
+ C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ;
64
+ C 74 ; WX 631 ; N theta1 ; B 18 -18 623 689 ;
65
+ C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ;
66
+ C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ;
67
+ C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ;
68
+ C 78 ; WX 722 ; N Nu ; B 29 -8 720 673 ;
69
+ C 79 ; WX 722 ; N Omicron ; B 41 -17 715 685 ;
70
+ C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ;
71
+ C 81 ; WX 741 ; N Theta ; B 41 -17 715 685 ;
72
+ C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ;
73
+ C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ;
74
+ C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ;
75
+ C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ;
76
+ C 86 ; WX 439 ; N sigma1 ; B 40 -233 436 500 ;
77
+ C 87 ; WX 768 ; N Omega ; B 34 0 736 688 ;
78
+ C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ;
79
+ C 89 ; WX 795 ; N Psi ; B 15 0 781 684 ;
80
+ C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ;
81
+ C 91 ; WX 333 ; N bracketleft ; B 86 -155 299 674 ;
82
+ C 92 ; WX 863 ; N therefore ; B 163 0 701 487 ;
83
+ C 93 ; WX 333 ; N bracketright ; B 33 -155 246 674 ;
84
+ C 94 ; WX 658 ; N perpendicular ; B 15 0 652 674 ;
85
+ C 95 ; WX 500 ; N underscore ; B -2 -125 502 -75 ;
86
+ C 96 ; WX 500 ; N radicalex ; B 480 881 1090 917 ;
87
+ C 97 ; WX 631 ; N alpha ; B 41 -18 622 500 ;
88
+ C 98 ; WX 549 ; N beta ; B 61 -223 515 741 ;
89
+ C 99 ; WX 549 ; N chi ; B 12 -231 522 499 ;
90
+ C 100 ; WX 494 ; N delta ; B 40 -19 481 740 ;
91
+ C 101 ; WX 439 ; N epsilon ; B 22 -19 427 502 ;
92
+ C 102 ; WX 521 ; N phi ; B 28 -224 492 673 ;
93
+ C 103 ; WX 411 ; N gamma ; B 5 -225 484 499 ;
94
+ C 104 ; WX 603 ; N eta ; B 0 -202 527 514 ;
95
+ C 105 ; WX 329 ; N iota ; B 0 -17 301 503 ;
96
+ C 106 ; WX 603 ; N phi1 ; B 36 -224 587 499 ;
97
+ C 107 ; WX 549 ; N kappa ; B 33 0 558 501 ;
98
+ C 108 ; WX 549 ; N lambda ; B 24 -17 548 739 ;
99
+ C 109 ; WX 576 ; N mu ; B 33 -223 567 500 ;
100
+ C 110 ; WX 521 ; N nu ; B -9 -16 475 507 ;
101
+ C 111 ; WX 549 ; N omicron ; B 35 -19 501 499 ;
102
+ C 112 ; WX 549 ; N pi ; B 10 -19 530 487 ;
103
+ C 113 ; WX 521 ; N theta ; B 43 -17 485 690 ;
104
+ C 114 ; WX 549 ; N rho ; B 50 -230 490 499 ;
105
+ C 115 ; WX 603 ; N sigma ; B 30 -21 588 500 ;
106
+ C 116 ; WX 439 ; N tau ; B 10 -19 418 500 ;
107
+ C 117 ; WX 576 ; N upsilon ; B 7 -18 535 507 ;
108
+ C 118 ; WX 713 ; N omega1 ; B 12 -18 671 583 ;
109
+ C 119 ; WX 686 ; N omega ; B 42 -17 684 500 ;
110
+ C 120 ; WX 493 ; N xi ; B 27 -224 469 766 ;
111
+ C 121 ; WX 686 ; N psi ; B 12 -228 701 500 ;
112
+ C 122 ; WX 494 ; N zeta ; B 60 -225 467 756 ;
113
+ C 123 ; WX 480 ; N braceleft ; B 58 -183 397 673 ;
114
+ C 124 ; WX 200 ; N bar ; B 65 -293 135 707 ;
115
+ C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ;
116
+ C 126 ; WX 549 ; N similar ; B 17 203 529 307 ;
117
+ C 160 ; WX 750 ; N Euro ; B 20 -12 714 685 ;
118
+ C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 685 ;
119
+ C 162 ; WX 247 ; N minute ; B 27 459 228 735 ;
120
+ C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ;
121
+ C 164 ; WX 167 ; N fraction ; B -180 -12 340 677 ;
122
+ C 165 ; WX 713 ; N infinity ; B 26 124 688 404 ;
123
+ C 166 ; WX 500 ; N florin ; B 2 -193 494 686 ;
124
+ C 167 ; WX 753 ; N club ; B 86 -26 660 533 ;
125
+ C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ;
126
+ C 169 ; WX 753 ; N heart ; B 117 -33 631 532 ;
127
+ C 170 ; WX 753 ; N spade ; B 113 -36 629 548 ;
128
+ C 171 ; WX 1042 ; N arrowboth ; B 24 -15 1024 511 ;
129
+ C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ;
130
+ C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ;
131
+ C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ;
132
+ C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ;
133
+ C 176 ; WX 400 ; N degree ; B 50 385 350 685 ;
134
+ C 177 ; WX 549 ; N plusminus ; B 10 0 539 645 ;
135
+ C 178 ; WX 411 ; N second ; B 20 459 413 737 ;
136
+ C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ;
137
+ C 180 ; WX 549 ; N multiply ; B 17 8 533 524 ;
138
+ C 181 ; WX 713 ; N proportional ; B 27 123 639 404 ;
139
+ C 182 ; WX 494 ; N partialdiff ; B 26 -20 462 746 ;
140
+ C 183 ; WX 460 ; N bullet ; B 50 113 410 473 ;
141
+ C 184 ; WX 549 ; N divide ; B 10 71 536 456 ;
142
+ C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ;
143
+ C 186 ; WX 549 ; N equivalence ; B 14 82 538 443 ;
144
+ C 187 ; WX 549 ; N approxequal ; B 14 135 527 394 ;
145
+ C 188 ; WX 1000 ; N ellipsis ; B 111 -17 889 95 ;
146
+ C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ;
147
+ C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ;
148
+ C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ;
149
+ C 192 ; WX 823 ; N aleph ; B 175 -18 661 658 ;
150
+ C 193 ; WX 686 ; N Ifraktur ; B 10 -53 578 740 ;
151
+ C 194 ; WX 795 ; N Rfraktur ; B 26 -15 759 734 ;
152
+ C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 573 ;
153
+ C 196 ; WX 768 ; N circlemultiply ; B 43 -17 733 673 ;
154
+ C 197 ; WX 768 ; N circleplus ; B 43 -15 733 675 ;
155
+ C 198 ; WX 823 ; N emptyset ; B 39 -24 781 719 ;
156
+ C 199 ; WX 768 ; N intersection ; B 40 0 732 509 ;
157
+ C 200 ; WX 768 ; N union ; B 40 -17 732 492 ;
158
+ C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ;
159
+ C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ;
160
+ C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ;
161
+ C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ;
162
+ C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ;
163
+ C 206 ; WX 713 ; N element ; B 45 0 505 468 ;
164
+ C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ;
165
+ C 208 ; WX 768 ; N angle ; B 26 0 738 673 ;
166
+ C 209 ; WX 713 ; N gradient ; B 36 -19 681 718 ;
167
+ C 210 ; WX 790 ; N registerserif ; B 50 -17 740 673 ;
168
+ C 211 ; WX 790 ; N copyrightserif ; B 51 -15 741 675 ;
169
+ C 212 ; WX 890 ; N trademarkserif ; B 18 293 855 673 ;
170
+ C 213 ; WX 823 ; N product ; B 25 -101 803 751 ;
171
+ C 214 ; WX 549 ; N radical ; B 10 -38 515 917 ;
172
+ C 215 ; WX 250 ; N dotmath ; B 69 210 169 310 ;
173
+ C 216 ; WX 713 ; N logicalnot ; B 15 0 680 288 ;
174
+ C 217 ; WX 603 ; N logicaland ; B 23 0 583 454 ;
175
+ C 218 ; WX 603 ; N logicalor ; B 30 0 578 477 ;
176
+ C 219 ; WX 1042 ; N arrowdblboth ; B 27 -20 1023 510 ;
177
+ C 220 ; WX 987 ; N arrowdblleft ; B 30 -15 939 513 ;
178
+ C 221 ; WX 603 ; N arrowdblup ; B 39 2 567 911 ;
179
+ C 222 ; WX 987 ; N arrowdblright ; B 45 -20 954 508 ;
180
+ C 223 ; WX 603 ; N arrowdbldown ; B 44 -19 572 890 ;
181
+ C 224 ; WX 494 ; N lozenge ; B 18 0 466 745 ;
182
+ C 225 ; WX 329 ; N angleleft ; B 25 -198 306 746 ;
183
+ C 226 ; WX 790 ; N registersans ; B 50 -20 740 670 ;
184
+ C 227 ; WX 790 ; N copyrightsans ; B 49 -15 739 675 ;
185
+ C 228 ; WX 786 ; N trademarksans ; B 5 293 725 673 ;
186
+ C 229 ; WX 713 ; N summation ; B 14 -108 695 752 ;
187
+ C 230 ; WX 384 ; N parenlefttp ; B 24 -293 436 926 ;
188
+ C 231 ; WX 384 ; N parenleftex ; B 24 -85 108 925 ;
189
+ C 232 ; WX 384 ; N parenleftbt ; B 24 -293 436 926 ;
190
+ C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 349 926 ;
191
+ C 234 ; WX 384 ; N bracketleftex ; B 0 -79 77 925 ;
192
+ C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 349 926 ;
193
+ C 236 ; WX 494 ; N bracelefttp ; B 209 -85 445 925 ;
194
+ C 237 ; WX 494 ; N braceleftmid ; B 20 -85 284 935 ;
195
+ C 238 ; WX 494 ; N braceleftbt ; B 209 -75 445 935 ;
196
+ C 239 ; WX 494 ; N braceex ; B 209 -85 284 935 ;
197
+ C 241 ; WX 329 ; N angleright ; B 21 -198 302 746 ;
198
+ C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ;
199
+ C 243 ; WX 686 ; N integraltp ; B 308 -88 675 920 ;
200
+ C 244 ; WX 686 ; N integralex ; B 308 -88 378 975 ;
201
+ C 245 ; WX 686 ; N integralbt ; B 11 -87 378 921 ;
202
+ C 246 ; WX 384 ; N parenrighttp ; B 54 -293 466 926 ;
203
+ C 247 ; WX 384 ; N parenrightex ; B 382 -85 466 925 ;
204
+ C 248 ; WX 384 ; N parenrightbt ; B 54 -293 466 926 ;
205
+ C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 371 926 ;
206
+ C 250 ; WX 384 ; N bracketrightex ; B 294 -79 371 925 ;
207
+ C 251 ; WX 384 ; N bracketrightbt ; B 22 -80 371 926 ;
208
+ C 252 ; WX 494 ; N bracerighttp ; B 48 -85 284 925 ;
209
+ C 253 ; WX 494 ; N bracerightmid ; B 209 -85 473 935 ;
210
+ C 254 ; WX 494 ; N bracerightbt ; B 48 -75 284 935 ;
211
+ C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ;
212
+ EndCharMetrics
213
+ EndFontMetrics