prawn-layout 0.3.2 → 0.7.1

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 (292) hide show
  1. data/README +1 -0
  2. data/Rakefile +6 -3
  3. data/lib/prawn/layout.rb +1 -1
  4. data/lib/prawn/layout/page.rb +0 -40
  5. data/lib/prawn/table/cell.rb +15 -13
  6. metadata +31 -309
  7. data/examples/page_layout/flowing_text_with_header_and_footer.rb +0 -36
  8. data/spec/page_layout_spec.rb +0 -41
  9. data/vendor/prawn-core/COPYING +0 -340
  10. data/vendor/prawn-core/HACKING +0 -46
  11. data/vendor/prawn-core/LICENSE +0 -56
  12. data/vendor/prawn-core/README +0 -142
  13. data/vendor/prawn-core/Rakefile +0 -75
  14. data/vendor/prawn-core/bench/afm_text_bench.rb +0 -18
  15. data/vendor/prawn-core/bench/png_type_6.rb +0 -15
  16. data/vendor/prawn-core/bench/ttf_text_bench.rb +0 -19
  17. data/vendor/prawn-core/bugs/canvas_sets_y_to_0.rb +0 -15
  18. data/vendor/prawn-core/bugs/png_barcode_issue.rb +0 -11
  19. data/vendor/prawn-core/bugs/resolved/canvas_sets_y_to_0.rb +0 -15
  20. data/vendor/prawn-core/data/encodings/win_ansi.txt +0 -29
  21. data/vendor/prawn-core/data/fonts/Action Man.dfont +0 -0
  22. data/vendor/prawn-core/data/fonts/Activa.ttf +0 -0
  23. data/vendor/prawn-core/data/fonts/Chalkboard.ttf +0 -0
  24. data/vendor/prawn-core/data/fonts/Courier-Bold.afm +0 -342
  25. data/vendor/prawn-core/data/fonts/Courier-BoldOblique.afm +0 -342
  26. data/vendor/prawn-core/data/fonts/Courier-Oblique.afm +0 -342
  27. data/vendor/prawn-core/data/fonts/Courier.afm +0 -342
  28. data/vendor/prawn-core/data/fonts/DejaVuSans.ttf +0 -0
  29. data/vendor/prawn-core/data/fonts/Dustismo_Roman.ttf +0 -0
  30. data/vendor/prawn-core/data/fonts/Helvetica-Bold.afm +0 -2827
  31. data/vendor/prawn-core/data/fonts/Helvetica-BoldOblique.afm +0 -2827
  32. data/vendor/prawn-core/data/fonts/Helvetica-Oblique.afm +0 -3051
  33. data/vendor/prawn-core/data/fonts/Helvetica.afm +0 -3051
  34. data/vendor/prawn-core/data/fonts/MustRead.html +0 -19
  35. data/vendor/prawn-core/data/fonts/Symbol.afm +0 -213
  36. data/vendor/prawn-core/data/fonts/Times-Bold.afm +0 -2588
  37. data/vendor/prawn-core/data/fonts/Times-BoldItalic.afm +0 -2384
  38. data/vendor/prawn-core/data/fonts/Times-Italic.afm +0 -2667
  39. data/vendor/prawn-core/data/fonts/Times-Roman.afm +0 -2419
  40. data/vendor/prawn-core/data/fonts/ZapfDingbats.afm +0 -225
  41. data/vendor/prawn-core/data/fonts/comicsans.ttf +0 -0
  42. data/vendor/prawn-core/data/fonts/gkai00mp.ttf +0 -0
  43. data/vendor/prawn-core/data/images/16bit.alpha +0 -0
  44. data/vendor/prawn-core/data/images/16bit.dat +0 -0
  45. data/vendor/prawn-core/data/images/16bit.png +0 -0
  46. data/vendor/prawn-core/data/images/arrow.png +0 -0
  47. data/vendor/prawn-core/data/images/arrow2.png +0 -0
  48. data/vendor/prawn-core/data/images/barcode_issue.png +0 -0
  49. data/vendor/prawn-core/data/images/dice.alpha +0 -0
  50. data/vendor/prawn-core/data/images/dice.dat +0 -0
  51. data/vendor/prawn-core/data/images/dice.png +0 -0
  52. data/vendor/prawn-core/data/images/dice_interlaced.png +0 -0
  53. data/vendor/prawn-core/data/images/fractal.jpg +0 -0
  54. data/vendor/prawn-core/data/images/letterhead.jpg +0 -0
  55. data/vendor/prawn-core/data/images/page_white_text.alpha +0 -0
  56. data/vendor/prawn-core/data/images/page_white_text.dat +0 -0
  57. data/vendor/prawn-core/data/images/page_white_text.png +0 -0
  58. data/vendor/prawn-core/data/images/pigs.jpg +0 -0
  59. data/vendor/prawn-core/data/images/rails.dat +0 -0
  60. data/vendor/prawn-core/data/images/rails.png +0 -0
  61. data/vendor/prawn-core/data/images/ruport.png +0 -0
  62. data/vendor/prawn-core/data/images/ruport_data.dat +0 -0
  63. data/vendor/prawn-core/data/images/ruport_transparent.png +0 -0
  64. data/vendor/prawn-core/data/images/ruport_type0.png +0 -0
  65. data/vendor/prawn-core/data/images/stef.jpg +0 -0
  66. data/vendor/prawn-core/data/images/tru256.bmp +0 -0
  67. data/vendor/prawn-core/data/images/web-links.dat +0 -1
  68. data/vendor/prawn-core/data/images/web-links.png +0 -0
  69. data/vendor/prawn-core/data/shift_jis_text.txt +0 -1
  70. data/vendor/prawn-core/examples/bounding_box/bounding_boxes.rb +0 -43
  71. data/vendor/prawn-core/examples/bounding_box/indentation.rb +0 -34
  72. data/vendor/prawn-core/examples/bounding_box/russian_boxes.rb +0 -36
  73. data/vendor/prawn-core/examples/bounding_box/stretched_nesting.rb +0 -67
  74. data/vendor/prawn-core/examples/column_box/column_box_example.rb +0 -43
  75. data/vendor/prawn-core/examples/example_helper.rb +0 -3
  76. data/vendor/prawn-core/examples/general/background.rb +0 -23
  77. data/vendor/prawn-core/examples/general/canvas.rb +0 -15
  78. data/vendor/prawn-core/examples/general/margin.rb +0 -36
  79. data/vendor/prawn-core/examples/general/measurement_units.rb +0 -51
  80. data/vendor/prawn-core/examples/general/metadata-info.rb +0 -16
  81. data/vendor/prawn-core/examples/general/multi_page_layout.rb +0 -18
  82. data/vendor/prawn-core/examples/general/page_geometry.rb +0 -31
  83. data/vendor/prawn-core/examples/general/page_numbering.rb +0 -15
  84. data/vendor/prawn-core/examples/general/stamp.rb +0 -45
  85. data/vendor/prawn-core/examples/graphics/basic_images.rb +0 -23
  86. data/vendor/prawn-core/examples/graphics/cmyk.rb +0 -12
  87. data/vendor/prawn-core/examples/graphics/curves.rb +0 -11
  88. data/vendor/prawn-core/examples/graphics/hexagon.rb +0 -13
  89. data/vendor/prawn-core/examples/graphics/image_fit.rb +0 -15
  90. data/vendor/prawn-core/examples/graphics/image_flow.rb +0 -37
  91. data/vendor/prawn-core/examples/graphics/image_position.rb +0 -17
  92. data/vendor/prawn-core/examples/graphics/line.rb +0 -32
  93. data/vendor/prawn-core/examples/graphics/png_types.rb +0 -22
  94. data/vendor/prawn-core/examples/graphics/polygons.rb +0 -16
  95. data/vendor/prawn-core/examples/graphics/remote_images.rb +0 -12
  96. data/vendor/prawn-core/examples/graphics/ruport_style_helpers.rb +0 -19
  97. data/vendor/prawn-core/examples/graphics/stroke_bounds.rb +0 -20
  98. data/vendor/prawn-core/examples/graphics/stroke_cap_and_join.rb +0 -45
  99. data/vendor/prawn-core/examples/graphics/stroke_dash.rb +0 -42
  100. data/vendor/prawn-core/examples/graphics/transparency.rb +0 -26
  101. data/vendor/prawn-core/examples/m17n/chinese_text_wrapping.rb +0 -19
  102. data/vendor/prawn-core/examples/m17n/euro.rb +0 -15
  103. data/vendor/prawn-core/examples/m17n/sjis.rb +0 -28
  104. data/vendor/prawn-core/examples/m17n/utf8.rb +0 -13
  105. data/vendor/prawn-core/examples/m17n/win_ansi_charset.rb +0 -54
  106. data/vendor/prawn-core/examples/text/alignment.rb +0 -18
  107. data/vendor/prawn-core/examples/text/dfont.rb +0 -48
  108. data/vendor/prawn-core/examples/text/family_based_styling.rb +0 -24
  109. data/vendor/prawn-core/examples/text/font_calculations.rb +0 -91
  110. data/vendor/prawn-core/examples/text/font_size.rb +0 -33
  111. data/vendor/prawn-core/examples/text/kerning.rb +0 -30
  112. data/vendor/prawn-core/examples/text/simple_text.rb +0 -17
  113. data/vendor/prawn-core/examples/text/simple_text_ttf.rb +0 -17
  114. data/vendor/prawn-core/examples/text/span.rb +0 -29
  115. data/vendor/prawn-core/examples/text/text_box.rb +0 -25
  116. data/vendor/prawn-core/examples/text/text_box_returning_excess.rb +0 -51
  117. data/vendor/prawn-core/examples/text/text_flow.rb +0 -67
  118. data/vendor/prawn-core/lib/prawn/byte_string.rb +0 -7
  119. data/vendor/prawn-core/lib/prawn/compatibility.rb +0 -38
  120. data/vendor/prawn-core/lib/prawn/core.rb +0 -85
  121. data/vendor/prawn-core/lib/prawn/document.rb +0 -534
  122. data/vendor/prawn-core/lib/prawn/document/annotations.rb +0 -65
  123. data/vendor/prawn-core/lib/prawn/document/bounding_box.rb +0 -390
  124. data/vendor/prawn-core/lib/prawn/document/column_box.rb +0 -102
  125. data/vendor/prawn-core/lib/prawn/document/destinations.rb +0 -92
  126. data/vendor/prawn-core/lib/prawn/document/internals.rb +0 -180
  127. data/vendor/prawn-core/lib/prawn/document/page_geometry.rb +0 -153
  128. data/vendor/prawn-core/lib/prawn/document/snapshot.rb +0 -71
  129. data/vendor/prawn-core/lib/prawn/document/span.rb +0 -55
  130. data/vendor/prawn-core/lib/prawn/document/text.rb +0 -184
  131. data/vendor/prawn-core/lib/prawn/document/text/box.rb +0 -90
  132. data/vendor/prawn-core/lib/prawn/document/text/wrapping.rb +0 -62
  133. data/vendor/prawn-core/lib/prawn/encoding.rb +0 -121
  134. data/vendor/prawn-core/lib/prawn/errors.rb +0 -61
  135. data/vendor/prawn-core/lib/prawn/font.rb +0 -297
  136. data/vendor/prawn-core/lib/prawn/font/afm.rb +0 -202
  137. data/vendor/prawn-core/lib/prawn/font/dfont.rb +0 -34
  138. data/vendor/prawn-core/lib/prawn/font/ttf.rb +0 -329
  139. data/vendor/prawn-core/lib/prawn/graphics.rb +0 -264
  140. data/vendor/prawn-core/lib/prawn/graphics/cap_style.rb +0 -35
  141. data/vendor/prawn-core/lib/prawn/graphics/color.rb +0 -141
  142. data/vendor/prawn-core/lib/prawn/graphics/dash.rb +0 -69
  143. data/vendor/prawn-core/lib/prawn/graphics/join_style.rb +0 -35
  144. data/vendor/prawn-core/lib/prawn/graphics/transparency.rb +0 -56
  145. data/vendor/prawn-core/lib/prawn/images.rb +0 -339
  146. data/vendor/prawn-core/lib/prawn/images/jpg.rb +0 -46
  147. data/vendor/prawn-core/lib/prawn/images/png.rb +0 -219
  148. data/vendor/prawn-core/lib/prawn/literal_string.rb +0 -14
  149. data/vendor/prawn-core/lib/prawn/measurement_extensions.rb +0 -46
  150. data/vendor/prawn-core/lib/prawn/measurements.rb +0 -71
  151. data/vendor/prawn-core/lib/prawn/name_tree.rb +0 -166
  152. data/vendor/prawn-core/lib/prawn/object_store.rb +0 -63
  153. data/vendor/prawn-core/lib/prawn/pdf_object.rb +0 -81
  154. data/vendor/prawn-core/lib/prawn/reference.rb +0 -72
  155. data/vendor/prawn-core/lib/prawn/stamp.rb +0 -87
  156. data/vendor/prawn-core/meta/Rakefile +0 -62
  157. data/vendor/prawn-core/meta/lib/prawn.rb +0 -2
  158. data/vendor/prawn-core/reference_pdfs/alignment.pdf +0 -229
  159. data/vendor/prawn-core/reference_pdfs/background.pdf +0 -0
  160. data/vendor/prawn-core/reference_pdfs/basic_images.pdf +0 -0
  161. data/vendor/prawn-core/reference_pdfs/bounding_boxes.pdf +0 -128
  162. data/vendor/prawn-core/reference_pdfs/canvas.pdf +0 -78
  163. data/vendor/prawn-core/reference_pdfs/chinese_flow.pdf +0 -0
  164. data/vendor/prawn-core/reference_pdfs/cmyk.pdf +0 -0
  165. data/vendor/prawn-core/reference_pdfs/column_box.pdf +0 -3671
  166. data/vendor/prawn-core/reference_pdfs/curves.pdf +0 -62
  167. data/vendor/prawn-core/reference_pdfs/dfont.pdf +0 -0
  168. data/vendor/prawn-core/reference_pdfs/euro.pdf +0 -75
  169. data/vendor/prawn-core/reference_pdfs/family_style.pdf +0 -286
  170. data/vendor/prawn-core/reference_pdfs/flow.pdf +0 -964
  171. data/vendor/prawn-core/reference_pdfs/font_calculations.pdf +0 -0
  172. data/vendor/prawn-core/reference_pdfs/font_size.pdf +0 -142
  173. data/vendor/prawn-core/reference_pdfs/hexagon.pdf +0 -61
  174. data/vendor/prawn-core/reference_pdfs/image-flow.pdf +0 -0
  175. data/vendor/prawn-core/reference_pdfs/image_fit.pdf +0 -0
  176. data/vendor/prawn-core/reference_pdfs/image_position.pdf +0 -0
  177. data/vendor/prawn-core/reference_pdfs/indentation.pdf +0 -124
  178. data/vendor/prawn-core/reference_pdfs/kerning.pdf +0 -0
  179. data/vendor/prawn-core/reference_pdfs/landscape_a4.pdf +0 -52
  180. data/vendor/prawn-core/reference_pdfs/landscape_legal.pdf +0 -52
  181. data/vendor/prawn-core/reference_pdfs/landscape_letter.pdf +0 -52
  182. data/vendor/prawn-core/reference_pdfs/lines.pdf +0 -116
  183. data/vendor/prawn-core/reference_pdfs/margin.pdf +0 -3850
  184. data/vendor/prawn-core/reference_pdfs/measurement_units.pdf +0 -4667
  185. data/vendor/prawn-core/reference_pdfs/metadata-info.pdf +0 -88
  186. data/vendor/prawn-core/reference_pdfs/multi-layout.pdf +0 -209
  187. data/vendor/prawn-core/reference_pdfs/page_with_numbering.pdf +0 -156
  188. data/vendor/prawn-core/reference_pdfs/png_types.pdf +0 -0
  189. data/vendor/prawn-core/reference_pdfs/portrait_a4.pdf +0 -52
  190. data/vendor/prawn-core/reference_pdfs/portrait_legal.pdf +0 -52
  191. data/vendor/prawn-core/reference_pdfs/portrait_letter.pdf +0 -52
  192. data/vendor/prawn-core/reference_pdfs/pretty_polygons.pdf +0 -122
  193. data/vendor/prawn-core/reference_pdfs/remote_images.pdf +0 -0
  194. data/vendor/prawn-core/reference_pdfs/ruport.pdf +0 -101
  195. data/vendor/prawn-core/reference_pdfs/russian_boxes.pdf +0 -2780
  196. data/vendor/prawn-core/reference_pdfs/simple_text.pdf +0 -136
  197. data/vendor/prawn-core/reference_pdfs/simple_text_ttf.pdf +0 -0
  198. data/vendor/prawn-core/reference_pdfs/sjis.pdf +0 -0
  199. data/vendor/prawn-core/reference_pdfs/span.pdf +0 -1975
  200. data/vendor/prawn-core/reference_pdfs/stamp.pdf +0 -696
  201. data/vendor/prawn-core/reference_pdfs/stretched_nesting.pdf +0 -200
  202. data/vendor/prawn-core/reference_pdfs/stroke_bounds.pdf +0 -135
  203. data/vendor/prawn-core/reference_pdfs/stroke_cap_and_join.pdf +0 -80
  204. data/vendor/prawn-core/reference_pdfs/stroke_dash.pdf +0 -457
  205. data/vendor/prawn-core/reference_pdfs/text_box.pdf +0 -315
  206. data/vendor/prawn-core/reference_pdfs/text_box_returning_excess.pdf +0 -271
  207. data/vendor/prawn-core/reference_pdfs/transparency.pdf +0 -347
  208. data/vendor/prawn-core/reference_pdfs/utf8.pdf +0 -0
  209. data/vendor/prawn-core/reference_pdfs/win-ansi.pdf +0 -6172
  210. data/vendor/prawn-core/spec/annotations_spec.rb +0 -90
  211. data/vendor/prawn-core/spec/bounding_box_spec.rb +0 -185
  212. data/vendor/prawn-core/spec/destinations_spec.rb +0 -15
  213. data/vendor/prawn-core/spec/document_spec.rb +0 -231
  214. data/vendor/prawn-core/spec/font_spec.rb +0 -273
  215. data/vendor/prawn-core/spec/graphics_spec.rb +0 -209
  216. data/vendor/prawn-core/spec/images_spec.rb +0 -79
  217. data/vendor/prawn-core/spec/jpg_spec.rb +0 -25
  218. data/vendor/prawn-core/spec/measurement_units_spec.rb +0 -23
  219. data/vendor/prawn-core/spec/name_tree_spec.rb +0 -112
  220. data/vendor/prawn-core/spec/object_store_spec.rb +0 -42
  221. data/vendor/prawn-core/spec/pdf_object_spec.rb +0 -122
  222. data/vendor/prawn-core/spec/png_spec.rb +0 -236
  223. data/vendor/prawn-core/spec/reference_spec.rb +0 -82
  224. data/vendor/prawn-core/spec/snapshot_spec.rb +0 -115
  225. data/vendor/prawn-core/spec/span_spec.rb +0 -45
  226. data/vendor/prawn-core/spec/spec_helper.rb +0 -20
  227. data/vendor/prawn-core/spec/stamp_spec.rb +0 -98
  228. data/vendor/prawn-core/spec/stroke_styles_spec.rb +0 -152
  229. data/vendor/prawn-core/spec/text_box_spec.rb +0 -109
  230. data/vendor/prawn-core/spec/text_spec.rb +0 -185
  231. data/vendor/prawn-core/spec/transparency_spec.rb +0 -61
  232. data/vendor/prawn-core/vendor/pdf-inspector/README +0 -18
  233. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector.rb +0 -26
  234. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/extgstate.rb +0 -18
  235. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/graphics.rb +0 -119
  236. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/page.rb +0 -25
  237. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/text.rb +0 -31
  238. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/xobject.rb +0 -19
  239. data/vendor/prawn-core/vendor/ttfunk/data/fonts/DejaVuSans.ttf +0 -0
  240. data/vendor/prawn-core/vendor/ttfunk/data/fonts/comicsans.ttf +0 -0
  241. data/vendor/prawn-core/vendor/ttfunk/example.rb +0 -45
  242. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk.rb +0 -102
  243. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/directory.rb +0 -17
  244. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/encoding/mac_roman.rb +0 -88
  245. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/encoding/windows_1252.rb +0 -69
  246. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/reader.rb +0 -44
  247. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/resource_file.rb +0 -78
  248. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset.rb +0 -18
  249. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/base.rb +0 -141
  250. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/mac_roman.rb +0 -46
  251. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/unicode.rb +0 -48
  252. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/unicode_8bit.rb +0 -63
  253. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/windows_1252.rb +0 -51
  254. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset_collection.rb +0 -72
  255. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table.rb +0 -46
  256. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap.rb +0 -34
  257. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/format00.rb +0 -54
  258. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/format04.rb +0 -126
  259. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/subtable.rb +0 -79
  260. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf.rb +0 -64
  261. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf/compound.rb +0 -81
  262. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf/simple.rb +0 -37
  263. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/head.rb +0 -44
  264. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/hhea.rb +0 -41
  265. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/hmtx.rb +0 -47
  266. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/kern.rb +0 -79
  267. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/kern/format0.rb +0 -62
  268. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/loca.rb +0 -43
  269. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/maxp.rb +0 -40
  270. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/name.rb +0 -119
  271. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/os2.rb +0 -78
  272. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post.rb +0 -91
  273. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format10.rb +0 -43
  274. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format20.rb +0 -35
  275. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format25.rb +0 -23
  276. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format30.rb +0 -17
  277. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format40.rb +0 -17
  278. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/simple.rb +0 -14
  279. data/vendor/prawn-core/www/index.html +0 -196
  280. data/vendor/prawn-core/www/media/bounding_boxes.pdf +0 -146
  281. data/vendor/prawn-core/www/media/bounding_boxes.png +0 -0
  282. data/vendor/prawn-core/www/media/bounding_boxes_out.png +0 -0
  283. data/vendor/prawn-core/www/media/fancy_table.pdf +0 -350
  284. data/vendor/prawn-core/www/media/image.pdf +0 -0
  285. data/vendor/prawn-core/www/media/images.png +0 -0
  286. data/vendor/prawn-core/www/media/prawn_logo.png +0 -0
  287. data/vendor/prawn-core/www/media/tables.png +0 -0
  288. data/vendor/prawn-core/www/media/utf8.pdf +0 -0
  289. data/vendor/prawn-core/www/media/utf8.png +0 -0
  290. data/vendor/prawn-core/www/prawn-Chinese.html +0 -113
  291. data/vendor/prawn-core/www/prawn.css +0 -86
  292. data/vendor/prawn-core/www/twilight.css +0 -266
@@ -1,85 +0,0 @@
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"
@@ -1,534 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # document.rb : Implements PDF document generation for Prawn
4
- #
5
- # Copyright April 2008, Gregory Brown. All Rights Reserved.
6
- #
7
- # This is free software. Please see the LICENSE and COPYING files for details.
8
-
9
- require "stringio"
10
- require "prawn/document/page_geometry"
11
- require "prawn/document/bounding_box"
12
- require "prawn/document/column_box"
13
- require "prawn/document/internals"
14
- require "prawn/document/span"
15
- require "prawn/document/text"
16
- require "prawn/document/annotations"
17
- require "prawn/document/destinations"
18
- require "prawn/document/snapshot"
19
-
20
- module Prawn
21
-
22
- # The Prawn::Document class is how you start creating a PDF document.
23
- #
24
- # There are three basic ways you can instantiate PDF Documents in Prawn, they
25
- # are through assignment, implicit block or explicit block. Below is an exmple
26
- # of each type, each example does exactly the same thing, makes a PDF document
27
- # with all the defaults and puts in the default font "Hello There" and then
28
- # saves it to the current directory as "example.pdf"
29
- #
30
- # For example, assignment can be like this:
31
- #
32
- # pdf = Prawn::Document.new
33
- # pdf.text "Hello There"
34
- # pdf.render_file "example.pdf"
35
- #
36
- # Or you can do an implied block form:
37
- #
38
- # Prawn::Document.generate "example.pdf" do
39
- # text "Hello There"
40
- # end
41
- #
42
- # Or if you need to access a variable outside the scope of the block, the
43
- # explicit block form:
44
- #
45
- # words = "Hello There"
46
- # Prawn::Document.generate "example.pdf" do |pdf|
47
- # pdf.text words
48
- # end
49
- #
50
- # Usually, the block forms are used when you are simply creating a PDF document
51
- # that you want to immediately save or render out.
52
- #
53
- # See the new and generate methods for further details on the above.
54
- #
55
- class Document
56
-
57
- include Text
58
- include PageGeometry
59
- include Internals
60
- include Annotations
61
- include Destinations
62
- include Snapshot
63
- include Prawn::Graphics
64
- include Prawn::Images
65
- include Prawn::Stamp
66
-
67
- attr_accessor :margin_box
68
- attr_reader :margins, :page_size, :page_layout, :y
69
- attr_writer :font_size
70
-
71
-
72
- def self.extensions
73
- @extensions ||= []
74
- end
75
-
76
- # Creates and renders a PDF document.
77
- #
78
- # When using the implicit block form, Prawn will evaluate the block
79
- # within an instance of Prawn::Document, simplifying your syntax.
80
- # However, please note that you will not be able to reference variables
81
- # from the enclosing scope within this block.
82
- #
83
- # # Using implicit block form and rendering to a file
84
- # Prawn::Document.generate "example.pdf" do
85
- # # self here is set to the newly instantiated Prawn::Document
86
- # # and so any variables in the outside scope are unavailable
87
- # font "Times-Roman"
88
- # text "Hello World", :at => [200,720], :size => 32
89
- # end
90
- #
91
- # If you need to access your local and instance variables, use the explicit
92
- # block form shown below. In this case, Prawn yields an instance of
93
- # PDF::Document and the block is an ordinary closure:
94
- #
95
- # # Using explicit block form and rendering to a file
96
- # content = "Hello World"
97
- # Prawn::Document.generate "example.pdf" do |pdf|
98
- # # self here is left alone
99
- # pdf.font "Times-Roman"
100
- # pdf.text content, :at => [200,720], :size => 32
101
- # end
102
- #
103
- def self.generate(filename,options={},&block)
104
- pdf = new(options,&block)
105
- pdf.render_file(filename)
106
- end
107
-
108
- # Creates a new PDF Document. The following options are available (with
109
- # the default values marked in [])
110
- #
111
- # <tt>:page_size</tt>:: One of the Document::PageGeometry sizes [LETTER]
112
- # <tt>:page_layout</tt>:: Either <tt>:portrait</tt> or <tt>:landscape</tt>
113
- # <tt>:margin</tt>:: Sets the margin on all sides in points [0.5 inch]
114
- # <tt>:left_margin</tt>:: Sets the left margin in points [0.5 inch]
115
- # <tt>:right_margin</tt>:: Sets the right margin in points [0.5 inch]
116
- # <tt>:top_margin</tt>:: Sets the top margin in points [0.5 inch]
117
- # <tt>:bottom_margin</tt>:: Sets the bottom margin in points [0.5 inch]
118
- # <tt>:skip_page_creation</tt>:: Creates a document without starting the first page [false]
119
- # <tt>:compress</tt>:: Compresses content streams before rendering them [false]
120
- # <tt>:background</tt>:: An image path to be used as background on all pages [nil]
121
- # <tt>:info</tt>:: Generic hash allowing for custom metadata properties [nil]
122
- # <tt>:text_options</tt>:: A set of default options to be handed to text(). Be careful with this.
123
- #
124
- # Setting e.g. the :margin to 100 points and the :left_margin to 50 will result in margins
125
- # of 100 points on every side except for the left, where it will be 50.
126
- #
127
- # The :margin can also be an array much like CSS shorthand:
128
- #
129
- # # Top and bottom are 20, left and right are 100.
130
- # :margin => [20, 100]
131
- # # Top is 50, left and right are 100, bottom is 20.
132
- # :margin => [50, 100, 20]
133
- # # Top is 10, right is 20, bottom is 30, left is 40.
134
- # :margin => [10, 20, 30, 40]
135
- #
136
- # Additionally, :page_size can be specified as a simple two value array giving
137
- # the width and height of the document you need in PDF Points.
138
- #
139
- # Usage:
140
- #
141
- # # New document, US Letter paper, portrait orientation
142
- # pdf = Prawn::Document.new
143
- #
144
- # # New document, A4 paper, landscaped
145
- # pdf = Prawn::Document.new(:page_size => "A4", :page_layout => :landscape)
146
- #
147
- # # New document, Custom size
148
- # pdf = Prawn::Document.new(:page_size => [200, 300])
149
- #
150
- # # New document, with background
151
- # pdf = Prawn::Document.new(:background => "#{Prawn::BASEDIR}/data/images/pigs.jpg")
152
- #
153
- def initialize(options={},&block)
154
- Prawn.verify_options [:page_size, :page_layout, :margin, :left_margin,
155
- :right_margin, :top_margin, :bottom_margin, :skip_page_creation,
156
- :compress, :skip_encoding, :text_options, :background, :info], options
157
-
158
- self.class.extensions.reverse_each { |e| extend e }
159
-
160
- options[:info] ||= {}
161
- options[:info][:Creator] ||= "Prawn"
162
- options[:info][:Producer] = "Prawn"
163
-
164
- options[:info].keys.each do |key|
165
- if options[:info][key].kind_of?(String)
166
- options[:info][key] = Prawn::LiteralString.new(options[:info][key])
167
- end
168
- end
169
-
170
- @version = 1.3
171
- @store = ObjectStore.new(options[:info])
172
- @trailer = {}
173
-
174
- @page_size = options[:page_size] || "LETTER"
175
- @page_layout = options[:page_layout] || :portrait
176
- @compress = options[:compress] || false
177
- @skip_encoding = options[:skip_encoding]
178
- @background = options[:background]
179
- @font_size = 12
180
- @page_content = nil
181
- @bounding_box = nil
182
- @margin_box = nil
183
-
184
- @text_options = options[:text_options] || {}
185
-
186
- apply_margin_option(options) if options[:margin]
187
-
188
- default_margin = 36 # 0.5 inch
189
- @margins = { :left => options[:left_margin] || default_margin,
190
- :right => options[:right_margin] || default_margin,
191
- :top => options[:top_margin] || default_margin,
192
- :bottom => options[:bottom_margin] || default_margin }
193
-
194
- generate_margin_box
195
-
196
- @bounding_box = @margin_box
197
-
198
- start_new_page unless options[:skip_page_creation]
199
-
200
- if block
201
- block.arity < 1 ? instance_eval(&block) : block[self]
202
- end
203
- end
204
-
205
- # Creates and advances to a new page in the document.
206
- #
207
- # Page size, margins, and layout can also be set when generating a
208
- # new page. These values will become the new defaults for page creation
209
- #
210
- # pdf.start_new_page #=> Starts new page keeping current values
211
- # pdf.start_new_page(:size => "LEGAL", :layout => :landscape)
212
- # pdf.start_new_page(:left_margin => 50, :right_margin => 50)
213
- # pdf.start_new_page(:margin => 100)
214
- #
215
- def start_new_page(options = {})
216
- @page_size = options[:size] if options[:size]
217
- @page_layout = options[:layout] if options[:layout]
218
-
219
- apply_margin_option(options) if options[:margin]
220
-
221
- [:left,:right,:top,:bottom].each do |side|
222
- if margin = options[:"#{side}_margin"]
223
- @margins[side] = margin
224
- end
225
- end
226
-
227
- finish_page_content if @page_content
228
- build_new_page_content
229
-
230
- @store.pages.data[:Kids] << current_page
231
- @store.pages.data[:Count] += 1
232
-
233
- add_content "q"
234
-
235
- @y = @bounding_box.absolute_top
236
-
237
- image(@background, :at => [0,@y]) if @background
238
- end
239
-
240
- # Returns the number of pages in the document
241
- #
242
- # pdf = Prawn::Document.new
243
- # pdf.page_count #=> 1
244
- # 3.times { pdf.start_new_page }
245
- # pdf.page_count #=> 4
246
- #
247
- def page_count
248
- @store.pages.data[:Count]
249
- end
250
-
251
- def y=(new_y)
252
- @y = new_y
253
- bounds.update_height
254
- end
255
-
256
- # The current y drawing position relative to the innermost bounding box,
257
- # or to the page margins at the top level.
258
- #
259
- def cursor
260
- y - bounds.absolute_bottom
261
- end
262
-
263
-
264
- # Moves to the specified y position in relative terms to the bottom margin.
265
- #
266
- def move_cursor_to(new_y)
267
- self.y = new_y + bounds.absolute_bottom
268
- end
269
-
270
- # Renders the PDF document to string, useful for example in a Rails
271
- # application where you want to stream out the PDF to a web browser:
272
- #
273
- # def show
274
- # pdf = Prawn::Document.new do
275
- # text "Putting PDF generation code in a controller is _BAD_"
276
- # end
277
- # send(pdf.render, :filename => 'silly.pdf', :type => 'application/pdf', :disposition => 'inline)
278
- # end
279
- #
280
- def render
281
- output = StringIO.new
282
- finish_page_content
283
-
284
- render_header(output)
285
- render_body(output)
286
- render_xref(output)
287
- render_trailer(output)
288
- str = output.string
289
- str.force_encoding("ASCII-8BIT") if str.respond_to?(:force_encoding)
290
- str
291
- end
292
-
293
- # Renders the PDF document to file.
294
- #
295
- # pdf.render_file "foo.pdf"
296
- #
297
- def render_file(filename)
298
- Kernel.const_defined?("Encoding") ? mode = "wb:ASCII-8BIT" : mode = "wb"
299
- File.open(filename,mode) { |f| f << render }
300
- end
301
-
302
- # The bounds method returns the current bounding box you are currently in,
303
- # which is by default the box represented by the margin box on the
304
- # document itself. When called from within a created <tt>bounding_box</tt>
305
- # block, the box defined by that call will be returned instead of the
306
- # document margin box.
307
- #
308
- # Another important point about bounding boxes is that all x and y measurements
309
- # within a bounding box code block are relative to the bottom left corner of the
310
- # bounding box.
311
- #
312
- # For example:
313
- #
314
- # Prawn::Document.new do
315
- # # In the default "margin box" of a Prawn document of 0.5in along each edge
316
- #
317
- # # Draw a border around the page (the manual way)
318
- # stroke do
319
- # line(bounds.bottom_left, bounds.bottom_right)
320
- # line(bounds.bottom_right, bounds.top_right)
321
- # line(bounds.top_right, bounds.top_left)
322
- # line(bounds.top_left, bounds.bottom_left)
323
- # end
324
- #
325
- # # Draw a border around the page (the easy way)
326
- # stroke_bounds
327
- # end
328
- #
329
- def bounds
330
- @bounding_box
331
- end
332
-
333
- # Sets Document#bounds to the BoundingBox provided. See above for a brief
334
- # description of what a bounding box is. This function is useful if you
335
- # really need to change the bounding box manually, but usually, just entering
336
- # and existing bounding box code blocks is good enough.
337
- #
338
- def bounds=(bounding_box)
339
- @bounding_box = bounding_box
340
- end
341
-
342
- # Moves up the document by n points relative to the current position inside
343
- # the current bounding box.
344
- #
345
- def move_up(n)
346
- self.y += n
347
- end
348
-
349
- # Moves down the document by n points relative to the current position inside
350
- # the current bounding box.
351
- #
352
- def move_down(n)
353
- self.y -= n
354
- end
355
-
356
- # Moves down the document and then executes a block.
357
- #
358
- # pdf.text "some text"
359
- # pdf.pad_top(100) do
360
- # pdf.text "This is 100 points below the previous line of text"
361
- # end
362
- # pdf.text "This text appears right below the previous line of text"
363
- #
364
- def pad_top(y)
365
- move_down(y)
366
- yield
367
- end
368
-
369
- # Executes a block then moves down the document
370
- #
371
- # pdf.text "some text"
372
- # pdf.pad_bottom(100) do
373
- # pdf.text "This text appears right below the previous line of text"
374
- # end
375
- # pdf.text "This is 100 points below the previous line of text"
376
- #
377
- def pad_bottom(y)
378
- yield
379
- move_down(y)
380
- end
381
-
382
- # Moves down the document by y, executes a block, then moves down the
383
- # document by y again.
384
- #
385
- # pdf.text "some text"
386
- # pdf.pad(100) do
387
- # pdf.text "This is 100 points below the previous line of text"
388
- # end
389
- # pdf.text "This is 100 points below the previous line of text"
390
- #
391
- def pad(y)
392
- move_down(y)
393
- yield
394
- move_down(y)
395
- end
396
-
397
-
398
- # Indents the specified number of PDF points for the duration of the block
399
- #
400
- # pdf.text "some text"
401
- # pdf.indent(20) do
402
- # pdf.text "This is indented 20 points"
403
- # end
404
- # pdf.text "This starts 20 points left of the above line " +
405
- # "and is flush with the first line"
406
- #
407
- def indent(x, &block)
408
- bounds.indent(x, &block)
409
- end
410
-
411
-
412
- def mask(*fields) # :nodoc:
413
- # Stores the current state of the named attributes, executes the block, and
414
- # then restores the original values after the block has executed.
415
- # -- I will remove the nodoc if/when this feature is a little less hacky
416
- stored = {}
417
- fields.each { |f| stored[f] = send(f) }
418
- yield
419
- fields.each { |f| send("#{f}=", stored[f]) }
420
- end
421
-
422
- # Raised if group() is called with a block that is too big to be
423
- # rendered in the current context.
424
- #
425
- CannotGroup = Class.new(StandardError)
426
-
427
- # Attempts to group the given block vertically within the current context.
428
- # First attempts to render it in the current position on the current page.
429
- # If that attempt overflows, it is tried anew after starting a new context
430
- # (page or column).
431
- #
432
- # Raises CannotGroup if the provided content is too large to fit alone in
433
- # the current page or column.
434
- #
435
- def group(second_attempt=false)
436
- old_bounding_box = @bounding_box
437
- @bounding_box = SimpleDelegator.new(@bounding_box)
438
-
439
- def @bounding_box.move_past_bottom
440
- raise RollbackTransaction
441
- end
442
-
443
- success = transaction { yield }
444
-
445
- unless success
446
- raise CannotGroup if second_attempt
447
- old_bounding_box.move_past_bottom
448
- group(second_attempt=true) { yield }
449
- end
450
-
451
- @bounding_box = old_bounding_box
452
- end
453
-
454
- # Specify a template for page numbering. This should be called
455
- # towards the end of document creation, after all your content is already in
456
- # place. In your template string, <page> refers to the current page, and
457
- # <total> refers to the total amount of pages in the doucment.
458
- #
459
- # Example:
460
- #
461
- # Prawn::Document.generate("page_with_numbering.pdf") do
462
- # text "Hai"
463
- # start_new_page
464
- # text "bai"
465
- # start_new_page
466
- # text "-- Hai again"
467
- # number_pages "<page> in a total of <total>", [bounds.right - 50, 0]
468
- # end
469
- def number_pages(string, position)
470
- page_count.times do |i|
471
- go_to_page(i)
472
- str = string.gsub("<page>","#{i+1}").gsub("<total>","#{page_count}")
473
- text str, :at => position
474
- end
475
- end
476
-
477
- def go_to_page(k) # :nodoc:
478
- jump_to = @store.pages.data[:Kids][k]
479
- @current_page = jump_to.identifier
480
- @page_content = jump_to.data[:Contents].identifier
481
- end
482
-
483
- # Returns true if content streams will be compressed before rendering,
484
- # false otherwise
485
- #
486
- def compression_enabled?
487
- !!@compress
488
- end
489
-
490
- private
491
-
492
- # See Prawn::Document::Internals for low-level PDF functions
493
-
494
- def build_new_page_content
495
- generate_margin_box
496
- @page_content = ref(:Length => 0)
497
-
498
- @current_page = ref(:Type => :Page,
499
- :Parent => @store.pages,
500
- :MediaBox => page_dimensions,
501
- :Contents => page_content)
502
- update_colors
503
- undash if dashed?
504
- end
505
-
506
- def generate_margin_box
507
- old_margin_box = @margin_box
508
- @margin_box = BoundingBox.new(
509
- self,
510
- [ @margins[:left], page_dimensions[-1] - @margins[:top] ] ,
511
- :width => page_dimensions[-2] - (@margins[:left] + @margins[:right]),
512
- :height => page_dimensions[-1] - (@margins[:top] + @margins[:bottom])
513
- )
514
-
515
- # we must update bounding box if not flowing from the previous page
516
- #
517
- # FIXME: This may have a bug where the old margin is restored
518
- # when the bounding box exits.
519
- @bounding_box = @margin_box if old_margin_box == @bounding_box
520
- end
521
-
522
- def apply_margin_option(options)
523
- # Treat :margin as CSS shorthand with 1-4 values.
524
- margin = Array(options[:margin])
525
- positions = { 4 => [0,1,2,3], 3 => [0,1,2,1],
526
- 2 => [0,1,0,1], 1 => [0,0,0,0] }[margin.length]
527
-
528
- [:top, :right, :bottom, :left].zip(positions).each do |p,i|
529
- options[:"#{p}_margin"] ||= margin[i]
530
- end
531
- end
532
-
533
- end
534
- end