prawn 0.4.1 → 0.5.0.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 (179) hide show
  1. data/lib/prawn.rb +2 -72
  2. metadata +33 -224
  3. data/COPYING +0 -340
  4. data/LICENSE +0 -56
  5. data/README +0 -40
  6. data/Rakefile +0 -79
  7. data/data/encodings/win_ansi.txt +0 -29
  8. data/data/fonts/Action Man.dfont +0 -0
  9. data/data/fonts/Activa.ttf +0 -0
  10. data/data/fonts/Chalkboard.ttf +0 -0
  11. data/data/fonts/Courier-Bold.afm +0 -342
  12. data/data/fonts/Courier-BoldOblique.afm +0 -342
  13. data/data/fonts/Courier-Oblique.afm +0 -342
  14. data/data/fonts/Courier.afm +0 -342
  15. data/data/fonts/DejaVuSans.ttf +0 -0
  16. data/data/fonts/Dustismo_Roman.ttf +0 -0
  17. data/data/fonts/Helvetica-Bold.afm +0 -2827
  18. data/data/fonts/Helvetica-BoldOblique.afm +0 -2827
  19. data/data/fonts/Helvetica-Oblique.afm +0 -3051
  20. data/data/fonts/Helvetica.afm +0 -3051
  21. data/data/fonts/MustRead.html +0 -19
  22. data/data/fonts/Symbol.afm +0 -213
  23. data/data/fonts/Times-Bold.afm +0 -2588
  24. data/data/fonts/Times-BoldItalic.afm +0 -2384
  25. data/data/fonts/Times-Italic.afm +0 -2667
  26. data/data/fonts/Times-Roman.afm +0 -2419
  27. data/data/fonts/ZapfDingbats.afm +0 -225
  28. data/data/fonts/comicsans.ttf +0 -0
  29. data/data/fonts/gkai00mp.ttf +0 -0
  30. data/data/images/arrow.png +0 -0
  31. data/data/images/arrow2.png +0 -0
  32. data/data/images/barcode_issue.png +0 -0
  33. data/data/images/dice.alpha +0 -0
  34. data/data/images/dice.dat +0 -0
  35. data/data/images/dice.png +0 -0
  36. data/data/images/fractal.jpg +0 -0
  37. data/data/images/letterhead.jpg +0 -0
  38. data/data/images/page_white_text.alpha +0 -0
  39. data/data/images/page_white_text.dat +0 -0
  40. data/data/images/page_white_text.png +0 -0
  41. data/data/images/pigs.jpg +0 -0
  42. data/data/images/rails.dat +0 -0
  43. data/data/images/rails.png +0 -0
  44. data/data/images/ruport.png +0 -0
  45. data/data/images/ruport_data.dat +0 -0
  46. data/data/images/ruport_transparent.png +0 -0
  47. data/data/images/ruport_type0.png +0 -0
  48. data/data/images/stef.jpg +0 -0
  49. data/data/images/web-links.dat +0 -1
  50. data/data/images/web-links.png +0 -0
  51. data/data/shift_jis_text.txt +0 -1
  52. data/examples/bounding_box/bounding_boxes.rb +0 -44
  53. data/examples/bounding_box/lazy_bounding_boxes.rb +0 -28
  54. data/examples/bounding_box/padded_box.rb +0 -24
  55. data/examples/bounding_box/russian_boxes.rb +0 -37
  56. data/examples/general/background.rb +0 -20
  57. data/examples/general/canvas.rb +0 -16
  58. data/examples/general/measurement_units.rb +0 -52
  59. data/examples/general/multi_page_layout.rb +0 -17
  60. data/examples/general/page_geometry.rb +0 -32
  61. data/examples/graphics/basic_images.rb +0 -27
  62. data/examples/graphics/cmyk.rb +0 -13
  63. data/examples/graphics/curves.rb +0 -12
  64. data/examples/graphics/hexagon.rb +0 -14
  65. data/examples/graphics/image_fit.rb +0 -16
  66. data/examples/graphics/image_flow.rb +0 -38
  67. data/examples/graphics/image_position.rb +0 -18
  68. data/examples/graphics/line.rb +0 -33
  69. data/examples/graphics/png_types.rb +0 -23
  70. data/examples/graphics/polygons.rb +0 -17
  71. data/examples/graphics/remote_images.rb +0 -12
  72. data/examples/graphics/ruport_style_helpers.rb +0 -20
  73. data/examples/graphics/stroke_bounds.rb +0 -23
  74. data/examples/m17n/chinese_text_wrapping.rb +0 -20
  75. data/examples/m17n/euro.rb +0 -16
  76. data/examples/m17n/sjis.rb +0 -29
  77. data/examples/m17n/utf8.rb +0 -14
  78. data/examples/m17n/win_ansi_charset.rb +0 -55
  79. data/examples/text/alignment.rb +0 -19
  80. data/examples/text/dfont.rb +0 -49
  81. data/examples/text/family_based_styling.rb +0 -25
  82. data/examples/text/flowing_text_with_header_and_footer.rb +0 -37
  83. data/examples/text/font_calculations.rb +0 -92
  84. data/examples/text/font_size.rb +0 -34
  85. data/examples/text/kerning.rb +0 -31
  86. data/examples/text/simple_text.rb +0 -18
  87. data/examples/text/simple_text_ttf.rb +0 -18
  88. data/examples/text/span.rb +0 -30
  89. data/examples/text/text_box.rb +0 -26
  90. data/examples/text/text_flow.rb +0 -68
  91. data/lib/prawn/compatibility.rb +0 -38
  92. data/lib/prawn/document.rb +0 -309
  93. data/lib/prawn/document/annotations.rb +0 -63
  94. data/lib/prawn/document/bounding_box.rb +0 -368
  95. data/lib/prawn/document/destinations.rb +0 -81
  96. data/lib/prawn/document/internals.rb +0 -126
  97. data/lib/prawn/document/page_geometry.rb +0 -79
  98. data/lib/prawn/document/span.rb +0 -55
  99. data/lib/prawn/document/text.rb +0 -185
  100. data/lib/prawn/document/text/box.rb +0 -76
  101. data/lib/prawn/document/text/wrapping.rb +0 -59
  102. data/lib/prawn/encoding.rb +0 -121
  103. data/lib/prawn/errors.rb +0 -40
  104. data/lib/prawn/font.rb +0 -277
  105. data/lib/prawn/font/afm.rb +0 -202
  106. data/lib/prawn/font/dfont.rb +0 -31
  107. data/lib/prawn/font/ttf.rb +0 -326
  108. data/lib/prawn/graphics.rb +0 -257
  109. data/lib/prawn/graphics/color.rb +0 -140
  110. data/lib/prawn/images.rb +0 -339
  111. data/lib/prawn/images/jpg.rb +0 -45
  112. data/lib/prawn/images/png.rb +0 -199
  113. data/lib/prawn/literal_string.rb +0 -14
  114. data/lib/prawn/measurement_extensions.rb +0 -46
  115. data/lib/prawn/measurements.rb +0 -71
  116. data/lib/prawn/name_tree.rb +0 -165
  117. data/lib/prawn/pdf_object.rb +0 -73
  118. data/lib/prawn/reference.rb +0 -59
  119. data/spec/annotations_spec.rb +0 -90
  120. data/spec/bounding_box_spec.rb +0 -141
  121. data/spec/destinations_spec.rb +0 -15
  122. data/spec/document_spec.rb +0 -193
  123. data/spec/font_spec.rb +0 -234
  124. data/spec/graphics_spec.rb +0 -209
  125. data/spec/images_spec.rb +0 -68
  126. data/spec/jpg_spec.rb +0 -25
  127. data/spec/measurement_units_spec.rb +0 -23
  128. data/spec/name_tree_spec.rb +0 -103
  129. data/spec/pdf_object_spec.rb +0 -112
  130. data/spec/png_spec.rb +0 -196
  131. data/spec/reference_spec.rb +0 -42
  132. data/spec/spec_helper.rb +0 -23
  133. data/spec/text_spec.rb +0 -178
  134. data/vendor/pdf-inspector/README +0 -18
  135. data/vendor/pdf-inspector/lib/pdf/inspector.rb +0 -25
  136. data/vendor/pdf-inspector/lib/pdf/inspector/graphics.rb +0 -80
  137. data/vendor/pdf-inspector/lib/pdf/inspector/page.rb +0 -16
  138. data/vendor/pdf-inspector/lib/pdf/inspector/text.rb +0 -31
  139. data/vendor/pdf-inspector/lib/pdf/inspector/xobject.rb +0 -19
  140. data/vendor/ttfunk/data/fonts/DejaVuSans.ttf +0 -0
  141. data/vendor/ttfunk/data/fonts/comicsans.ttf +0 -0
  142. data/vendor/ttfunk/example.rb +0 -45
  143. data/vendor/ttfunk/lib/ttfunk.rb +0 -102
  144. data/vendor/ttfunk/lib/ttfunk/directory.rb +0 -17
  145. data/vendor/ttfunk/lib/ttfunk/encoding/mac_roman.rb +0 -88
  146. data/vendor/ttfunk/lib/ttfunk/encoding/windows_1252.rb +0 -69
  147. data/vendor/ttfunk/lib/ttfunk/reader.rb +0 -44
  148. data/vendor/ttfunk/lib/ttfunk/resource_file.rb +0 -78
  149. data/vendor/ttfunk/lib/ttfunk/subset.rb +0 -18
  150. data/vendor/ttfunk/lib/ttfunk/subset/base.rb +0 -141
  151. data/vendor/ttfunk/lib/ttfunk/subset/mac_roman.rb +0 -46
  152. data/vendor/ttfunk/lib/ttfunk/subset/unicode.rb +0 -48
  153. data/vendor/ttfunk/lib/ttfunk/subset/unicode_8bit.rb +0 -63
  154. data/vendor/ttfunk/lib/ttfunk/subset/windows_1252.rb +0 -51
  155. data/vendor/ttfunk/lib/ttfunk/subset_collection.rb +0 -72
  156. data/vendor/ttfunk/lib/ttfunk/table.rb +0 -46
  157. data/vendor/ttfunk/lib/ttfunk/table/cmap.rb +0 -34
  158. data/vendor/ttfunk/lib/ttfunk/table/cmap/format00.rb +0 -54
  159. data/vendor/ttfunk/lib/ttfunk/table/cmap/format04.rb +0 -126
  160. data/vendor/ttfunk/lib/ttfunk/table/cmap/subtable.rb +0 -79
  161. data/vendor/ttfunk/lib/ttfunk/table/glyf.rb +0 -64
  162. data/vendor/ttfunk/lib/ttfunk/table/glyf/compound.rb +0 -81
  163. data/vendor/ttfunk/lib/ttfunk/table/glyf/simple.rb +0 -37
  164. data/vendor/ttfunk/lib/ttfunk/table/head.rb +0 -44
  165. data/vendor/ttfunk/lib/ttfunk/table/hhea.rb +0 -41
  166. data/vendor/ttfunk/lib/ttfunk/table/hmtx.rb +0 -47
  167. data/vendor/ttfunk/lib/ttfunk/table/kern.rb +0 -79
  168. data/vendor/ttfunk/lib/ttfunk/table/kern/format0.rb +0 -62
  169. data/vendor/ttfunk/lib/ttfunk/table/loca.rb +0 -43
  170. data/vendor/ttfunk/lib/ttfunk/table/maxp.rb +0 -40
  171. data/vendor/ttfunk/lib/ttfunk/table/name.rb +0 -119
  172. data/vendor/ttfunk/lib/ttfunk/table/os2.rb +0 -78
  173. data/vendor/ttfunk/lib/ttfunk/table/post.rb +0 -91
  174. data/vendor/ttfunk/lib/ttfunk/table/post/format10.rb +0 -43
  175. data/vendor/ttfunk/lib/ttfunk/table/post/format20.rb +0 -35
  176. data/vendor/ttfunk/lib/ttfunk/table/post/format25.rb +0 -23
  177. data/vendor/ttfunk/lib/ttfunk/table/post/format30.rb +0 -17
  178. data/vendor/ttfunk/lib/ttfunk/table/post/format40.rb +0 -17
  179. data/vendor/ttfunk/lib/ttfunk/table/simple.rb +0 -14
@@ -1,78 +0,0 @@
1
- require 'ttfunk/table'
2
-
3
- module TTFunk
4
- class Table
5
- class OS2 < Table
6
- attr_reader :version
7
-
8
- attr_reader :ave_char_width
9
- attr_reader :weight_class
10
- attr_reader :width_class
11
- attr_reader :type
12
- attr_reader :y_subscript_x_size
13
- attr_reader :y_subscript_y_size
14
- attr_reader :y_subscript_x_offset
15
- attr_reader :y_subscript_y_offset
16
- attr_reader :y_superscript_x_size
17
- attr_reader :y_superscript_y_size
18
- attr_reader :y_superscript_x_offset
19
- attr_reader :y_superscript_y_offset
20
- attr_reader :y_strikeout_size
21
- attr_reader :y_strikeout_position
22
- attr_reader :family_class
23
- attr_reader :panose
24
- attr_reader :char_range
25
- attr_reader :vendor_id
26
- attr_reader :selection
27
- attr_reader :first_char_index
28
- attr_reader :last_char_index
29
-
30
- attr_reader :ascent
31
- attr_reader :descent
32
- attr_reader :line_gap
33
- attr_reader :win_ascent
34
- attr_reader :win_descent
35
- attr_reader :code_page_range
36
-
37
- attr_reader :x_height
38
- attr_reader :cap_height
39
- attr_reader :default_char
40
- attr_reader :break_char
41
- attr_reader :max_context
42
-
43
- def tag
44
- "OS/2"
45
- end
46
-
47
- private
48
-
49
- def parse!
50
- @version = read(2, "n").first
51
-
52
- @ave_char_width = read_signed(1)
53
- @weight_class, @width_class = read(4, "nn")
54
- @type, @y_subscript_x_size, @y_subscript_y_size, @y_subscript_x_offset,
55
- @y_subscript_y_offset, @y_superscript_x_size, @y_superscript_y_size,
56
- @y_superscript_x_offset, @y_superscript_y_offset, @y_strikeout_size,
57
- @y_strikeout_position, @family_class = read_signed(12)
58
- @panose = io.read(10)
59
-
60
- @char_range = io.read(16)
61
- @vendor_id = io.read(4)
62
-
63
- @selection, @first_char_index, @last_char_index = read(6, "n*")
64
-
65
- if @version > 0
66
- @ascent, @descent, @line_gap = read_signed(3)
67
- @win_ascent, @win_descent = read(4, "nn")
68
- @code_page_range = io.read(8)
69
-
70
- if @version > 1
71
- @x_height, @cap_height = read_signed(2)
72
- @default_char, @break_char, @max_context = read(6, "nnn")
73
- end
74
- end
75
- end
76
- end
77
- end
78
- end
@@ -1,91 +0,0 @@
1
- require 'ttfunk/table'
2
-
3
- module TTFunk
4
- class Table
5
- class Post < Table
6
- attr_reader :format
7
- attr_reader :italic_angle
8
- attr_reader :underline_position
9
- attr_reader :underline_thickness
10
- attr_reader :fixed_pitch
11
- attr_reader :min_mem_type42
12
- attr_reader :max_mem_type42
13
- attr_reader :min_mem_type1
14
- attr_reader :max_mem_type1
15
-
16
- attr_reader :subtable
17
-
18
- def self.encode(post, mapping)
19
- return nil unless post.exists?
20
- post.recode(mapping)
21
- end
22
-
23
- def fixed_pitch?
24
- @fixed_pitch != 0
25
- end
26
-
27
- def glyph_for(code)
28
- ".notdef"
29
- end
30
-
31
- def recode(mapping)
32
- return raw if format == 0x00030000
33
-
34
- table = raw[0,32]
35
- table[0,4] = [0x00020000].pack("N")
36
-
37
- index = []
38
- strings = []
39
-
40
- mapping.keys.sort.each do |new_id|
41
- post_glyph = glyph_for(mapping[new_id])
42
- position = Format10::POSTSCRIPT_GLYPHS.index(post_glyph)
43
- if position
44
- index << position
45
- else
46
- index << 257 + strings.length
47
- strings << post_glyph
48
- end
49
- end
50
-
51
- table << [mapping.length, *index].pack("n*")
52
- strings.each do |string|
53
- table << [string.length, string].pack("CA*")
54
- end
55
-
56
- return table
57
- end
58
-
59
- private
60
-
61
- def parse!
62
- @format, @italic_angle, @underline_position, @underline_thickness,
63
- @fixed_pitch, @min_mem_type42, @max_mem_type42,
64
- @min_mem_type1, @max_mem_type1 = read(32, "N2n2N*")
65
-
66
- end_of_table = offset + length
67
-
68
- @subtable = case @format
69
- when 0x00010000 then extend(Post::Format10)
70
- when 0x00020000 then extend(Post::Format20)
71
- when 0x00025000 then extend(Post::Format25)
72
- when 0x00030000 then extend(Post::Format30)
73
- when 0x00040000 then extend(Post::Format40)
74
- end
75
-
76
- parse_format!
77
- end
78
-
79
- def parse_format!
80
- warn "postscript table format 0x%08X is not supported" % @format
81
- end
82
- end
83
-
84
- end
85
- end
86
-
87
- require 'ttfunk/table/post/format10'
88
- require 'ttfunk/table/post/format20'
89
- require 'ttfunk/table/post/format25'
90
- require 'ttfunk/table/post/format30'
91
- require 'ttfunk/table/post/format40'
@@ -1,43 +0,0 @@
1
- module TTFunk
2
- class Table
3
- class Post
4
- module Format10
5
- POSTSCRIPT_GLYPHS = %w(
6
- .notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent
7
- ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash
8
- zero one two three four five six seven eight nine colon semicolon less equal greater
9
- question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
10
- bracketleft backslash bracketright asciicircum underscore grave
11
- a b c d e f g h i j k l m n o p q r s t u v w x y z
12
- braceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis
13
- Udieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave
14
- ecircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve
15
- ocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent
16
- sterling section bullet paragraph germandbls registered copyright trademark acute
17
- dieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu
18
- partialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash
19
- questiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft
20
- guillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash
21
- quotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis
22
- fraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered
23
- quotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis
24
- Egrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute
25
- Ucircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla
26
- hungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth
27
- eth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior
28
- onehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla
29
- Cacute cacute Ccaron ccaron dcroat)
30
-
31
- def glyph_for(code)
32
- POSTSCRIPT_GLYPHS[code] || ".notdef"
33
- end
34
-
35
- private
36
-
37
- def parse_format!
38
- # do nothing. Format 1 is easy-sauce.
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,35 +0,0 @@
1
- require 'ttfunk/table/post/format10'
2
- require 'stringio'
3
-
4
- module TTFunk
5
- class Table
6
- class Post
7
- module Format20
8
- include Format10
9
-
10
- def glyph_for(code)
11
- index = @glyph_name_index[code]
12
- if index <= 257
13
- POSTSCRIPT_GLYPHS[index]
14
- else
15
- @names[index - 258] || ".notdef"
16
- end
17
- end
18
-
19
- private
20
-
21
- def parse_format!
22
- number_of_glyphs = read(2, 'n').first
23
- @glyph_name_index = read(number_of_glyphs*2, 'n*')
24
- @names = []
25
-
26
- strings = StringIO.new(io.read(offset + length - io.pos))
27
- while !strings.eof?
28
- length = strings.read(1).unpack("C").first
29
- @names << strings.read(length)
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,23 +0,0 @@
1
- require 'ttfunk/table/post/format10'
2
- require 'stringio'
3
-
4
- module TTFunk
5
- class Table
6
- class Post
7
- module Format25
8
- include Format10
9
-
10
- def glyph_for(code)
11
- POSTSCRIPT_GLYPHS[code + @offsets[code]] || ".notdef"
12
- end
13
-
14
- private
15
-
16
- def parse_format!
17
- number_of_glyphs = read(2, 'n').first
18
- @offsets = read(@number_of_glyphs, "c*")
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,17 +0,0 @@
1
- module TTFunk
2
- class Table
3
- class Post
4
- module Format30
5
- def glyph_for(code)
6
- ".notdef"
7
- end
8
-
9
- private
10
-
11
- def parse_format!
12
- # do nothing. Format 3 is easy-sauce.
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- module TTFunk
2
- class Table
3
- class Post
4
- module Format40
5
- def glyph_for(code)
6
- @map[code] || 0xFFFF
7
- end
8
-
9
- private
10
-
11
- def parse_format!
12
- @map = read(file.maximum_profile.num_glyphs * 2, "N*")
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,14 +0,0 @@
1
- require 'ttfunk/table'
2
-
3
- module TTFunk
4
- class Table
5
- class Simple < Table
6
- attr_reader :tag
7
-
8
- def initialize(file, tag)
9
- @tag = tag
10
- super(file)
11
- end
12
- end
13
- end
14
- end