prawn-layout 0.2.1 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (297) hide show
  1. data/Rakefile +1 -1
  2. data/examples/example_helper.rb +5 -1
  3. data/examples/grid/bounding_boxes.rb +21 -0
  4. data/examples/grid/column_gutter_grid.rb +20 -0
  5. data/examples/grid/multi_boxes.rb +51 -0
  6. data/examples/grid/show_grid.rb +13 -0
  7. data/lib/prawn/layout.rb +1 -1
  8. data/lib/prawn/layout/grid.rb +36 -18
  9. data/lib/prawn/table.rb +20 -8
  10. data/lib/prawn/table/cell.rb +24 -15
  11. data/spec/spec_helper.rb +2 -1
  12. data/spec/table_spec.rb +32 -0
  13. data/vendor/prawn-core/COPYING +340 -0
  14. data/vendor/prawn-core/HACKING +46 -0
  15. data/vendor/prawn-core/LICENSE +56 -0
  16. data/vendor/prawn-core/README +142 -0
  17. data/vendor/prawn-core/Rakefile +75 -0
  18. data/vendor/prawn-core/bench/afm_text_bench.rb +18 -0
  19. data/vendor/prawn-core/bench/png_type_6.rb +15 -0
  20. data/vendor/prawn-core/bench/ttf_text_bench.rb +19 -0
  21. data/vendor/prawn-core/bugs/canvas_sets_y_to_0.rb +15 -0
  22. data/vendor/prawn-core/bugs/png_barcode_issue.rb +11 -0
  23. data/vendor/prawn-core/bugs/resolved/canvas_sets_y_to_0.rb +15 -0
  24. data/vendor/prawn-core/data/encodings/win_ansi.txt +29 -0
  25. data/vendor/prawn-core/data/fonts/Action Man.dfont +0 -0
  26. data/vendor/prawn-core/data/fonts/Activa.ttf +0 -0
  27. data/vendor/prawn-core/data/fonts/Chalkboard.ttf +0 -0
  28. data/vendor/prawn-core/data/fonts/Courier-Bold.afm +342 -0
  29. data/vendor/prawn-core/data/fonts/Courier-BoldOblique.afm +342 -0
  30. data/vendor/prawn-core/data/fonts/Courier-Oblique.afm +342 -0
  31. data/vendor/prawn-core/data/fonts/Courier.afm +342 -0
  32. data/vendor/prawn-core/data/fonts/DejaVuSans.ttf +0 -0
  33. data/vendor/prawn-core/data/fonts/Dustismo_Roman.ttf +0 -0
  34. data/vendor/prawn-core/data/fonts/Helvetica-Bold.afm +2827 -0
  35. data/vendor/prawn-core/data/fonts/Helvetica-BoldOblique.afm +2827 -0
  36. data/vendor/prawn-core/data/fonts/Helvetica-Oblique.afm +3051 -0
  37. data/vendor/prawn-core/data/fonts/Helvetica.afm +3051 -0
  38. data/vendor/prawn-core/data/fonts/MustRead.html +19 -0
  39. data/vendor/prawn-core/data/fonts/Symbol.afm +213 -0
  40. data/vendor/prawn-core/data/fonts/Times-Bold.afm +2588 -0
  41. data/vendor/prawn-core/data/fonts/Times-BoldItalic.afm +2384 -0
  42. data/vendor/prawn-core/data/fonts/Times-Italic.afm +2667 -0
  43. data/vendor/prawn-core/data/fonts/Times-Roman.afm +2419 -0
  44. data/vendor/prawn-core/data/fonts/ZapfDingbats.afm +225 -0
  45. data/vendor/prawn-core/data/fonts/comicsans.ttf +0 -0
  46. data/vendor/prawn-core/data/fonts/gkai00mp.ttf +0 -0
  47. data/vendor/prawn-core/data/images/16bit.alpha +0 -0
  48. data/vendor/prawn-core/data/images/16bit.dat +0 -0
  49. data/vendor/prawn-core/data/images/16bit.png +0 -0
  50. data/vendor/prawn-core/data/images/arrow.png +0 -0
  51. data/vendor/prawn-core/data/images/arrow2.png +0 -0
  52. data/vendor/prawn-core/data/images/barcode_issue.png +0 -0
  53. data/vendor/prawn-core/data/images/dice.alpha +0 -0
  54. data/vendor/prawn-core/data/images/dice.dat +0 -0
  55. data/vendor/prawn-core/data/images/dice.png +0 -0
  56. data/vendor/prawn-core/data/images/dice_interlaced.png +0 -0
  57. data/vendor/prawn-core/data/images/fractal.jpg +0 -0
  58. data/vendor/prawn-core/data/images/letterhead.jpg +0 -0
  59. data/vendor/prawn-core/data/images/page_white_text.alpha +0 -0
  60. data/vendor/prawn-core/data/images/page_white_text.dat +0 -0
  61. data/vendor/prawn-core/data/images/page_white_text.png +0 -0
  62. data/vendor/prawn-core/data/images/pigs.jpg +0 -0
  63. data/vendor/prawn-core/data/images/rails.dat +0 -0
  64. data/vendor/prawn-core/data/images/rails.png +0 -0
  65. data/vendor/prawn-core/data/images/ruport.png +0 -0
  66. data/vendor/prawn-core/data/images/ruport_data.dat +0 -0
  67. data/vendor/prawn-core/data/images/ruport_transparent.png +0 -0
  68. data/vendor/prawn-core/data/images/ruport_type0.png +0 -0
  69. data/vendor/prawn-core/data/images/stef.jpg +0 -0
  70. data/vendor/prawn-core/data/images/tru256.bmp +0 -0
  71. data/vendor/prawn-core/data/images/web-links.dat +1 -0
  72. data/vendor/prawn-core/data/images/web-links.png +0 -0
  73. data/vendor/prawn-core/data/shift_jis_text.txt +1 -0
  74. data/vendor/prawn-core/examples/bounding_box/bounding_boxes.rb +43 -0
  75. data/vendor/prawn-core/examples/bounding_box/indentation.rb +34 -0
  76. data/vendor/prawn-core/examples/bounding_box/russian_boxes.rb +36 -0
  77. data/vendor/prawn-core/examples/bounding_box/stretched_nesting.rb +67 -0
  78. data/vendor/prawn-core/examples/column_box/column_box_example.rb +43 -0
  79. data/vendor/prawn-core/examples/example_helper.rb +3 -0
  80. data/vendor/prawn-core/examples/general/background.rb +23 -0
  81. data/vendor/prawn-core/examples/general/canvas.rb +15 -0
  82. data/vendor/prawn-core/examples/general/margin.rb +36 -0
  83. data/vendor/prawn-core/examples/general/measurement_units.rb +51 -0
  84. data/vendor/prawn-core/examples/general/metadata-info.rb +16 -0
  85. data/vendor/prawn-core/examples/general/multi_page_layout.rb +18 -0
  86. data/vendor/prawn-core/examples/general/page_geometry.rb +31 -0
  87. data/vendor/prawn-core/examples/general/page_numbering.rb +15 -0
  88. data/vendor/prawn-core/examples/general/stamp.rb +45 -0
  89. data/vendor/prawn-core/examples/graphics/basic_images.rb +23 -0
  90. data/vendor/prawn-core/examples/graphics/cmyk.rb +12 -0
  91. data/vendor/prawn-core/examples/graphics/curves.rb +11 -0
  92. data/vendor/prawn-core/examples/graphics/hexagon.rb +13 -0
  93. data/vendor/prawn-core/examples/graphics/image_fit.rb +15 -0
  94. data/vendor/prawn-core/examples/graphics/image_flow.rb +37 -0
  95. data/vendor/prawn-core/examples/graphics/image_position.rb +17 -0
  96. data/vendor/prawn-core/examples/graphics/line.rb +32 -0
  97. data/vendor/prawn-core/examples/graphics/png_types.rb +22 -0
  98. data/vendor/prawn-core/examples/graphics/polygons.rb +16 -0
  99. data/vendor/prawn-core/examples/graphics/remote_images.rb +12 -0
  100. data/vendor/prawn-core/examples/graphics/ruport_style_helpers.rb +19 -0
  101. data/vendor/prawn-core/examples/graphics/stroke_bounds.rb +20 -0
  102. data/vendor/prawn-core/examples/graphics/stroke_cap_and_join.rb +45 -0
  103. data/vendor/prawn-core/examples/graphics/stroke_dash.rb +42 -0
  104. data/vendor/prawn-core/examples/graphics/transparency.rb +26 -0
  105. data/vendor/prawn-core/examples/m17n/chinese_text_wrapping.rb +19 -0
  106. data/vendor/prawn-core/examples/m17n/euro.rb +15 -0
  107. data/vendor/prawn-core/examples/m17n/sjis.rb +28 -0
  108. data/vendor/prawn-core/examples/m17n/utf8.rb +13 -0
  109. data/vendor/prawn-core/examples/m17n/win_ansi_charset.rb +54 -0
  110. data/vendor/prawn-core/examples/text/alignment.rb +18 -0
  111. data/vendor/prawn-core/examples/text/dfont.rb +48 -0
  112. data/vendor/prawn-core/examples/text/family_based_styling.rb +24 -0
  113. data/vendor/prawn-core/examples/text/font_calculations.rb +91 -0
  114. data/vendor/prawn-core/examples/text/font_size.rb +33 -0
  115. data/vendor/prawn-core/examples/text/kerning.rb +30 -0
  116. data/vendor/prawn-core/examples/text/simple_text.rb +17 -0
  117. data/vendor/prawn-core/examples/text/simple_text_ttf.rb +17 -0
  118. data/vendor/prawn-core/examples/text/span.rb +29 -0
  119. data/vendor/prawn-core/examples/text/text_box.rb +25 -0
  120. data/vendor/prawn-core/examples/text/text_box_returning_excess.rb +51 -0
  121. data/vendor/prawn-core/examples/text/text_flow.rb +67 -0
  122. data/vendor/prawn-core/lib/prawn/byte_string.rb +7 -0
  123. data/vendor/prawn-core/lib/prawn/compatibility.rb +38 -0
  124. data/vendor/prawn-core/lib/prawn/core.rb +85 -0
  125. data/vendor/prawn-core/lib/prawn/document.rb +534 -0
  126. data/vendor/prawn-core/lib/prawn/document/annotations.rb +65 -0
  127. data/vendor/prawn-core/lib/prawn/document/bounding_box.rb +390 -0
  128. data/vendor/prawn-core/lib/prawn/document/column_box.rb +102 -0
  129. data/vendor/prawn-core/lib/prawn/document/destinations.rb +92 -0
  130. data/vendor/prawn-core/lib/prawn/document/internals.rb +180 -0
  131. data/vendor/prawn-core/lib/prawn/document/page_geometry.rb +153 -0
  132. data/vendor/prawn-core/lib/prawn/document/snapshot.rb +71 -0
  133. data/vendor/prawn-core/lib/prawn/document/span.rb +55 -0
  134. data/vendor/prawn-core/lib/prawn/document/text.rb +184 -0
  135. data/vendor/prawn-core/lib/prawn/document/text/box.rb +90 -0
  136. data/vendor/prawn-core/lib/prawn/document/text/wrapping.rb +62 -0
  137. data/vendor/prawn-core/lib/prawn/encoding.rb +121 -0
  138. data/vendor/prawn-core/lib/prawn/errors.rb +61 -0
  139. data/vendor/prawn-core/lib/prawn/font.rb +297 -0
  140. data/vendor/prawn-core/lib/prawn/font/afm.rb +202 -0
  141. data/vendor/prawn-core/lib/prawn/font/dfont.rb +34 -0
  142. data/vendor/prawn-core/lib/prawn/font/ttf.rb +329 -0
  143. data/vendor/prawn-core/lib/prawn/graphics.rb +264 -0
  144. data/vendor/prawn-core/lib/prawn/graphics/cap_style.rb +35 -0
  145. data/vendor/prawn-core/lib/prawn/graphics/color.rb +141 -0
  146. data/vendor/prawn-core/lib/prawn/graphics/dash.rb +69 -0
  147. data/vendor/prawn-core/lib/prawn/graphics/join_style.rb +35 -0
  148. data/vendor/prawn-core/lib/prawn/graphics/transparency.rb +56 -0
  149. data/vendor/prawn-core/lib/prawn/images.rb +339 -0
  150. data/vendor/prawn-core/lib/prawn/images/jpg.rb +46 -0
  151. data/vendor/prawn-core/lib/prawn/images/png.rb +219 -0
  152. data/vendor/prawn-core/lib/prawn/literal_string.rb +14 -0
  153. data/vendor/prawn-core/lib/prawn/measurement_extensions.rb +46 -0
  154. data/vendor/prawn-core/lib/prawn/measurements.rb +71 -0
  155. data/vendor/prawn-core/lib/prawn/name_tree.rb +166 -0
  156. data/vendor/prawn-core/lib/prawn/object_store.rb +63 -0
  157. data/vendor/prawn-core/lib/prawn/pdf_object.rb +81 -0
  158. data/vendor/prawn-core/lib/prawn/reference.rb +72 -0
  159. data/vendor/prawn-core/lib/prawn/stamp.rb +87 -0
  160. data/vendor/prawn-core/meta/Rakefile +62 -0
  161. data/vendor/prawn-core/meta/lib/prawn.rb +2 -0
  162. data/vendor/prawn-core/reference_pdfs/alignment.pdf +229 -0
  163. data/vendor/prawn-core/reference_pdfs/background.pdf +0 -0
  164. data/vendor/prawn-core/reference_pdfs/basic_images.pdf +0 -0
  165. data/vendor/prawn-core/reference_pdfs/bounding_boxes.pdf +128 -0
  166. data/vendor/prawn-core/reference_pdfs/canvas.pdf +78 -0
  167. data/vendor/prawn-core/reference_pdfs/chinese_flow.pdf +0 -0
  168. data/vendor/prawn-core/reference_pdfs/cmyk.pdf +0 -0
  169. data/vendor/prawn-core/reference_pdfs/column_box.pdf +3671 -0
  170. data/vendor/prawn-core/reference_pdfs/curves.pdf +62 -0
  171. data/vendor/prawn-core/reference_pdfs/dfont.pdf +0 -0
  172. data/vendor/prawn-core/reference_pdfs/euro.pdf +75 -0
  173. data/vendor/prawn-core/reference_pdfs/family_style.pdf +286 -0
  174. data/vendor/prawn-core/reference_pdfs/flow.pdf +964 -0
  175. data/vendor/prawn-core/reference_pdfs/font_calculations.pdf +0 -0
  176. data/vendor/prawn-core/reference_pdfs/font_size.pdf +142 -0
  177. data/vendor/prawn-core/reference_pdfs/hexagon.pdf +61 -0
  178. data/vendor/prawn-core/reference_pdfs/image-flow.pdf +0 -0
  179. data/vendor/prawn-core/reference_pdfs/image_fit.pdf +0 -0
  180. data/vendor/prawn-core/reference_pdfs/image_position.pdf +0 -0
  181. data/vendor/prawn-core/reference_pdfs/indentation.pdf +124 -0
  182. data/vendor/prawn-core/reference_pdfs/kerning.pdf +0 -0
  183. data/vendor/prawn-core/reference_pdfs/landscape_a4.pdf +52 -0
  184. data/vendor/prawn-core/reference_pdfs/landscape_legal.pdf +52 -0
  185. data/vendor/prawn-core/reference_pdfs/landscape_letter.pdf +52 -0
  186. data/vendor/prawn-core/reference_pdfs/lines.pdf +116 -0
  187. data/vendor/prawn-core/reference_pdfs/margin.pdf +3850 -0
  188. data/vendor/prawn-core/reference_pdfs/measurement_units.pdf +4667 -0
  189. data/vendor/prawn-core/reference_pdfs/metadata-info.pdf +88 -0
  190. data/vendor/prawn-core/reference_pdfs/multi-layout.pdf +209 -0
  191. data/vendor/prawn-core/reference_pdfs/page_with_numbering.pdf +156 -0
  192. data/vendor/prawn-core/reference_pdfs/png_types.pdf +0 -0
  193. data/vendor/prawn-core/reference_pdfs/portrait_a4.pdf +52 -0
  194. data/vendor/prawn-core/reference_pdfs/portrait_legal.pdf +52 -0
  195. data/vendor/prawn-core/reference_pdfs/portrait_letter.pdf +52 -0
  196. data/vendor/prawn-core/reference_pdfs/pretty_polygons.pdf +122 -0
  197. data/vendor/prawn-core/reference_pdfs/remote_images.pdf +0 -0
  198. data/vendor/prawn-core/reference_pdfs/ruport.pdf +101 -0
  199. data/vendor/prawn-core/reference_pdfs/russian_boxes.pdf +2780 -0
  200. data/vendor/prawn-core/reference_pdfs/simple_text.pdf +136 -0
  201. data/vendor/prawn-core/reference_pdfs/simple_text_ttf.pdf +0 -0
  202. data/vendor/prawn-core/reference_pdfs/sjis.pdf +0 -0
  203. data/vendor/prawn-core/reference_pdfs/span.pdf +1975 -0
  204. data/vendor/prawn-core/reference_pdfs/stamp.pdf +696 -0
  205. data/vendor/prawn-core/reference_pdfs/stretched_nesting.pdf +200 -0
  206. data/vendor/prawn-core/reference_pdfs/stroke_bounds.pdf +135 -0
  207. data/vendor/prawn-core/reference_pdfs/stroke_cap_and_join.pdf +80 -0
  208. data/vendor/prawn-core/reference_pdfs/stroke_dash.pdf +457 -0
  209. data/vendor/prawn-core/reference_pdfs/text_box.pdf +315 -0
  210. data/vendor/prawn-core/reference_pdfs/text_box_returning_excess.pdf +271 -0
  211. data/vendor/prawn-core/reference_pdfs/transparency.pdf +347 -0
  212. data/vendor/prawn-core/reference_pdfs/utf8.pdf +0 -0
  213. data/vendor/prawn-core/reference_pdfs/win-ansi.pdf +6172 -0
  214. data/vendor/prawn-core/spec/annotations_spec.rb +90 -0
  215. data/vendor/prawn-core/spec/bounding_box_spec.rb +185 -0
  216. data/vendor/prawn-core/spec/destinations_spec.rb +15 -0
  217. data/vendor/prawn-core/spec/document_spec.rb +231 -0
  218. data/vendor/prawn-core/spec/font_spec.rb +273 -0
  219. data/vendor/prawn-core/spec/graphics_spec.rb +209 -0
  220. data/vendor/prawn-core/spec/images_spec.rb +79 -0
  221. data/vendor/prawn-core/spec/jpg_spec.rb +25 -0
  222. data/vendor/prawn-core/spec/measurement_units_spec.rb +23 -0
  223. data/vendor/prawn-core/spec/name_tree_spec.rb +112 -0
  224. data/vendor/prawn-core/spec/object_store_spec.rb +42 -0
  225. data/vendor/prawn-core/spec/pdf_object_spec.rb +122 -0
  226. data/vendor/prawn-core/spec/png_spec.rb +236 -0
  227. data/vendor/prawn-core/spec/reference_spec.rb +82 -0
  228. data/vendor/prawn-core/spec/snapshot_spec.rb +115 -0
  229. data/vendor/prawn-core/spec/span_spec.rb +45 -0
  230. data/vendor/prawn-core/spec/spec_helper.rb +20 -0
  231. data/vendor/prawn-core/spec/stamp_spec.rb +98 -0
  232. data/vendor/prawn-core/spec/stroke_styles_spec.rb +152 -0
  233. data/vendor/prawn-core/spec/text_box_spec.rb +109 -0
  234. data/vendor/prawn-core/spec/text_spec.rb +185 -0
  235. data/vendor/prawn-core/spec/transparency_spec.rb +61 -0
  236. data/vendor/prawn-core/vendor/pdf-inspector/README +18 -0
  237. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector.rb +26 -0
  238. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/extgstate.rb +18 -0
  239. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/graphics.rb +119 -0
  240. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/page.rb +25 -0
  241. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/text.rb +31 -0
  242. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/xobject.rb +19 -0
  243. data/vendor/prawn-core/vendor/ttfunk/data/fonts/DejaVuSans.ttf +0 -0
  244. data/vendor/prawn-core/vendor/ttfunk/data/fonts/comicsans.ttf +0 -0
  245. data/vendor/prawn-core/vendor/ttfunk/example.rb +45 -0
  246. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk.rb +102 -0
  247. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/directory.rb +17 -0
  248. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/encoding/mac_roman.rb +88 -0
  249. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/encoding/windows_1252.rb +69 -0
  250. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/reader.rb +44 -0
  251. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/resource_file.rb +78 -0
  252. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset.rb +18 -0
  253. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/base.rb +141 -0
  254. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/mac_roman.rb +46 -0
  255. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/unicode.rb +48 -0
  256. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/unicode_8bit.rb +63 -0
  257. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/windows_1252.rb +51 -0
  258. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset_collection.rb +72 -0
  259. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table.rb +46 -0
  260. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap.rb +34 -0
  261. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/format00.rb +54 -0
  262. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/format04.rb +126 -0
  263. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/subtable.rb +79 -0
  264. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf.rb +64 -0
  265. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf/compound.rb +81 -0
  266. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf/simple.rb +37 -0
  267. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/head.rb +44 -0
  268. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/hhea.rb +41 -0
  269. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/hmtx.rb +47 -0
  270. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/kern.rb +79 -0
  271. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/kern/format0.rb +62 -0
  272. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/loca.rb +43 -0
  273. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/maxp.rb +40 -0
  274. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/name.rb +119 -0
  275. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/os2.rb +78 -0
  276. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post.rb +91 -0
  277. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format10.rb +43 -0
  278. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format20.rb +35 -0
  279. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format25.rb +23 -0
  280. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format30.rb +17 -0
  281. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format40.rb +17 -0
  282. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/simple.rb +14 -0
  283. data/vendor/prawn-core/www/index.html +196 -0
  284. data/vendor/prawn-core/www/media/bounding_boxes.pdf +146 -0
  285. data/vendor/prawn-core/www/media/bounding_boxes.png +0 -0
  286. data/vendor/prawn-core/www/media/bounding_boxes_out.png +0 -0
  287. data/vendor/prawn-core/www/media/fancy_table.pdf +350 -0
  288. data/vendor/prawn-core/www/media/image.pdf +0 -0
  289. data/vendor/prawn-core/www/media/images.png +0 -0
  290. data/vendor/prawn-core/www/media/prawn_logo.png +0 -0
  291. data/vendor/prawn-core/www/media/tables.png +0 -0
  292. data/vendor/prawn-core/www/media/utf8.pdf +0 -0
  293. data/vendor/prawn-core/www/media/utf8.png +0 -0
  294. data/vendor/prawn-core/www/prawn-Chinese.html +113 -0
  295. data/vendor/prawn-core/www/prawn.css +86 -0
  296. data/vendor/prawn-core/www/twilight.css +266 -0
  297. metadata +291 -3
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+ #
3
+ # This example demonstrates using the :style option for Document#text.
4
+ # If you are working with TTF fonts, you'll want to check out the
5
+ # documentation for Document#font_families and register your fonts with it.
6
+ #
7
+ require "#{File.dirname(__FILE__)}/../example_helper.rb"
8
+
9
+ Prawn::Document.generate("family_style.pdf") do
10
+ ["Courier","Helvetica","Times-Roman"].each do |f|
11
+ [:bold,:bold_italic,:italic,:normal].each do |s|
12
+ font f, :style => s
13
+ text "I'm writing in #{f} (#{s})"
14
+ end
15
+ end
16
+
17
+ font "Helvetica"
18
+
19
+ text "Normal"
20
+ text "Bold", :style => :bold
21
+ text "Bold Italic", :style => :bold_italic
22
+ text "Italic", :style => :italic
23
+ text "Normal"
24
+ end
@@ -0,0 +1,91 @@
1
+ # encoding: utf-8
2
+ #
3
+ # This example is a demonstration of how Prawn does its text positioning,
4
+ # meant to assist those that need to do advanced positioning calculations.
5
+ # Run the example for a clearer picture of how things work
6
+ #
7
+ require "#{File.dirname(__FILE__)}/../example_helper.rb"
8
+
9
+ Prawn::Document.generate('font_calculations.pdf') do
10
+
11
+ def demonstration
12
+ font_size 12
13
+ move_down 10
14
+
15
+ stroke_horizontal_rule
16
+
17
+ text "When using flowing text, Prawn will position text\n" +
18
+ "starting font.ascender below the baseline, and leave\n" +
19
+ "the y-cursor at the baseline of the next line of text"
20
+
21
+ stroke_horizontal_rule
22
+
23
+ move_down 20
24
+
25
+ bl = y - bounds.absolute_bottom
26
+
27
+ stroke_horizontal_rule
28
+ text "When using text positioned with :at, the baseline is used", :at => [0, bl]
29
+
30
+ text "(and the Y-cursor is not moved)", :at => [350, bl]
31
+
32
+ colors = { :ascender => "ff0000",
33
+ :descender => "00ff00",
34
+ :line_gap => "0000ff",
35
+ :font_height => "005500" }
36
+
37
+
38
+ pad(20) do
39
+ text "Calculations Demo", :size => 16
40
+ end
41
+
42
+ fill_color colors[:ascender]
43
+ text "ASCENDER"
44
+
45
+ fill_color colors[:descender]
46
+ text "DESCENDER"
47
+
48
+ fill_color colors[:line_gap]
49
+ text "LINEGAP"
50
+
51
+ fill_color colors[:font_height]
52
+ text "FONT_HEIGHT"
53
+
54
+ fill_color "000000"
55
+ font_size 16
56
+
57
+ move_down 40
58
+
59
+ bl = y - bounds.absolute_bottom
60
+ text "The quick brown fox jumps over the lazy dog.", :at => [0, bl]
61
+
62
+ stroke_color colors[:ascender]
63
+ stroke_line [0, bl], [0, bl + font.ascender]
64
+ stroke_line [0, bl + font.ascender], [bounds.width, bl + font.ascender]
65
+
66
+ stroke_color colors[:descender]
67
+ stroke_line [0,bl], [0, bl + font.descender]
68
+ stroke_line [0, bl + font.descender], [bounds.width, bl + font.descender]
69
+
70
+ stroke_color colors[:line_gap]
71
+ stroke_line [0, bl + font.descender], [0,bl + font.descender - font.line_gap]
72
+ stroke_line [0, bl + font.descender - font.line_gap],
73
+ [bounds.width,bl + font.descender - font.line_gap]
74
+
75
+ stroke_color colors[:font_height]
76
+ stroke_line [bounds.width, bl + font.ascender],
77
+ [bounds.width, bl + font.descender - font.line_gap]
78
+
79
+ stroke_color "000000"
80
+ fill_color "000000"
81
+ end
82
+
83
+ text "Using AFM", :size => 20
84
+ demonstration
85
+
86
+ move_down 75
87
+ font "#{Prawn::BASEDIR}/data/fonts/DejaVuSans.ttf"
88
+ text "Using TTF", :size => 20
89
+ demonstration
90
+
91
+ end
@@ -0,0 +1,33 @@
1
+ # encoding: utf-8
2
+ #
3
+ # This example shows the many ways of setting font sizes in Prawn
4
+ #
5
+ require "#{File.dirname(__FILE__)}/../example_helper.rb"
6
+
7
+ Prawn::Document.generate "font_size.pdf", :page_size => "A4" do
8
+
9
+ # Explicit global changes
10
+ font 'Helvetica'
11
+ self.font_size = 16
12
+
13
+ text 'Font at 16 point'
14
+
15
+ # Transactional changes rolled back after block exit
16
+ font_size 9 do
17
+ text 'Font at 9 point'
18
+ # single line changes, not persisted.
19
+ text 'Font at manual override 20 point', :size => 20
20
+ text 'Font at 9 point'
21
+ end
22
+
23
+ # Transactional changes rolled back after block exit on full fonts.
24
+ font("Times-Roman", :style => :italic, :size => 12) do
25
+ text "Font in times at 12"
26
+ font_size(16) { text "Font in Times at 16" }
27
+ end
28
+
29
+ text 'Font at 16 point'
30
+
31
+ font "Courier", :size => 40
32
+ text "40 pt!"
33
+ end
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+ #
3
+ # Demonstration of enabling and disabling kerning support
4
+ #
5
+ require "#{File.dirname(__FILE__)}/../example_helper.rb"
6
+
7
+ Prawn::Document.generate "kerning.pdf" do
8
+ text "To kern?", :at => [200,720], :size => 24, :kerning => true
9
+ text "To not kern?", :at => [200,690], :size => 24, :kerning => false
10
+
11
+ move_down 100
12
+
13
+ pad(30) do
14
+ text "To kern and wrap. " * 5, :size => 24, :kerning => true
15
+ end
16
+
17
+ text "To not kern and wrap. " * 5, :size => 24, :kerning => false
18
+
19
+ font "#{Prawn::BASEDIR}/data/fonts/DejaVuSans.ttf"
20
+
21
+ text "To kern?", :at => [200,660], :size => 24, :kerning => true
22
+ text "To not kern?", :at => [200,630], :size => 24, :kerning => false
23
+
24
+ pad(30) do
25
+ text "To kern and wrap. " * 5, :size => 24, :kerning => true
26
+ end
27
+
28
+ text "To not kern and wrap. " * 5, :size => 24, :kerning => false
29
+
30
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+ #
3
+ # An early example of basic text generation at absolute positions.
4
+ # Mostly kept for nostalgia.
5
+ #
6
+ require "#{File.dirname(__FILE__)}/../example_helper.rb"
7
+
8
+ Prawn::Document.generate "simple_text.pdf" do
9
+ fill_color "0000ff"
10
+ text "Hello World", :at => [200,420], :size => 32, :rotate => 45
11
+ font "Times-Roman"
12
+ fill_color "ff0000"
13
+ text "Using Another Font", :at => [5,5]
14
+ start_new_page
15
+ font "Courier"
16
+ text "Goodbye World", :at => [288,50]
17
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+ #
3
+ # An early example of TTF font embedding. Mostly kept for nostalgia's sake.
4
+ #
5
+ require "#{File.dirname(__FILE__)}/../example_helper.rb"
6
+
7
+ Prawn::Document.generate "simple_text_ttf.pdf" do
8
+ fill_color "0000ff"
9
+ font "#{Prawn::BASEDIR}/data/fonts/comicsans.ttf"
10
+ text "Hello World", :at => [200,720], :size => 32
11
+
12
+ font "#{Prawn::BASEDIR}/data/fonts/Chalkboard.ttf"
13
+
14
+ pad(20) do
15
+ text "This is chalkboard wrapping " * 20
16
+ end
17
+ end
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+ #
3
+ # Demonstration of Document#span, which is used for generating flowing
4
+ # columns of text.
5
+ #
6
+ require "#{File.dirname(__FILE__)}/../example_helper.rb"
7
+
8
+ Prawn::Document.generate("span.pdf") do
9
+
10
+ # Spans will typically be used outside of bounding boxes as a way to build
11
+ # single columns of flowing text that span across pages.
12
+ #
13
+ span(350, :position => :center) do
14
+ text "Here's some centered text in a 350 point column. " * 100
15
+ end
16
+
17
+ # Spans are not really compatible with bounding boxes because they break
18
+ # the nesting chain and also may position text outside of the bounding box
19
+ # boundaries, but sometimes you may wish to use them anyway for convenience
20
+ # Here's an example of how to do that dynamically.
21
+ #
22
+ bounding_box([50,300], :width => 400) do
23
+ text "Here's some default bounding box text. " * 10
24
+ span(bounds.width,
25
+ :position => bounds.absolute_left - margin_box.absolute_left) do
26
+ text "The rain in spain falls mainly on the plains. " * 300
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,25 @@
1
+ # encoding: utf-8
2
+ #
3
+ # A text box is positioned by a top-left corner, width, and height and is
4
+ # essentially an invisible rectangle that the text will flow within. If the
5
+ # text exceeds the boundaries, it is either truncated, replaced with some
6
+ # ellipses, or set to expand beyond the bottom boundary.
7
+ #
8
+ require "#{File.dirname(__FILE__)}/../example_helper.rb"
9
+
10
+ Prawn::Document.generate("text_box.pdf") do
11
+
12
+ text_box "Oh hai text box. " * 200,
13
+ :width => 300, :height => font.height * 5,
14
+ :overflow => :ellipses,
15
+ :at => [100,bounds.top]
16
+
17
+ text_box "Oh hai text box. " * 200,
18
+ :width => 250, :height => font.height * 10,
19
+ :overflow => :truncate,
20
+ :at => [50, 300]
21
+
22
+ move_down 20
23
+
24
+ text_box "Oh hai text box. " * 100, :overflow => :expand
25
+ end
@@ -0,0 +1,51 @@
1
+ # encoding: utf-8
2
+ #
3
+ # A text box is positioned by a top-left corner, width, and height and is
4
+ # essentially an invisible rectangle that the text will flow within. If the
5
+ # text exceeds the boundaries, it is either truncated, replaced with some
6
+ # ellipses, or set to expand beyond the bottom boundary.
7
+ #
8
+ require "#{File.dirname(__FILE__)}/../example_helper.rb"
9
+
10
+ Prawn::Document.generate("text_box_returning_excess.pdf") do
11
+
12
+ # Note that without the initial space in p_break, newlines may be eaten by
13
+ # the wrap/unwrap process that happens inside the text box.
14
+ p_break = " \n\n"
15
+ callout = "Lorem ipsum dolor sit amet"
16
+ lorem = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.#{p_break}Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.#{p_break}Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
17
+
18
+ box_height = font.height * 5
19
+
20
+ # Add a callout box that the rest of the text should flow around
21
+ font_size(18) do
22
+ text_box callout, {
23
+ :width => 100,
24
+ :height => font.height * 3,
25
+ :overflow => :truncate,
26
+ :at => [100, bounds.top - box_height - 4]
27
+ }
28
+ end
29
+
30
+ excess_text = text_box lorem + p_break + lorem, {
31
+ :width => 300,
32
+ :height => box_height,
33
+ :overflow => :truncate,
34
+ :at => [100, bounds.top],
35
+ }
36
+
37
+ excess_text = text_box excess_text, {
38
+ :width => 200,
39
+ :height => box_height,
40
+ :overflow => :truncate,
41
+ :at => [200, bounds.top - box_height],
42
+ }
43
+
44
+ text_box excess_text, {
45
+ :width => 300,
46
+ :height => box_height,
47
+ :overflow => :expand,
48
+ :at => [100, bounds.top - box_height * 2],
49
+ }
50
+
51
+ end
@@ -0,0 +1,67 @@
1
+ # encoding: utf-8
2
+ #
3
+ # Basic text flowing example including the use of bounding boxes. A somewhat
4
+ # old example, mostly retained for nostalgia.
5
+ #
6
+ require "#{File.dirname(__FILE__)}/../example_helper.rb"
7
+
8
+ content = <<-EOS
9
+ How does
10
+ Prawn deal with
11
+ white
12
+ space
13
+
14
+ and
15
+
16
+ line
17
+ breaks?
18
+ EOS
19
+
20
+ poem = <<-EOS
21
+ GOOD-BYE
22
+
23
+ Good-bye, proud world! I'm going home: Thou art not my friend, and I'm not thine. Long through thy weary crowds I roam; A river-ark on the ocean brine, Long I've been tossed like the driven foam: But now, proud world! I'm going home.
24
+
25
+ Good-bye to Flattery's fawning face; To Grandeur with his wise grimace; To upstart Wealth's averted eye; To supple Office, low and high; To crowded halls, to court and street; To frozen hearts and hasting feet; To those who go, and those who come; Good-bye, proud world! I'm going home.
26
+
27
+ I am going to my own hearth-stone, Bosomed in yon green hills alone,-- secret nook in a pleasant land, Whose groves the frolic fairies planned; Where arches green, the livelong day, Echo the blackbird's roundelay, And vulgar feet have never trod A spot that is sacred to thought and God.
28
+
29
+ O, when I am safe in my sylvan home, I tread on the pride of Greece and Rome; And when I am stretched beneath the pines, Where the evening star so holy shines, I laugh at the lore and the pride of man, At the sophist schools and the learned clan; For what are they all, in their high conceit, When man in the bush with God may meet?
30
+ EOS
31
+
32
+ overflow = "This text should flow gracefully onto the next page, like a stream"+
33
+ " flows elegantly from a mountain lake down into the village below."
34
+
35
+ Prawn::Document.generate("flow.pdf") do |pdf|
36
+
37
+ pdf.font "Times-Roman"
38
+ pdf.stroke_line [pdf.bounds.left, pdf.bounds.top],
39
+ [pdf.bounds.right, pdf.bounds.top]
40
+
41
+ pdf.text content, :size => 10
42
+
43
+ pdf.bounding_box([100,600], :width => 200, :height => 525) do
44
+ pdf.stroke_line [pdf.bounds.left, pdf.bounds.top],
45
+ [pdf.bounds.right, pdf.bounds.top]
46
+ pdf.text poem, :size => 12
47
+ end
48
+
49
+ pdf.bounding_box([325,600], :width => 200, :height => 525) do
50
+ pdf.stroke_line [pdf.bounds.left, pdf.bounds.top],
51
+ [pdf.bounds.right, pdf.bounds.top]
52
+ pdf.text poem.reverse, :size => 12
53
+ end
54
+
55
+ pdf.text overflow * 10, :size => 14
56
+
57
+ pdf.text "Hooray! We've conquered the evil PDF gods", :size => 36
58
+
59
+ pdf.bounding_box([100,450], :width => 300) do
60
+ pdf.stroke_line [pdf.bounds.left, pdf.bounds.top],
61
+ [pdf.bounds.right, pdf.bounds.top]
62
+ pdf.text poem, :size => 10, :leading => 5
63
+ end
64
+
65
+ pdf.text "And this text automatically goes below the poem", :size => 18
66
+
67
+ end
@@ -0,0 +1,7 @@
1
+ # encoding: utf-8
2
+ module Prawn
3
+ # This is used to differentiate strings that must be encoded as
4
+ # a byte string, such as binary data from encrypted strings.
5
+ class ByteString < String #:nodoc:
6
+ end
7
+ end
@@ -0,0 +1,38 @@
1
+ # coding: utf-8
2
+ #
3
+ # Why would we ever use Ruby 1.8.7 when we can backport with something
4
+ # as simple as this?
5
+ #
6
+ class String #:nodoc:
7
+ unless "".respond_to?(:lines)
8
+ alias_method :lines, :to_a
9
+ end
10
+ end
11
+
12
+ unless File.respond_to?(:binread)
13
+ def File.binread(file)
14
+ File.open(file,"rb") { |f| f.read }
15
+ end
16
+ end
17
+
18
+ if RUBY_VERSION < "1.9"
19
+
20
+ def ruby_18 #:nodoc:
21
+ yield
22
+ end
23
+
24
+ def ruby_19 #:nodoc:
25
+ false
26
+ end
27
+
28
+ else
29
+
30
+ def ruby_18 #:nodoc:
31
+ false
32
+ end
33
+
34
+ def ruby_19 #:nodoc:
35
+ yield
36
+ end
37
+
38
+ end
@@ -0,0 +1,85 @@
1
+ # encoding: utf-8
2
+ # Prawn : A library for PDF generation in Ruby
3
+ #
4
+ # Copyright April 2008, Gregory Brown. All Rights Reserved.
5
+ #
6
+ # This is free software. Please see the LICENSE and COPYING files for details.
7
+ %w[ttfunk/lib].each do |dep|
8
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + "/../../vendor/#{dep}")
9
+ end
10
+
11
+ begin
12
+ require 'ttfunk'
13
+ rescue LoadError
14
+ puts "Failed to load ttfunk. If you are running Prawn from git:"
15
+ puts " git submodule init"
16
+ puts " git submodule update"
17
+ exit
18
+ end
19
+
20
+ module Prawn
21
+ file = __FILE__
22
+ file = File.readlink(file) if File.symlink?(file)
23
+ dir = File.dirname(file)
24
+
25
+ # The base source directory for Prawn as installed on the system
26
+ BASEDIR = File.expand_path(File.join(dir, '..', '..'))
27
+
28
+ VERSION = "0.6.1"
29
+
30
+ extend self
31
+
32
+ # Whe set to true, Prawn will verify hash options to ensure only valid keys
33
+ # are used. Off by default.
34
+ #
35
+ # Example:
36
+ # >> Prawn::Document.new(:tomato => "Juicy")
37
+ # Prawn::Errors::UnknownOption:
38
+ # Detected unknown option(s): [:tomato]
39
+ # Accepted options are: [:page_size, :page_layout, :left_margin, ...]
40
+ #
41
+ attr_accessor :debug
42
+
43
+ def verify_options(accepted,actual) #:nodoc:
44
+ return unless debug || $DEBUG
45
+ require "set"
46
+ unless (act=Set[*actual.keys]).subset?(acc=Set[*accepted])
47
+ raise Prawn::Errors::UnknownOption,
48
+ "\nDetected unknown option(s): #{(act - acc).to_a.inspect}\n" <<
49
+ "Accepted options are: #{accepted.inspect}"
50
+ end
51
+ yield if block_given?
52
+ end
53
+
54
+ module Configurable #:nodoc:
55
+ def configuration(*args)
56
+ @config ||= Marshal.load(Marshal.dump(default_configuration))
57
+ if Hash === args[0]
58
+ @config.update(args[0])
59
+ elsif args.length > 1
60
+ @config.values_at(*args)
61
+ elsif args.length == 1
62
+ @config[args[0]]
63
+ else
64
+ @config
65
+ end
66
+ end
67
+
68
+ alias_method :C, :configuration
69
+ end
70
+ end
71
+
72
+ require "prawn/compatibility"
73
+ require "prawn/errors"
74
+ require "prawn/pdf_object"
75
+ require "prawn/object_store"
76
+ require "prawn/graphics"
77
+ require "prawn/images"
78
+ require "prawn/images/jpg"
79
+ require "prawn/images/png"
80
+ require "prawn/stamp"
81
+ require "prawn/document"
82
+ require "prawn/reference"
83
+ require "prawn/font"
84
+ require "prawn/encoding"
85
+ require "prawn/measurements"