gamba 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +80 -0
  3. data/COPYING +2 -0
  4. data/GPLv2 +339 -0
  5. data/GPLv3 +674 -0
  6. data/LICENSE +65 -0
  7. data/LICENSE-prawn-svg +21 -0
  8. data/README.md +148 -0
  9. data/data/fonts/Courier-Bold.afm +342 -0
  10. data/data/fonts/Courier-BoldOblique.afm +342 -0
  11. data/data/fonts/Courier-Oblique.afm +342 -0
  12. data/data/fonts/Courier.afm +342 -0
  13. data/data/fonts/Helvetica-Bold.afm +2827 -0
  14. data/data/fonts/Helvetica-BoldOblique.afm +2827 -0
  15. data/data/fonts/Helvetica-Oblique.afm +3051 -0
  16. data/data/fonts/Helvetica.afm +3051 -0
  17. data/data/fonts/MustRead.html +19 -0
  18. data/data/fonts/Symbol.afm +213 -0
  19. data/data/fonts/Times-Bold.afm +2588 -0
  20. data/data/fonts/Times-BoldItalic.afm +2384 -0
  21. data/data/fonts/Times-Italic.afm +2667 -0
  22. data/data/fonts/Times-Roman.afm +2419 -0
  23. data/data/fonts/ZapfDingbats.afm +225 -0
  24. data/lib/gamba/annotations.rb +21 -0
  25. data/lib/gamba/combine.rb +307 -0
  26. data/lib/gamba/document/bounding_box.rb +193 -0
  27. data/lib/gamba/document/column_box.rb +91 -0
  28. data/lib/gamba/document/internals.rb +264 -0
  29. data/lib/gamba/document/span.rb +25 -0
  30. data/lib/gamba/document.rb +268 -0
  31. data/lib/gamba/encoding.rb +13 -0
  32. data/lib/gamba/errors.rb +39 -0
  33. data/lib/gamba/font.rb +228 -0
  34. data/lib/gamba/fonts/afm.rb +171 -0
  35. data/lib/gamba/fonts/otf.rb +50 -0
  36. data/lib/gamba/fonts/ttf.rb +413 -0
  37. data/lib/gamba/graphic_state.rb +84 -0
  38. data/lib/gamba/graphics/color.rb +174 -0
  39. data/lib/gamba/graphics/patterns.rb +100 -0
  40. data/lib/gamba/graphics/style.rb +159 -0
  41. data/lib/gamba/graphics.rb +212 -0
  42. data/lib/gamba/grid.rb +216 -0
  43. data/lib/gamba/images/image.rb +271 -0
  44. data/lib/gamba/images/png_decoder.rb +65 -0
  45. data/lib/gamba/images.rb +115 -0
  46. data/lib/gamba/measurement_extensions.rb +40 -0
  47. data/lib/gamba/measurements.rb +62 -0
  48. data/lib/gamba/outline.rb +148 -0
  49. data/lib/gamba/page.rb +125 -0
  50. data/lib/gamba/page_geometry.rb +27 -0
  51. data/lib/gamba/pdf/decryption.rb +165 -0
  52. data/lib/gamba/pdf/outline_node.rb +53 -0
  53. data/lib/gamba/pdf/reader.rb +616 -0
  54. data/lib/gamba/pdf/reference.rb +31 -0
  55. data/lib/gamba/pdf/writer.rb +105 -0
  56. data/lib/gamba/pdf.rb +87 -0
  57. data/lib/gamba/pdf_a/srgb_profile.rb +61 -0
  58. data/lib/gamba/pdf_a.rb +132 -0
  59. data/lib/gamba/repeater.rb +79 -0
  60. data/lib/gamba/security.rb +111 -0
  61. data/lib/gamba/stamp.rb +76 -0
  62. data/lib/gamba/table/cell/kinds.rb +246 -0
  63. data/lib/gamba/table/cell.rb +331 -0
  64. data/lib/gamba/table/cells.rb +208 -0
  65. data/lib/gamba/table.rb +298 -0
  66. data/lib/gamba/text/box.rb +16 -0
  67. data/lib/gamba/text/formatted/arranger.rb +217 -0
  68. data/lib/gamba/text/formatted/box.rb +312 -0
  69. data/lib/gamba/text/formatted/fragment.rb +205 -0
  70. data/lib/gamba/text/formatted/line_wrap.rb +205 -0
  71. data/lib/gamba/text/formatted/parser.rb +150 -0
  72. data/lib/gamba/text/formatted/wrap.rb +103 -0
  73. data/lib/gamba/text.rb +310 -0
  74. data/lib/gamba/transformation_stack.rb +43 -0
  75. data/lib/gamba/true_type/cff_subset.rb +157 -0
  76. data/lib/gamba/true_type/file.rb +372 -0
  77. data/lib/gamba/true_type/open_type_layout.rb +189 -0
  78. data/lib/gamba/true_type/simple_subsets.rb +108 -0
  79. data/lib/gamba/true_type/subset.rb +206 -0
  80. data/lib/gamba/version.rb +10 -0
  81. data/lib/gamba/view.rb +28 -0
  82. data/lib/gamba.rb +124 -0
  83. data/lib/pdf/core.rb +4 -0
  84. data/lib/prawn/measurement_extensions.rb +4 -0
  85. data/lib/prawn/svg/attributes/clip_path.rb +46 -0
  86. data/lib/prawn/svg/attributes/mask.rb +16 -0
  87. data/lib/prawn/svg/attributes/opacity.rb +30 -0
  88. data/lib/prawn/svg/attributes/space.rb +10 -0
  89. data/lib/prawn/svg/attributes/stroke.rb +50 -0
  90. data/lib/prawn/svg/attributes/transform.rb +10 -0
  91. data/lib/prawn/svg/attributes.rb +6 -0
  92. data/lib/prawn/svg/calculators/arc_to_bezier_curve.rb +57 -0
  93. data/lib/prawn/svg/calculators/aspect_ratio.rb +60 -0
  94. data/lib/prawn/svg/calculators/document_sizing.rb +103 -0
  95. data/lib/prawn/svg/calculators/path_length.rb +168 -0
  96. data/lib/prawn/svg/calculators/pixels.rb +57 -0
  97. data/lib/prawn/svg/color.rb +240 -0
  98. data/lib/prawn/svg/css/font_face_parser.rb +72 -0
  99. data/lib/prawn/svg/css/font_family_parser.rb +39 -0
  100. data/lib/prawn/svg/css/font_parser.rb +46 -0
  101. data/lib/prawn/svg/css/selector_parser.rb +180 -0
  102. data/lib/prawn/svg/css/stylesheets.rb +233 -0
  103. data/lib/prawn/svg/css/values_parser.rb +68 -0
  104. data/lib/prawn/svg/document.rb +169 -0
  105. data/lib/prawn/svg/elements/anchor.rb +10 -0
  106. data/lib/prawn/svg/elements/base.rb +315 -0
  107. data/lib/prawn/svg/elements/bbox_scaling.rb +78 -0
  108. data/lib/prawn/svg/elements/call_duplicator.rb +37 -0
  109. data/lib/prawn/svg/elements/circle.rb +19 -0
  110. data/lib/prawn/svg/elements/clip_path.rb +26 -0
  111. data/lib/prawn/svg/elements/container.rb +10 -0
  112. data/lib/prawn/svg/elements/direct_render_base.rb +28 -0
  113. data/lib/prawn/svg/elements/ellipse.rb +20 -0
  114. data/lib/prawn/svg/elements/gradient.rb +183 -0
  115. data/lib/prawn/svg/elements/ignored.rb +5 -0
  116. data/lib/prawn/svg/elements/image.rb +178 -0
  117. data/lib/prawn/svg/elements/line.rb +27 -0
  118. data/lib/prawn/svg/elements/marker.rb +72 -0
  119. data/lib/prawn/svg/elements/mask.rb +65 -0
  120. data/lib/prawn/svg/elements/path.rb +294 -0
  121. data/lib/prawn/svg/elements/pattern.rb +150 -0
  122. data/lib/prawn/svg/elements/polygon.rb +25 -0
  123. data/lib/prawn/svg/elements/polyline.rb +23 -0
  124. data/lib/prawn/svg/elements/rect.rb +64 -0
  125. data/lib/prawn/svg/elements/root.rb +22 -0
  126. data/lib/prawn/svg/elements/switch.rb +92 -0
  127. data/lib/prawn/svg/elements/text.rb +99 -0
  128. data/lib/prawn/svg/elements/text_component.rb +352 -0
  129. data/lib/prawn/svg/elements/text_node.rb +308 -0
  130. data/lib/prawn/svg/elements/text_path.rb +153 -0
  131. data/lib/prawn/svg/elements/use.rb +142 -0
  132. data/lib/prawn/svg/elements/viewport.rb +29 -0
  133. data/lib/prawn/svg/elements.rb +46 -0
  134. data/lib/prawn/svg/extension.rb +25 -0
  135. data/lib/prawn/svg/font.rb +20 -0
  136. data/lib/prawn/svg/font_metrics.rb +144 -0
  137. data/lib/prawn/svg/font_registry.rb +315 -0
  138. data/lib/prawn/svg/funciri.rb +14 -0
  139. data/lib/prawn/svg/gradient_renderer.rb +332 -0
  140. data/lib/prawn/svg/gradients.rb +53 -0
  141. data/lib/prawn/svg/interface.rb +72 -0
  142. data/lib/prawn/svg/length.rb +43 -0
  143. data/lib/prawn/svg/link_renderer.rb +40 -0
  144. data/lib/prawn/svg/loaders/data.rb +17 -0
  145. data/lib/prawn/svg/loaders/file.rb +111 -0
  146. data/lib/prawn/svg/loaders/web.rb +24 -0
  147. data/lib/prawn/svg/paint.rb +67 -0
  148. data/lib/prawn/svg/pathable.rb +153 -0
  149. data/lib/prawn/svg/pattern_renderer.rb +112 -0
  150. data/lib/prawn/svg/pdfmatrix.rb +39 -0
  151. data/lib/prawn/svg/percentage.rb +24 -0
  152. data/lib/prawn/svg/properties.rb +329 -0
  153. data/lib/prawn/svg/renderer.rb +249 -0
  154. data/lib/prawn/svg/state.rb +24 -0
  155. data/lib/prawn/svg/transform_parser.rb +78 -0
  156. data/lib/prawn/svg/ttc.rb +35 -0
  157. data/lib/prawn/svg/ttf.rb +95 -0
  158. data/lib/prawn/svg/url_loader.rb +46 -0
  159. data/lib/prawn/svg/version.rb +5 -0
  160. data/lib/prawn/table.rb +4 -0
  161. data/lib/prawn-svg.rb +52 -0
  162. data/lib/prawn.rb +3 -0
  163. metadata +263 -0
@@ -0,0 +1,35 @@
1
+ class Prawn::SVG::TTC
2
+ TTC_TAG = "ttcf".freeze
3
+
4
+ attr_reader :fonts
5
+
6
+ def initialize(filename)
7
+ @fonts = []
8
+ load_data_from_file(filename)
9
+ end
10
+
11
+ private
12
+
13
+ def load_data_from_file(filename)
14
+ File.open(filename, "rb") do |f|
15
+ tag = f.read(4)
16
+ next unless tag == TTC_TAG
17
+
18
+ _major, _minor = f.read(4).unpack("nn")
19
+ font_count = f.read(4).unpack1("N")
20
+ offsets = f.read(font_count * 4).unpack("N*")
21
+
22
+ offsets.each_with_index do |offset, index|
23
+ result = Prawn::SVG::TTF.read_name_table(f, offset)
24
+ next unless result
25
+
26
+ family, subfamily = result
27
+ next unless family
28
+
29
+ weight_class = Prawn::SVG::TTF.read_weight_class(f, offset)
30
+ @fonts << {family:, subfamily:, index:, weight_class:}
31
+ end
32
+ end
33
+ rescue Errno::ENOENT
34
+ end
35
+ end
@@ -0,0 +1,95 @@
1
+ class Prawn::SVG::TTF
2
+ SFNT_VERSION_STRINGS = ["\x00\x01\x00\x00", "true", "typ1"].freeze
3
+ LANGUAGE_IDS = [0, 0x409].freeze # English, US English
4
+ UTF_16BE_PLATFORM_IDS = [0, 3].freeze # Unicode, Microsoft
5
+
6
+ attr_reader :family, :subfamily, :weight_class
7
+
8
+ def initialize(filename)
9
+ load_data_from_file(filename)
10
+ end
11
+
12
+ def self.read_weight_class(io, font_offset)
13
+ io.seek(font_offset)
14
+ offset_table = io.read(12)
15
+ return unless offset_table&.length == 12 && SFNT_VERSION_STRINGS.include?(offset_table[0..3])
16
+
17
+ table_count = (offset_table[4].ord * 256) + offset_table[5].ord
18
+ tables = io.read(table_count * 16)
19
+ return unless tables&.length == table_count * 16
20
+
21
+ table_count.times do |index|
22
+ start = index * 16
23
+ next unless tables[start..start + 3] == "OS/2"
24
+
25
+ offset, = tables[start + 8..start + 15].unpack("NN")
26
+ io.seek(offset)
27
+ data = io.read(6)
28
+ return data[4..5].unpack1("n") if data&.length == 6
29
+ end
30
+
31
+ nil
32
+ end
33
+
34
+ def self.read_name_table(io, font_offset)
35
+ io.seek(font_offset)
36
+ offset_table = io.read(12)
37
+ return unless offset_table && offset_table.length == 12 && SFNT_VERSION_STRINGS.include?(offset_table[0..3])
38
+
39
+ table_count = (offset_table[4].ord * 256) + offset_table[5].ord
40
+ tables = io.read(table_count * 16)
41
+ return unless tables && tables.length == table_count * 16
42
+
43
+ offset, length = table_count.times do |index|
44
+ start = index * 16
45
+ break tables[start + 8..start + 15].unpack("NNN") if tables[start..start + 3] == "name"
46
+ end
47
+
48
+ return unless length
49
+
50
+ io.seek(offset)
51
+ data = io.read(length)
52
+ return unless data && data.length == length
53
+
54
+ _, name_count, string_offset = data[0..5].unpack("nnn")
55
+
56
+ names = {}
57
+ name_count.times do |index|
58
+ start = 6 + (index * 12)
59
+ platform_id, _, language_id, name_id, length, offset = data[start..start + 11].unpack("nnnnnn")
60
+ next unless offset
61
+ next unless LANGUAGE_IDS.include?(language_id)
62
+ next unless [1, 2, 16, 17].include?(name_id)
63
+
64
+ offset += string_offset
65
+ field = data[offset..offset + length - 1]
66
+ next unless field && field.length == length
67
+
68
+ names[name_id] =
69
+ if UTF_16BE_PLATFORM_IDS.include?(platform_id)
70
+ begin
71
+ field.force_encoding(Encoding::UTF_16BE).encode(Encoding::UTF_8)
72
+ rescue
73
+ field
74
+ end
75
+ else
76
+ field
77
+ end
78
+ end
79
+
80
+ family = names[16] || names[1]
81
+ subfamily = names[17] || names[2]
82
+ [family, subfamily]
83
+ end
84
+
85
+ private
86
+
87
+ def load_data_from_file(filename)
88
+ File.open(filename, "rb") do |f|
89
+ result = self.class.read_name_table(f, 0)
90
+ @family, @subfamily = result if result
91
+ @weight_class = self.class.read_weight_class(f, 0)
92
+ end
93
+ rescue Errno::ENOENT # in case the file disappears between the scan and the load, we don't want to crash
94
+ end
95
+ end
@@ -0,0 +1,46 @@
1
+ class Prawn::SVG::UrlLoader
2
+ Error = Class.new(StandardError)
3
+
4
+ attr_reader :enable_cache, :loaders
5
+
6
+ def initialize(enable_cache: false, enable_web: true, enable_file_with_root: nil)
7
+ @url_cache = {}
8
+ @enable_cache = enable_cache
9
+
10
+ @loaders = []
11
+ loaders << Prawn::SVG::Loaders::Data.new
12
+ loaders << Prawn::SVG::Loaders::Web.new if enable_web
13
+ loaders << Prawn::SVG::Loaders::File.new(enable_file_with_root) if enable_file_with_root
14
+ end
15
+
16
+ def load(url)
17
+ retrieve_from_cache(url) || perform_and_cache(url)
18
+ end
19
+
20
+ def add_to_cache(url, data)
21
+ @url_cache[url] = data
22
+ end
23
+
24
+ def retrieve_from_cache(url)
25
+ @url_cache[url]
26
+ end
27
+
28
+ private
29
+
30
+ def perform_and_cache(url)
31
+ data = perform(url)
32
+ add_to_cache(url, data) if enable_cache
33
+ data
34
+ end
35
+
36
+ def perform(url)
37
+ try_each_loader(url) or raise Error, "No handler available for this URL scheme"
38
+ end
39
+
40
+ def try_each_loader(url)
41
+ loaders.detect do |loader|
42
+ data = loader.from_url(url)
43
+ break data if data
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,5 @@
1
+ module Prawn
2
+ module SVG
3
+ VERSION = "0.40.4".freeze
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Tables are part of Gamba: this file only keeps `require "prawn/table"` working.
4
+ require "prawn"
data/lib/prawn-svg.rb ADDED
@@ -0,0 +1,52 @@
1
+ require "matrix"
2
+ require "rexml/document"
3
+
4
+ require "prawn"
5
+ require "prawn/svg/version"
6
+
7
+ require "css_parser"
8
+
9
+ require "prawn/svg/font_registry"
10
+ require "prawn/svg/font_metrics"
11
+ require "prawn/svg/calculators/arc_to_bezier_curve"
12
+ require "prawn/svg/calculators/aspect_ratio"
13
+ require "prawn/svg/calculators/document_sizing"
14
+ require "prawn/svg/calculators/path_length"
15
+ require "prawn/svg/calculators/pixels"
16
+ require "prawn/svg/pdfmatrix"
17
+ require "prawn/svg/transform_parser"
18
+ require "prawn/svg/url_loader"
19
+ require "prawn/svg/loaders/data"
20
+ require "prawn/svg/loaders/file"
21
+ require "prawn/svg/loaders/web"
22
+ require "prawn/svg/color"
23
+ require "prawn/svg/funciri"
24
+ require "prawn/svg/length"
25
+ require "prawn/svg/paint"
26
+ require "prawn/svg/percentage"
27
+ require "prawn/svg/attributes"
28
+ require "prawn/svg/properties"
29
+ require "prawn/svg/pathable"
30
+ require "prawn/svg/elements"
31
+ require "prawn/svg/extension"
32
+ require "prawn/svg/renderer"
33
+ require "prawn/svg/interface"
34
+ require "prawn/svg/css/font_face_parser"
35
+ require "prawn/svg/css/font_parser"
36
+ require "prawn/svg/css/font_family_parser"
37
+ require "prawn/svg/css/selector_parser"
38
+ require "prawn/svg/css/stylesheets"
39
+ require "prawn/svg/css/values_parser"
40
+ require "prawn/svg/ttf"
41
+ require "prawn/svg/ttc"
42
+ require "prawn/svg/font"
43
+ require "prawn/svg/gradients"
44
+ require "prawn/svg/gradient_renderer"
45
+ require "prawn/svg/pattern_renderer"
46
+ require "prawn/svg/link_renderer"
47
+ require "prawn/svg/document"
48
+ require "prawn/svg/state"
49
+
50
+ module Prawn
51
+ Svg = SVG # backwards compatibility
52
+ end
data/lib/prawn.rb ADDED
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "gamba"
metadata ADDED
@@ -0,0 +1,263 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gamba
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Level UP Solutions
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: css_parser
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 1.17.1
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '4'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: 1.17.1
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '4'
32
+ - !ruby/object:Gem::Dependency
33
+ name: matrix
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: '0.4'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - "~>"
44
+ - !ruby/object:Gem::Version
45
+ version: '0.4'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rexml
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 3.4.2
53
+ - - "<"
54
+ - !ruby/object:Gem::Version
55
+ version: '4'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 3.4.2
63
+ - - "<"
64
+ - !ruby/object:Gem::Version
65
+ version: '4'
66
+ description: 'A drop-in replacement for prawn, prawn-table and prawn-svg: the same
67
+ API and the same pages as Prawn 2.5, written faster, with fewer allocations and
68
+ lighter files.'
69
+ executables: []
70
+ extensions: []
71
+ extra_rdoc_files: []
72
+ files:
73
+ - CHANGELOG.md
74
+ - COPYING
75
+ - GPLv2
76
+ - GPLv3
77
+ - LICENSE
78
+ - LICENSE-prawn-svg
79
+ - README.md
80
+ - data/fonts/Courier-Bold.afm
81
+ - data/fonts/Courier-BoldOblique.afm
82
+ - data/fonts/Courier-Oblique.afm
83
+ - data/fonts/Courier.afm
84
+ - data/fonts/Helvetica-Bold.afm
85
+ - data/fonts/Helvetica-BoldOblique.afm
86
+ - data/fonts/Helvetica-Oblique.afm
87
+ - data/fonts/Helvetica.afm
88
+ - data/fonts/MustRead.html
89
+ - data/fonts/Symbol.afm
90
+ - data/fonts/Times-Bold.afm
91
+ - data/fonts/Times-BoldItalic.afm
92
+ - data/fonts/Times-Italic.afm
93
+ - data/fonts/Times-Roman.afm
94
+ - data/fonts/ZapfDingbats.afm
95
+ - lib/gamba.rb
96
+ - lib/gamba/annotations.rb
97
+ - lib/gamba/combine.rb
98
+ - lib/gamba/document.rb
99
+ - lib/gamba/document/bounding_box.rb
100
+ - lib/gamba/document/column_box.rb
101
+ - lib/gamba/document/internals.rb
102
+ - lib/gamba/document/span.rb
103
+ - lib/gamba/encoding.rb
104
+ - lib/gamba/errors.rb
105
+ - lib/gamba/font.rb
106
+ - lib/gamba/fonts/afm.rb
107
+ - lib/gamba/fonts/otf.rb
108
+ - lib/gamba/fonts/ttf.rb
109
+ - lib/gamba/graphic_state.rb
110
+ - lib/gamba/graphics.rb
111
+ - lib/gamba/graphics/color.rb
112
+ - lib/gamba/graphics/patterns.rb
113
+ - lib/gamba/graphics/style.rb
114
+ - lib/gamba/grid.rb
115
+ - lib/gamba/images.rb
116
+ - lib/gamba/images/image.rb
117
+ - lib/gamba/images/png_decoder.rb
118
+ - lib/gamba/measurement_extensions.rb
119
+ - lib/gamba/measurements.rb
120
+ - lib/gamba/outline.rb
121
+ - lib/gamba/page.rb
122
+ - lib/gamba/page_geometry.rb
123
+ - lib/gamba/pdf.rb
124
+ - lib/gamba/pdf/decryption.rb
125
+ - lib/gamba/pdf/outline_node.rb
126
+ - lib/gamba/pdf/reader.rb
127
+ - lib/gamba/pdf/reference.rb
128
+ - lib/gamba/pdf/writer.rb
129
+ - lib/gamba/pdf_a.rb
130
+ - lib/gamba/pdf_a/srgb_profile.rb
131
+ - lib/gamba/repeater.rb
132
+ - lib/gamba/security.rb
133
+ - lib/gamba/stamp.rb
134
+ - lib/gamba/table.rb
135
+ - lib/gamba/table/cell.rb
136
+ - lib/gamba/table/cell/kinds.rb
137
+ - lib/gamba/table/cells.rb
138
+ - lib/gamba/text.rb
139
+ - lib/gamba/text/box.rb
140
+ - lib/gamba/text/formatted/arranger.rb
141
+ - lib/gamba/text/formatted/box.rb
142
+ - lib/gamba/text/formatted/fragment.rb
143
+ - lib/gamba/text/formatted/line_wrap.rb
144
+ - lib/gamba/text/formatted/parser.rb
145
+ - lib/gamba/text/formatted/wrap.rb
146
+ - lib/gamba/transformation_stack.rb
147
+ - lib/gamba/true_type/cff_subset.rb
148
+ - lib/gamba/true_type/file.rb
149
+ - lib/gamba/true_type/open_type_layout.rb
150
+ - lib/gamba/true_type/simple_subsets.rb
151
+ - lib/gamba/true_type/subset.rb
152
+ - lib/gamba/version.rb
153
+ - lib/gamba/view.rb
154
+ - lib/pdf/core.rb
155
+ - lib/prawn-svg.rb
156
+ - lib/prawn.rb
157
+ - lib/prawn/measurement_extensions.rb
158
+ - lib/prawn/svg/attributes.rb
159
+ - lib/prawn/svg/attributes/clip_path.rb
160
+ - lib/prawn/svg/attributes/mask.rb
161
+ - lib/prawn/svg/attributes/opacity.rb
162
+ - lib/prawn/svg/attributes/space.rb
163
+ - lib/prawn/svg/attributes/stroke.rb
164
+ - lib/prawn/svg/attributes/transform.rb
165
+ - lib/prawn/svg/calculators/arc_to_bezier_curve.rb
166
+ - lib/prawn/svg/calculators/aspect_ratio.rb
167
+ - lib/prawn/svg/calculators/document_sizing.rb
168
+ - lib/prawn/svg/calculators/path_length.rb
169
+ - lib/prawn/svg/calculators/pixels.rb
170
+ - lib/prawn/svg/color.rb
171
+ - lib/prawn/svg/css/font_face_parser.rb
172
+ - lib/prawn/svg/css/font_family_parser.rb
173
+ - lib/prawn/svg/css/font_parser.rb
174
+ - lib/prawn/svg/css/selector_parser.rb
175
+ - lib/prawn/svg/css/stylesheets.rb
176
+ - lib/prawn/svg/css/values_parser.rb
177
+ - lib/prawn/svg/document.rb
178
+ - lib/prawn/svg/elements.rb
179
+ - lib/prawn/svg/elements/anchor.rb
180
+ - lib/prawn/svg/elements/base.rb
181
+ - lib/prawn/svg/elements/bbox_scaling.rb
182
+ - lib/prawn/svg/elements/call_duplicator.rb
183
+ - lib/prawn/svg/elements/circle.rb
184
+ - lib/prawn/svg/elements/clip_path.rb
185
+ - lib/prawn/svg/elements/container.rb
186
+ - lib/prawn/svg/elements/direct_render_base.rb
187
+ - lib/prawn/svg/elements/ellipse.rb
188
+ - lib/prawn/svg/elements/gradient.rb
189
+ - lib/prawn/svg/elements/ignored.rb
190
+ - lib/prawn/svg/elements/image.rb
191
+ - lib/prawn/svg/elements/line.rb
192
+ - lib/prawn/svg/elements/marker.rb
193
+ - lib/prawn/svg/elements/mask.rb
194
+ - lib/prawn/svg/elements/path.rb
195
+ - lib/prawn/svg/elements/pattern.rb
196
+ - lib/prawn/svg/elements/polygon.rb
197
+ - lib/prawn/svg/elements/polyline.rb
198
+ - lib/prawn/svg/elements/rect.rb
199
+ - lib/prawn/svg/elements/root.rb
200
+ - lib/prawn/svg/elements/switch.rb
201
+ - lib/prawn/svg/elements/text.rb
202
+ - lib/prawn/svg/elements/text_component.rb
203
+ - lib/prawn/svg/elements/text_node.rb
204
+ - lib/prawn/svg/elements/text_path.rb
205
+ - lib/prawn/svg/elements/use.rb
206
+ - lib/prawn/svg/elements/viewport.rb
207
+ - lib/prawn/svg/extension.rb
208
+ - lib/prawn/svg/font.rb
209
+ - lib/prawn/svg/font_metrics.rb
210
+ - lib/prawn/svg/font_registry.rb
211
+ - lib/prawn/svg/funciri.rb
212
+ - lib/prawn/svg/gradient_renderer.rb
213
+ - lib/prawn/svg/gradients.rb
214
+ - lib/prawn/svg/interface.rb
215
+ - lib/prawn/svg/length.rb
216
+ - lib/prawn/svg/link_renderer.rb
217
+ - lib/prawn/svg/loaders/data.rb
218
+ - lib/prawn/svg/loaders/file.rb
219
+ - lib/prawn/svg/loaders/web.rb
220
+ - lib/prawn/svg/paint.rb
221
+ - lib/prawn/svg/pathable.rb
222
+ - lib/prawn/svg/pattern_renderer.rb
223
+ - lib/prawn/svg/pdfmatrix.rb
224
+ - lib/prawn/svg/percentage.rb
225
+ - lib/prawn/svg/properties.rb
226
+ - lib/prawn/svg/renderer.rb
227
+ - lib/prawn/svg/state.rb
228
+ - lib/prawn/svg/transform_parser.rb
229
+ - lib/prawn/svg/ttc.rb
230
+ - lib/prawn/svg/ttf.rb
231
+ - lib/prawn/svg/url_loader.rb
232
+ - lib/prawn/svg/version.rb
233
+ - lib/prawn/table.rb
234
+ homepage: https://github.com/levups/gamba
235
+ licenses:
236
+ - Nonstandard
237
+ - GPL-2.0-only
238
+ - GPL-3.0-only
239
+ - MIT
240
+ metadata:
241
+ source_code_uri: https://github.com/levups/gamba
242
+ changelog_uri: https://github.com/levups/gamba/blob/main/CHANGELOG.md
243
+ documentation_uri: https://levups.github.io/gamba/
244
+ bug_tracker_uri: https://github.com/levups/gamba/issues
245
+ rubygems_mfa_required: 'true'
246
+ rdoc_options: []
247
+ require_paths:
248
+ - lib
249
+ required_ruby_version: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ version: '3.3'
254
+ required_rubygems_version: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: '0'
259
+ requirements: []
260
+ rubygems_version: 4.0.24
261
+ specification_version: 4
262
+ summary: 'Prawn''s API, rewritten for speed: same pages, lighter files'
263
+ test_files: []