prawn 2.3.0 → 2.5.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/prawn/document/bounding_box.rb +223 -143
- data/lib/prawn/document/column_box.rb +61 -26
- data/lib/prawn/document/internals.rb +25 -16
- data/lib/prawn/document/span.rb +21 -18
- data/lib/prawn/document.rb +273 -182
- data/lib/prawn/encoding.rb +2 -5
- data/lib/prawn/errors.rb +23 -34
- data/lib/prawn/font.rb +254 -139
- data/lib/prawn/font_metric_cache.rb +18 -16
- data/lib/prawn/fonts/afm.rb +99 -57
- data/lib/prawn/fonts/dfont.rb +7 -1
- data/lib/prawn/fonts/otf.rb +4 -1
- data/lib/prawn/fonts/to_unicode_cmap.rb +151 -0
- data/lib/prawn/fonts/ttc.rb +7 -2
- data/lib/prawn/fonts/ttf.rb +345 -107
- data/lib/prawn/fonts.rb +14 -0
- data/lib/prawn/graphics/blend_mode.rb +25 -28
- data/lib/prawn/graphics/cap_style.rb +9 -12
- data/lib/prawn/graphics/color.rb +75 -50
- data/lib/prawn/graphics/dash.rb +45 -42
- data/lib/prawn/graphics/join_style.rb +18 -12
- data/lib/prawn/graphics/patterns.rb +239 -110
- data/lib/prawn/graphics/transformation.rb +51 -44
- data/lib/prawn/graphics/transparency.rb +16 -40
- data/lib/prawn/graphics.rb +370 -260
- data/lib/prawn/grid.rb +219 -57
- data/lib/prawn/image_handler.rb +27 -10
- data/lib/prawn/images/image.rb +8 -10
- data/lib/prawn/images/jpg.rb +46 -20
- data/lib/prawn/images/png.rb +94 -42
- data/lib/prawn/images.rb +70 -81
- data/lib/prawn/measurement_extensions.rb +39 -8
- data/lib/prawn/measurements.rb +60 -5
- data/lib/prawn/outline.rb +120 -113
- data/lib/prawn/repeater.rb +52 -36
- data/lib/prawn/security/arcfour.rb +4 -4
- data/lib/prawn/security.rb +106 -98
- data/lib/prawn/soft_mask.rb +42 -30
- data/lib/prawn/stamp.rb +38 -42
- data/lib/prawn/text/box.rb +156 -105
- data/lib/prawn/text/formatted/arranger.rb +121 -41
- data/lib/prawn/text/formatted/box.rb +239 -163
- data/lib/prawn/text/formatted/fragment.rb +130 -14
- data/lib/prawn/text/formatted/line_wrap.rb +49 -38
- data/lib/prawn/text/formatted/parser.rb +116 -74
- data/lib/prawn/text/formatted/wrap.rb +25 -26
- data/lib/prawn/text/formatted.rb +75 -0
- data/lib/prawn/text.rb +456 -211
- data/lib/prawn/transformation_stack.rb +29 -10
- data/lib/prawn/utilities.rb +13 -13
- data/lib/prawn/version.rb +2 -1
- data/lib/prawn/view.rb +69 -54
- data/lib/prawn.rb +24 -18
- data.tar.gz.sig +0 -0
- metadata +55 -262
- metadata.gz.sig +3 -4
- data/.yardopts +0 -10
- data/Gemfile +0 -5
- data/Rakefile +0 -54
- data/manual/absolute_position.pdf +0 -0
- data/manual/basic_concepts/adding_pages.rb +0 -26
- data/manual/basic_concepts/basic_concepts.rb +0 -43
- data/manual/basic_concepts/creation.rb +0 -38
- data/manual/basic_concepts/cursor.rb +0 -32
- data/manual/basic_concepts/measurement.rb +0 -24
- data/manual/basic_concepts/origin.rb +0 -37
- data/manual/basic_concepts/other_cursor_helpers.rb +0 -39
- data/manual/basic_concepts/view.rb +0 -48
- data/manual/bounding_box/bounding_box.rb +0 -41
- data/manual/bounding_box/bounds.rb +0 -48
- data/manual/bounding_box/canvas.rb +0 -23
- data/manual/bounding_box/creation.rb +0 -22
- data/manual/bounding_box/indentation.rb +0 -45
- data/manual/bounding_box/nesting.rb +0 -52
- data/manual/bounding_box/russian_boxes.rb +0 -40
- data/manual/bounding_box/stretchy.rb +0 -29
- data/manual/contents.rb +0 -35
- data/manual/cover.rb +0 -43
- data/manual/document_and_page_options/background.rb +0 -25
- data/manual/document_and_page_options/document_and_page_options.rb +0 -34
- data/manual/document_and_page_options/metadata.rb +0 -25
- data/manual/document_and_page_options/page_margins.rb +0 -36
- data/manual/document_and_page_options/page_size.rb +0 -34
- data/manual/document_and_page_options/print_scaling.rb +0 -22
- data/manual/example_helper.rb +0 -8
- data/manual/graphics/blend_mode.rb +0 -52
- data/manual/graphics/circle_and_ellipse.rb +0 -21
- data/manual/graphics/color.rb +0 -22
- data/manual/graphics/common_lines.rb +0 -29
- data/manual/graphics/fill_and_stroke.rb +0 -41
- data/manual/graphics/fill_rules.rb +0 -37
- data/manual/graphics/gradients.rb +0 -43
- data/manual/graphics/graphics.rb +0 -64
- data/manual/graphics/helper.rb +0 -27
- data/manual/graphics/line_width.rb +0 -36
- data/manual/graphics/lines_and_curves.rb +0 -40
- data/manual/graphics/polygon.rb +0 -27
- data/manual/graphics/rectangle.rb +0 -20
- data/manual/graphics/rotate.rb +0 -25
- data/manual/graphics/scale.rb +0 -42
- data/manual/graphics/soft_masks.rb +0 -44
- data/manual/graphics/stroke_cap.rb +0 -30
- data/manual/graphics/stroke_dash.rb +0 -47
- data/manual/graphics/stroke_join.rb +0 -29
- data/manual/graphics/translate.rb +0 -28
- data/manual/graphics/transparency.rb +0 -33
- data/manual/how_to_read_this_manual.rb +0 -39
- data/manual/images/absolute_position.rb +0 -22
- data/manual/images/fit.rb +0 -20
- data/manual/images/horizontal.rb +0 -24
- data/manual/images/images.rb +0 -41
- data/manual/images/plain_image.rb +0 -17
- data/manual/images/scale.rb +0 -21
- data/manual/images/vertical.rb +0 -27
- data/manual/images/width_and_height.rb +0 -24
- data/manual/layout/boxes.rb +0 -26
- data/manual/layout/content.rb +0 -24
- data/manual/layout/layout.rb +0 -27
- data/manual/layout/simple_grid.rb +0 -22
- data/manual/outline/add_subsection_to.rb +0 -60
- data/manual/outline/insert_section_after.rb +0 -46
- data/manual/outline/outline.rb +0 -33
- data/manual/outline/sections_and_pages.rb +0 -66
- data/manual/repeatable_content/alternate_page_numbering.rb +0 -36
- data/manual/repeatable_content/page_numbering.rb +0 -55
- data/manual/repeatable_content/repeatable_content.rb +0 -35
- data/manual/repeatable_content/repeater.rb +0 -54
- data/manual/repeatable_content/stamp.rb +0 -40
- data/manual/security/encryption.rb +0 -28
- data/manual/security/permissions.rb +0 -41
- data/manual/security/security.rb +0 -28
- data/manual/table.rb +0 -16
- data/manual/text/alignment.rb +0 -43
- data/manual/text/color.rb +0 -24
- data/manual/text/column_box.rb +0 -30
- data/manual/text/fallback_fonts.rb +0 -41
- data/manual/text/font.rb +0 -40
- data/manual/text/font_size.rb +0 -44
- data/manual/text/font_style.rb +0 -22
- data/manual/text/formatted_callbacks.rb +0 -65
- data/manual/text/formatted_text.rb +0 -58
- data/manual/text/free_flowing_text.rb +0 -50
- data/manual/text/inline.rb +0 -40
- data/manual/text/kerning_and_character_spacing.rb +0 -38
- data/manual/text/leading.rb +0 -24
- data/manual/text/line_wrapping.rb +0 -60
- data/manual/text/paragraph_indentation.rb +0 -32
- data/manual/text/positioned_text.rb +0 -37
- data/manual/text/registering_families.rb +0 -51
- data/manual/text/rendering_and_color.rb +0 -36
- data/manual/text/right_to_left_text.rb +0 -54
- data/manual/text/rotation.rb +0 -47
- data/manual/text/single_usage.rb +0 -36
- data/manual/text/text.rb +0 -75
- data/manual/text/text_box_excess.rb +0 -35
- data/manual/text/text_box_extensions.rb +0 -48
- data/manual/text/text_box_overflow.rb +0 -49
- data/manual/text/utf8.rb +0 -27
- data/manual/text/win_ansi_charset.rb +0 -62
- data/prawn.gemspec +0 -57
- data/spec/data/curves.pdf +0 -66
- data/spec/extensions/encoding_helpers.rb +0 -11
- data/spec/prawn/document/bounding_box_spec.rb +0 -546
- data/spec/prawn/document/column_box_spec.rb +0 -75
- data/spec/prawn/document/security_spec.rb +0 -176
- data/spec/prawn/document_annotations_spec.rb +0 -76
- data/spec/prawn/document_destinations_spec.rb +0 -15
- data/spec/prawn/document_grid_spec.rb +0 -99
- data/spec/prawn/document_reference_spec.rb +0 -27
- data/spec/prawn/document_span_spec.rb +0 -36
- data/spec/prawn/document_spec.rb +0 -802
- data/spec/prawn/font_metric_cache_spec.rb +0 -54
- data/spec/prawn/font_spec.rb +0 -542
- data/spec/prawn/graphics/blend_mode_spec.rb +0 -63
- data/spec/prawn/graphics/transparency_spec.rb +0 -81
- data/spec/prawn/graphics_spec.rb +0 -837
- data/spec/prawn/graphics_stroke_styles_spec.rb +0 -229
- data/spec/prawn/image_handler_spec.rb +0 -53
- data/spec/prawn/images/jpg_spec.rb +0 -20
- data/spec/prawn/images/png_spec.rb +0 -283
- data/spec/prawn/images_spec.rb +0 -224
- data/spec/prawn/measurements_extensions_spec.rb +0 -24
- data/spec/prawn/outline_spec.rb +0 -412
- data/spec/prawn/repeater_spec.rb +0 -165
- data/spec/prawn/soft_mask_spec.rb +0 -74
- data/spec/prawn/stamp_spec.rb +0 -172
- data/spec/prawn/text/box_spec.rb +0 -1112
- data/spec/prawn/text/formatted/arranger_spec.rb +0 -466
- data/spec/prawn/text/formatted/box_spec.rb +0 -846
- data/spec/prawn/text/formatted/fragment_spec.rb +0 -343
- data/spec/prawn/text/formatted/line_wrap_spec.rb +0 -494
- data/spec/prawn/text/formatted/parser_spec.rb +0 -697
- data/spec/prawn/text_draw_text_spec.rb +0 -149
- data/spec/prawn/text_rendering_mode_spec.rb +0 -48
- data/spec/prawn/text_spacing_spec.rb +0 -95
- data/spec/prawn/text_spec.rb +0 -603
- data/spec/prawn/text_with_inline_formatting_spec.rb +0 -35
- data/spec/prawn/transformation_stack_spec.rb +0 -66
- data/spec/prawn/view_spec.rb +0 -63
- data/spec/prawn_manual_spec.rb +0 -35
- data/spec/spec_helper.rb +0 -48
@@ -1,149 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe Prawn::Text do
|
6
|
-
describe '#draw_text' do
|
7
|
-
let(:pdf) { create_pdf }
|
8
|
-
|
9
|
-
it 'raise_errors ArgumentError if :at option omitted' do
|
10
|
-
expect { pdf.draw_text('hai', {}) }.to raise_error(ArgumentError)
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'raise_errors ArgumentError if :align option included' do
|
14
|
-
expect do
|
15
|
-
pdf.draw_text('hai', at: [0, 0], align: :center)
|
16
|
-
end.to raise_error(ArgumentError)
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'allows drawing empty strings to the page' do
|
20
|
-
pdf.draw_text(' ', at: [100, 100])
|
21
|
-
text = PDF::Inspector::Text.analyze(pdf.render)
|
22
|
-
expect(text.strings.first).to eq(' ')
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'defaults to 12 point helvetica' do
|
26
|
-
pdf.draw_text('Blah', at: [100, 100])
|
27
|
-
text = PDF::Inspector::Text.analyze(pdf.render)
|
28
|
-
expect(text.font_settings[0][:name]).to eq(:Helvetica)
|
29
|
-
expect(text.font_settings[0][:size]).to eq(12)
|
30
|
-
expect(text.strings.first).to eq('Blah')
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'allows setting font size' do
|
34
|
-
pdf.draw_text('Blah', at: [100, 100], size: 16)
|
35
|
-
text = PDF::Inspector::Text.analyze(pdf.render)
|
36
|
-
expect(text.font_settings[0][:size]).to eq(16)
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'allows setting a default font size' do
|
40
|
-
pdf.font_size = 16
|
41
|
-
pdf.draw_text('Blah', at: [0, 0])
|
42
|
-
|
43
|
-
text = PDF::Inspector::Text.analyze(pdf.render)
|
44
|
-
expect(text.font_settings[0][:size]).to eq(16)
|
45
|
-
end
|
46
|
-
|
47
|
-
# rubocop: disable Naming/AccessorMethodName
|
48
|
-
rotated_text_inspector = Class.new(PDF::Inspector) do
|
49
|
-
attr_reader :tm_operator_used
|
50
|
-
|
51
|
-
def initialize
|
52
|
-
@tm_operator_used = false
|
53
|
-
end
|
54
|
-
|
55
|
-
def set_text_matrix_and_text_line_matrix(*_arguments)
|
56
|
-
@tm_operator_used = true
|
57
|
-
end
|
58
|
-
end
|
59
|
-
# rubocop: enable Naming/AccessorMethodName
|
60
|
-
|
61
|
-
it 'allows rotation' do
|
62
|
-
pdf.draw_text('Test', at: [100, 100], rotate: 90)
|
63
|
-
|
64
|
-
text = rotated_text_inspector.analyze(pdf.render)
|
65
|
-
|
66
|
-
expect(text.tm_operator_used).to eq true
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'does not use rotation matrix by default' do
|
70
|
-
pdf.draw_text('Test', at: [100, 100])
|
71
|
-
|
72
|
-
text = rotated_text_inspector.analyze(pdf.render)
|
73
|
-
|
74
|
-
expect(text.tm_operator_used).to eq false
|
75
|
-
end
|
76
|
-
|
77
|
-
it 'allows overriding default font for a single instance' do
|
78
|
-
pdf.font_size = 16
|
79
|
-
|
80
|
-
pdf.draw_text('Blah', size: 11, at: [0, 0])
|
81
|
-
pdf.draw_text('Blaz', at: [0, 0])
|
82
|
-
text = PDF::Inspector::Text.analyze(pdf.render)
|
83
|
-
expect(text.font_settings[0][:size]).to eq(11)
|
84
|
-
expect(text.font_settings[1][:size]).to eq(16)
|
85
|
-
end
|
86
|
-
|
87
|
-
it 'allows setting a font size transaction with a block' do
|
88
|
-
pdf.font_size 16 do
|
89
|
-
pdf.draw_text('Blah', at: [0, 0])
|
90
|
-
end
|
91
|
-
|
92
|
-
pdf.draw_text('blah', at: [0, 0])
|
93
|
-
|
94
|
-
text = PDF::Inspector::Text.analyze(pdf.render)
|
95
|
-
expect(text.font_settings[0][:size]).to eq(16)
|
96
|
-
expect(text.font_settings[1][:size]).to eq(12)
|
97
|
-
end
|
98
|
-
|
99
|
-
it 'allows manual setting the font size when in a font size block' do
|
100
|
-
pdf.font_size(16) do
|
101
|
-
pdf.draw_text('Foo', at: [0, 0])
|
102
|
-
pdf.draw_text('Blah', size: 11, at: [0, 0])
|
103
|
-
pdf.draw_text('Blaz', at: [0, 0])
|
104
|
-
end
|
105
|
-
text = PDF::Inspector::Text.analyze(pdf.render)
|
106
|
-
expect(text.font_settings[0][:size]).to eq(16)
|
107
|
-
expect(text.font_settings[1][:size]).to eq(11)
|
108
|
-
expect(text.font_settings[2][:size]).to eq(16)
|
109
|
-
end
|
110
|
-
|
111
|
-
it 'allows registering of built-in font_settings on the fly' do
|
112
|
-
pdf.font 'Times-Roman'
|
113
|
-
pdf.draw_text('Blah', at: [100, 100])
|
114
|
-
pdf.font 'Courier'
|
115
|
-
pdf.draw_text('Blaz', at: [150, 150])
|
116
|
-
text = PDF::Inspector::Text.analyze(pdf.render)
|
117
|
-
expect(text.font_settings[0][:name]).to eq(:"Times-Roman")
|
118
|
-
expect(text.font_settings[1][:name]).to eq(:Courier)
|
119
|
-
end
|
120
|
-
|
121
|
-
it 'raise_errors an exception when an unknown font is used' do
|
122
|
-
expect { pdf.font 'Pao bu' }.to raise_error(Prawn::Errors::UnknownFont)
|
123
|
-
end
|
124
|
-
|
125
|
-
it 'correctlies render a utf-8 string when using a built-in font' do
|
126
|
-
str = '©' # copyright symbol
|
127
|
-
pdf.draw_text(str, at: [0, 0])
|
128
|
-
|
129
|
-
# grab the text from the rendered PDF and ensure it matches
|
130
|
-
text = PDF::Inspector::Text.analyze(pdf.render)
|
131
|
-
expect(text.strings.first).to eq(str)
|
132
|
-
end
|
133
|
-
|
134
|
-
it 'raises an exception when a utf-8 incompatible string is rendered' do
|
135
|
-
str = "Blah \xDD"
|
136
|
-
expect { pdf.draw_text(str, at: [0, 0]) }.to raise_error(
|
137
|
-
Prawn::Errors::IncompatibleStringEncoding
|
138
|
-
)
|
139
|
-
end
|
140
|
-
|
141
|
-
it 'does not raise an exception when a shift-jis string is rendered' do
|
142
|
-
datafile = "#{Prawn::DATADIR}/shift_jis_text.txt"
|
143
|
-
sjis_str = File.open(datafile, 'r:shift_jis', &:gets)
|
144
|
-
pdf.font("#{Prawn::DATADIR}/fonts/gkai00mp.ttf")
|
145
|
-
|
146
|
-
pdf.draw_text(sjis_str, at: [0, 0])
|
147
|
-
end
|
148
|
-
end
|
149
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe Prawn::Text do
|
6
|
-
let(:pdf) { create_pdf }
|
7
|
-
|
8
|
-
describe '#text_rendering_mode' do
|
9
|
-
it 'draws the text rendering mode to the document' do
|
10
|
-
pdf.text_rendering_mode(:stroke) do
|
11
|
-
pdf.text('hello world')
|
12
|
-
end
|
13
|
-
contents = PDF::Inspector::Text.analyze(pdf.render)
|
14
|
-
expect(contents.text_rendering_mode.first).to eq(1)
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'does not draw the text rendering mode to the document' \
|
18
|
-
' when the new mode matches the old' do
|
19
|
-
pdf.text_rendering_mode(:fill) do
|
20
|
-
pdf.text('hello world')
|
21
|
-
end
|
22
|
-
contents = PDF::Inspector::Text.analyze(pdf.render)
|
23
|
-
expect(contents.text_rendering_mode).to be_empty
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'restores character spacing to 0' do
|
27
|
-
pdf.text_rendering_mode(:stroke) do
|
28
|
-
pdf.text('hello world')
|
29
|
-
end
|
30
|
-
contents = PDF::Inspector::Text.analyze(pdf.render)
|
31
|
-
expect(contents.text_rendering_mode).to eq([1, 0])
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'functions as an accessor when no parameter given' do
|
35
|
-
pdf.text_rendering_mode(:fill_stroke) do
|
36
|
-
pdf.text('hello world')
|
37
|
-
expect(pdf.text_rendering_mode).to eq(:fill_stroke)
|
38
|
-
end
|
39
|
-
expect(pdf.text_rendering_mode).to eq(:fill)
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'raise_errors an exception when passed an invalid mode' do
|
43
|
-
expect { pdf.text_rendering_mode(-1) }.to raise_error(ArgumentError)
|
44
|
-
expect { pdf.text_rendering_mode(8) }.to raise_error(ArgumentError)
|
45
|
-
expect { pdf.text_rendering_mode(:flil) }.to raise_error(ArgumentError)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,95 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe Prawn::Text do
|
6
|
-
let(:pdf) { create_pdf }
|
7
|
-
|
8
|
-
describe '#character_spacing' do
|
9
|
-
it 'draws the character spacing to the document' do
|
10
|
-
pdf.character_spacing(10.555555) do
|
11
|
-
pdf.text('hello world')
|
12
|
-
end
|
13
|
-
contents = PDF::Inspector::Text.analyze(pdf.render)
|
14
|
-
expect(contents.character_spacing.first).to eq(10.5556)
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'does not draw the character spacing to the document' \
|
18
|
-
' when the new character spacing matches the old' do
|
19
|
-
pdf.character_spacing(0) do
|
20
|
-
pdf.text('hello world')
|
21
|
-
end
|
22
|
-
contents = PDF::Inspector::Text.analyze(pdf.render)
|
23
|
-
expect(contents.character_spacing).to be_empty
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'restores character spacing to 0' do
|
27
|
-
pdf.character_spacing(10.555555) do
|
28
|
-
pdf.text('hello world')
|
29
|
-
end
|
30
|
-
contents = PDF::Inspector::Text.analyze(pdf.render)
|
31
|
-
expect(contents.character_spacing.last).to eq(0)
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'functions as an accessor when no parameter given' do
|
35
|
-
pdf.character_spacing(10.555555) do
|
36
|
-
pdf.text('hello world')
|
37
|
-
expect(pdf.character_spacing).to eq(10.555555)
|
38
|
-
end
|
39
|
-
expect(pdf.character_spacing).to eq(0)
|
40
|
-
end
|
41
|
-
|
42
|
-
# ensure that we properly internationalize by using the number of characters
|
43
|
-
# in a string, not the number of bytes, to insert character spaces
|
44
|
-
#
|
45
|
-
it 'calculates character spacing widths by characters, not bytes' do
|
46
|
-
pdf.font("#{Prawn::DATADIR}/fonts/gkai00mp.ttf")
|
47
|
-
|
48
|
-
str = 'こんにちは世界'
|
49
|
-
raw_width = nil
|
50
|
-
pdf.character_spacing(0) do
|
51
|
-
raw_width = pdf.width_of(str)
|
52
|
-
end
|
53
|
-
|
54
|
-
pdf.character_spacing(10) do
|
55
|
-
# the new width should include six 10-pt character spaces.
|
56
|
-
expect(pdf.width_of(str)).to be_within(0.001).of(raw_width + (10 * 6))
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe '#word_spacing' do
|
62
|
-
it 'draws the word spacing to the document' do
|
63
|
-
pdf.word_spacing(10.555555) do
|
64
|
-
pdf.text('hello world')
|
65
|
-
end
|
66
|
-
contents = PDF::Inspector::Text.analyze(pdf.render)
|
67
|
-
expect(contents.word_spacing.first).to eq(10.5556)
|
68
|
-
end
|
69
|
-
|
70
|
-
it 'draws the word spacing to the document' \
|
71
|
-
' when the new word spacing matches the old' do
|
72
|
-
pdf.word_spacing(0) do
|
73
|
-
pdf.text('hello world')
|
74
|
-
end
|
75
|
-
contents = PDF::Inspector::Text.analyze(pdf.render)
|
76
|
-
expect(contents.word_spacing).to be_empty
|
77
|
-
end
|
78
|
-
|
79
|
-
it 'restores word spacing to 0' do
|
80
|
-
pdf.word_spacing(10.555555) do
|
81
|
-
pdf.text('hello world')
|
82
|
-
end
|
83
|
-
contents = PDF::Inspector::Text.analyze(pdf.render)
|
84
|
-
expect(contents.word_spacing.last).to eq(0)
|
85
|
-
end
|
86
|
-
|
87
|
-
it 'functions as an accessor when no parameter given' do
|
88
|
-
pdf.word_spacing(10.555555) do
|
89
|
-
pdf.text('hello world')
|
90
|
-
expect(pdf.word_spacing).to eq(10.555555)
|
91
|
-
end
|
92
|
-
expect(pdf.word_spacing).to eq(0)
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|