invoice_printer 2.0.0.beta3 → 2.2.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
- data/Dockerfile +7 -6
- data/Gemfile +1 -1
- data/Gemfile.lock +29 -16
- data/README.md +9 -3
- data/assets/fonts/opensans/OpenSans-Bold.ttf +0 -0
- data/assets/fonts/overpass/Overpass-Bold.ttf +0 -0
- data/assets/fonts/roboto/Roboto-Bold.ttf +0 -0
- data/benchmarks/render.yml +19 -13
- data/bin/invoice_printer +7 -0
- data/docs/COMMAND_LINE.md +122 -0
- data/docs/LIBRARY.md +16 -12
- data/docs/SERVER.md +8 -2
- data/examples/breakdown.rb +77 -0
- data/examples/international_invoice.rb +2 -2
- data/examples/long_invoice.rb +8 -8
- data/examples/picture.jpg +0 -0
- data/examples/promo.rb +19 -13
- data/examples/provider_purchaser_lines.rb +6 -15
- data/examples/simple_invoice.rb +15 -16
- data/examples/variable_field_invoice.rb +96 -0
- data/invoice_printer.gemspec +3 -2
- data/invoice_printer_fonts.gemspec +4 -1
- data/lib/invoice_printer.rb +27 -2
- data/lib/invoice_printer/document.rb +90 -148
- data/lib/invoice_printer/document/item.rb +34 -28
- data/lib/invoice_printer/pdf_document.rb +201 -208
- data/lib/invoice_printer/version.rb +1 -1
- data/test/api_test.rb +2 -2
- data/test/background_test.rb +1 -1
- data/test/cli_test.rb +1 -1
- data/test/dates_box_test.rb +4 -4
- data/test/examples_test.rb +2 -0
- data/test/inputs_test.rb +4 -4
- data/test/invoice_printer_test.rb +2 -2
- data/test/items_table_test.rb +2 -2
- data/test/labels_test.rb +2 -2
- data/test/notes_test.rb +1 -1
- data/test/page_numbers_test.rb +4 -4
- data/test/payment_box_test.rb +5 -5
- data/test/test_ext.rb +2 -1
- data/test/test_helper.rb +1 -1
- metadata +15 -15
- data/assets/logo.png +0 -0
- data/examples/background.png +0 -0
- data/examples/logo.png +0 -0
- data/examples/prawn.png +0 -0
- data/examples/stamp.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33a87300d4ff6a12080b758ea012b7c94a09521575c99579e300844dbfbf0e47
|
4
|
+
data.tar.gz: 33446dc1314512a7793ad95b73065dfb59abef1963e5c115fab5263e2dd53ecc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef29b3e26227c6cbeba87fca78154d55a7bb103472f77991fe1a4df24f30a36efa75db3f7f724ddd17a369713870db6d20bd93ea33d0812fb55501bbba9c7ea2
|
7
|
+
data.tar.gz: 6c93d97f040190c555dcbdaf742e05d904a00bd458e2f68009dd1191ec3bf190fe92e20033bb19e0ae3337f6e10686361922b05bcfcc6316e86f8bb46b7a0cbf
|
data/Dockerfile
CHANGED
@@ -11,24 +11,25 @@
|
|
11
11
|
#
|
12
12
|
# $ sudo docker login
|
13
13
|
# $ sudo docker tag printer docker.io/strzibnyj/invoice_printer_server:latest
|
14
|
+
# $ sudo docker push strzibnyj/invoice_printer_server:$VERSION
|
14
15
|
# $ sudo docker push strzibnyj/invoice_printer_server:latest
|
15
|
-
FROM alpine:3.
|
16
|
+
FROM alpine:3.13
|
16
17
|
MAINTAINER Josef Strzibny <strzibny@strzibny.name>
|
17
18
|
|
18
19
|
ENV GEM_HOME="/usr/local/bundle"
|
19
20
|
ENV PATH $GEM_HOME/bin:$GEM_HOME/gems/bin:$PATH
|
20
21
|
|
21
22
|
# Update system
|
22
|
-
RUN apk update &&
|
23
|
+
RUN apk update && apk upgrade
|
23
24
|
|
24
25
|
# Install Ruby and build dependencies
|
25
26
|
RUN apk add build-base bash ruby ruby-etc ruby-dev
|
26
27
|
|
27
|
-
# Install
|
28
|
-
RUN gem install invoice_printer_fonts --no-document
|
28
|
+
# Install builtin fonts
|
29
|
+
RUN gem install invoice_printer_fonts --version 2.2.0 --no-document
|
29
30
|
|
30
|
-
# Install gem from RubyGems.org
|
31
|
-
RUN gem install invoice_printer_server --version 2.
|
31
|
+
# Install the gem from RubyGems.org
|
32
|
+
RUN gem install invoice_printer_server --version 2.2.0 --no-document
|
32
33
|
|
33
34
|
# Clean APK cache
|
34
35
|
RUN rm -rf /var/cache/apk/*
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
|
4
|
+
invoice_printer (2.2.0)
|
5
|
+
json (~> 2.1)
|
6
|
+
prawn (~> 2.2)
|
7
|
+
prawn-table (~> 0.2.2)
|
8
|
+
invoice_printer_server (2.2.0)
|
9
|
+
invoice_printer (= 2.2.0)
|
5
10
|
json (~> 2.1)
|
6
11
|
puma (>= 3.9.0)
|
7
12
|
roda (~> 3.5)
|
@@ -11,41 +16,49 @@ GEM
|
|
11
16
|
specs:
|
12
17
|
Ascii85 (1.0.3)
|
13
18
|
afm (0.2.2)
|
14
|
-
benchmark_driver (0.
|
19
|
+
benchmark_driver (0.15.17)
|
15
20
|
benchmark_driver-output-gruff (0.3.1)
|
16
21
|
benchmark_driver (>= 0.12.0)
|
17
22
|
gruff
|
18
|
-
gruff (0.
|
19
|
-
|
23
|
+
gruff (0.11.0)
|
24
|
+
histogram
|
25
|
+
rmagick
|
20
26
|
hashery (2.1.2)
|
21
|
-
|
22
|
-
|
23
|
-
|
27
|
+
histogram (0.2.4.1)
|
28
|
+
json (2.5.1)
|
29
|
+
minitest (5.14.2)
|
30
|
+
nio4r (2.5.7)
|
31
|
+
pdf-core (0.9.0)
|
24
32
|
pdf-inspector (1.3.0)
|
25
33
|
pdf-reader (>= 1.0, < 3.0.a)
|
26
|
-
pdf-reader (2.
|
34
|
+
pdf-reader (2.4.1)
|
27
35
|
Ascii85 (~> 1.0.0)
|
28
36
|
afm (~> 0.2.1)
|
29
37
|
hashery (~> 2.0)
|
30
38
|
ruby-rc4
|
31
39
|
ttfunk
|
32
|
-
|
40
|
+
prawn (2.4.0)
|
41
|
+
pdf-core (~> 0.9.0)
|
42
|
+
ttfunk (~> 1.7)
|
43
|
+
prawn-table (0.2.2)
|
44
|
+
prawn (>= 1.3.0, < 3.0.0)
|
45
|
+
puma (5.3.2)
|
33
46
|
nio4r (~> 2.0)
|
34
|
-
rack (2.
|
47
|
+
rack (2.2.3)
|
35
48
|
rack-test (1.1.0)
|
36
49
|
rack (>= 1.0, < 3)
|
37
|
-
rake (
|
38
|
-
rmagick (
|
39
|
-
roda (3.
|
50
|
+
rake (13.0.1)
|
51
|
+
rmagick (4.1.2)
|
52
|
+
roda (3.45.0)
|
40
53
|
rack
|
41
54
|
ruby-rc4 (0.1.5)
|
42
|
-
ttfunk (1.
|
55
|
+
ttfunk (1.7.0)
|
43
56
|
|
44
57
|
PLATFORMS
|
45
58
|
ruby
|
46
59
|
|
47
60
|
DEPENDENCIES
|
48
|
-
benchmark_driver (= 0.
|
61
|
+
benchmark_driver (= 0.15.17)
|
49
62
|
benchmark_driver-output-gruff
|
50
63
|
bundler (>= 1.7)
|
51
64
|
invoice_printer_server!
|
@@ -55,4 +68,4 @@ DEPENDENCIES
|
|
55
68
|
rake (>= 10.0)
|
56
69
|
|
57
70
|
BUNDLED WITH
|
58
|
-
1.
|
71
|
+
2.1.4
|
data/README.md
CHANGED
@@ -25,10 +25,10 @@ See more usecases in the `examples/` directory.
|
|
25
25
|
- Purchaser and provider boxes with addresses and identificaton numbers
|
26
26
|
- Payment method box showing banking details including SWIFT and IBAN fields
|
27
27
|
- Issue/due dates box
|
28
|
-
- Configurable items' table with item description, quantity, unit, price per unit, tax and item's total amount fields
|
28
|
+
- Configurable items' table with item description, breakdown, quantity, unit, price per unit, tax and item's total amount fields
|
29
29
|
- Final subtotal/tax/total info box
|
30
30
|
- Page numbers
|
31
|
-
- Configurable labels & sublabels (optional little labels)
|
31
|
+
- Configurable field labels & sublabels (optional little labels)
|
32
32
|
- Configurable font file
|
33
33
|
- Logotype (as image scaled to fit 50px of height)
|
34
34
|
- Background (as image)
|
@@ -46,6 +46,12 @@ See more usecases in the `examples/` directory.
|
|
46
46
|
- [Server](./docs/SERVER.md)
|
47
47
|
- [Command line](./docs/COMMAND_LINE.md)
|
48
48
|
|
49
|
+
## Support
|
50
|
+
|
51
|
+
I am developing InvoicePrinter as a free and MIT-licensed library for several years now.
|
52
|
+
|
53
|
+
I would appreciate if you consider [buying my book](https://deploymentfromscratch.com/).
|
54
|
+
|
49
55
|
## Copyright
|
50
56
|
|
51
|
-
Copyright 2015-
|
57
|
+
Copyright 2015-2021 © [Josef Strzibny](http://strzibny.name/). MIT licensed.
|
Binary file
|
Binary file
|
Binary file
|
data/benchmarks/render.yml
CHANGED
@@ -1,13 +1,25 @@
|
|
1
1
|
# Run the benchmark with benchmark_driver as:
|
2
2
|
#
|
3
|
-
# $ benchmark-driver benchmarks/render.yml --output gruff --runner ips -e '/path/to/bin/ruby;/path/to/bin/ruby-
|
4
|
-
# $ benchmark-driver benchmarks/render.yml --output compare --runner memory -e '/path/to/bin/ruby;/path/to/bin/ruby-
|
5
|
-
|
3
|
+
# $ benchmark-driver benchmarks/render.yml --output gruff --runner ips -e '/path/to/bin/ruby;/path/to/bin/ruby-3.0.0 --jit'
|
4
|
+
# $ benchmark-driver benchmarks/render.yml --output compare --runner memory -e '/path/to/bin/ruby;/path/to/bin/ruby-3.0.0 --jit'
|
5
|
+
# $ benchmark-driver benchmarks/render.yml -e '/home/strzibny/.rubies/ruby-2.7.0/bin/ruby;/home/strzibny/.rubies/ruby-3.0.0/bin/ruby;/home/strzibny/.rubies/ruby-3.0.0/bin/ruby --jit'
|
6
|
+
#
|
7
|
+
# Note: You need to install invoice_printer as a gem for the require to work.
|
8
|
+
loop_count: 3000
|
6
9
|
prelude: |
|
7
|
-
lib = File.expand_path('../lib', __FILE__)
|
8
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
9
10
|
require 'invoice_printer'
|
10
11
|
|
12
|
+
provider_address = <<ADDRESS
|
13
|
+
Rolnicka 1
|
14
|
+
747 05 Opava
|
15
|
+
Katerinky
|
16
|
+
ADDRESS
|
17
|
+
|
18
|
+
purchaser_address = <<ADDRESS
|
19
|
+
Ostravska 1
|
20
|
+
747 70 Opava
|
21
|
+
ADDRESS
|
22
|
+
|
11
23
|
item = InvoicePrinter::Document::Item.new(
|
12
24
|
name: 'Programming',
|
13
25
|
quantity: '10',
|
@@ -19,15 +31,9 @@ prelude: |
|
|
19
31
|
invoice = InvoicePrinter::Document.new(
|
20
32
|
number: 'NO. 198900000001',
|
21
33
|
provider_name: 'John White',
|
22
|
-
|
23
|
-
provider_street_number: '1',
|
24
|
-
provider_postcode: '747 05',
|
25
|
-
provider_city: 'NYC',
|
34
|
+
provider_lines: provider_address,
|
26
35
|
purchaser_name: 'Will Black',
|
27
|
-
|
28
|
-
purchaser_street_number: '1',
|
29
|
-
purchaser_postcode: '747 70',
|
30
|
-
purchaser_city: 'NYC',
|
36
|
+
purchaser_lines: purchaser_address,
|
31
37
|
issue_date: '05/03/2016',
|
32
38
|
due_date: '19/03/2016',
|
33
39
|
total: '$ 900',
|
data/bin/invoice_printer
CHANGED
@@ -19,6 +19,7 @@ def show_help
|
|
19
19
|
-d, --document document as JSON
|
20
20
|
-l, --labels labels as JSON
|
21
21
|
--font path to font or builtin font name
|
22
|
+
--bold-font path to bold font or builtin font name
|
22
23
|
-s, --stamp path to stamp
|
23
24
|
--logo path to logotype
|
24
25
|
--background path to background image
|
@@ -47,6 +48,10 @@ parser = OptionParser.new do|opts|
|
|
47
48
|
options[:font] = path
|
48
49
|
end
|
49
50
|
|
51
|
+
opts.on('--bold-font PATH') do |path|
|
52
|
+
options[:bold_font] = path
|
53
|
+
end
|
54
|
+
|
50
55
|
opts.on('-s', '--stamp PATH') do |path|
|
51
56
|
options[:stamp] = path
|
52
57
|
end
|
@@ -116,6 +121,7 @@ begin
|
|
116
121
|
document: document,
|
117
122
|
labels: labels,
|
118
123
|
font: options[:font],
|
124
|
+
bold_font: options[:bold_font],
|
119
125
|
stamp: options[:stamp],
|
120
126
|
logo: options[:logo],
|
121
127
|
background: options[:background],
|
@@ -130,6 +136,7 @@ begin
|
|
130
136
|
document: document,
|
131
137
|
labels: labels,
|
132
138
|
font: options[:font],
|
139
|
+
bold_font: options[:bold_font],
|
133
140
|
stamp: options[:stamp],
|
134
141
|
logo: options[:logo],
|
135
142
|
file_name: options[:filename],
|
data/docs/COMMAND_LINE.md
CHANGED
@@ -13,6 +13,7 @@ Options:
|
|
13
13
|
-d, --document document as JSON
|
14
14
|
-l, --labels labels as JSON
|
15
15
|
--font path to font or builtin font name
|
16
|
+
--bold-font path to bold font or builtin font name
|
16
17
|
-s, --stamp path to stamp
|
17
18
|
--logo path to logotype
|
18
19
|
--background path to background image
|
@@ -20,6 +21,127 @@ Options:
|
|
20
21
|
-f, --filename output path
|
21
22
|
-r, --render directly render PDF stream (filename option will be ignored)
|
22
23
|
```
|
24
|
+
|
25
|
+
## Document
|
26
|
+
|
27
|
+
JSON document with all possible fields filled:
|
28
|
+
|
29
|
+
```json
|
30
|
+
{
|
31
|
+
"number":"c. 198900000001",
|
32
|
+
"provider_name":"Petr Novy",
|
33
|
+
"provider_tax_id":"56565656",
|
34
|
+
"provider_tax_id2":"",
|
35
|
+
"provider_lines":"Rolnická 1\n747 05 Opava\nKateřinky",
|
36
|
+
"purchaser_name":"Adam Cerny",
|
37
|
+
"purchaser_tax_id":"",
|
38
|
+
"purchaser_tax_id2":"",
|
39
|
+
"purchaser_lines":"Ostravská 1\n747 70 Opava",
|
40
|
+
"issue_date":"05/03/2016",
|
41
|
+
"due_date":"19/03/2016",
|
42
|
+
"variable_symbol":"198900000001",
|
43
|
+
"subtotal":"Kc 10.000",
|
44
|
+
"tax":"Kc 2.100",
|
45
|
+
"tax2":"",
|
46
|
+
"tax3":"",
|
47
|
+
"variable":"Extra column",
|
48
|
+
"total":"Kc 12.100,-",
|
49
|
+
"bank_account_number":"156546546465",
|
50
|
+
"account_iban":"IBAN464545645",
|
51
|
+
"account_swift":"SWIFT5456",
|
52
|
+
"items":[
|
53
|
+
{
|
54
|
+
"name":"Konzultace",
|
55
|
+
"variable": "",
|
56
|
+
"quantity":"2",
|
57
|
+
"unit":"hod",
|
58
|
+
"price":"Kc 500",
|
59
|
+
"tax":"",
|
60
|
+
"tax2":"",
|
61
|
+
"tax3":"",
|
62
|
+
"amount":"Kc 1.000"
|
63
|
+
},
|
64
|
+
{
|
65
|
+
"name":"Programovani",
|
66
|
+
"variable": "",
|
67
|
+
"quantity":"10",
|
68
|
+
"unit":"hod",
|
69
|
+
"price":"Kc 900",
|
70
|
+
"tax":"",
|
71
|
+
"tax2":"",
|
72
|
+
"tax3":"",
|
73
|
+
"amount":"Kc 9.000"
|
74
|
+
}
|
75
|
+
],
|
76
|
+
"note":"Osoba je zapsána v zivnostenském rejstríku."
|
77
|
+
}
|
78
|
+
```
|
79
|
+
|
80
|
+
**Note**: `provider_lines` and `purchaser_lines` are 4 lines of data separated by new line character`\n`. Other lines are being stripped.
|
81
|
+
|
82
|
+
**Note**: There is `variable` field that can be used for any
|
83
|
+
extra column.
|
84
|
+
|
85
|
+
## Field labels
|
86
|
+
|
87
|
+
All labels:
|
88
|
+
|
89
|
+
```json
|
90
|
+
{
|
91
|
+
"name":"Invoice",
|
92
|
+
"provider":"Provider",
|
93
|
+
"purchaser":"Purchaser",
|
94
|
+
"tax_id":"Identification number",
|
95
|
+
"tax_id2":"Identification number",
|
96
|
+
"payment":"Payment",
|
97
|
+
"payment_by_transfer":"Payment by bank transfer on the account below:",
|
98
|
+
"payment_in_cash":"Payment in cash",
|
99
|
+
"account_number":"Account NO",
|
100
|
+
"swift":"SWIFT",
|
101
|
+
"iban":"IBAN",
|
102
|
+
"issue_date":"Issue date",
|
103
|
+
"due_date": "Due date",
|
104
|
+
"variable_symbol": "Variable symbol",
|
105
|
+
"item":"Item",
|
106
|
+
"variable":"",
|
107
|
+
"quantity":"Quantity",
|
108
|
+
"unit": "Unit",
|
109
|
+
"price_per_item":"Price per item",
|
110
|
+
"amount":"Amount",
|
111
|
+
"tax":"Tax",
|
112
|
+
"tax2":"Tax 2",
|
113
|
+
"tax3":"Tax 3",
|
114
|
+
"subtotal":"Subtotal",
|
115
|
+
"total":"Total",
|
116
|
+
"sublabels":{
|
117
|
+
"name":"Faktura",
|
118
|
+
"provider":"Prodejce",
|
119
|
+
"purchaser":"Kupující",
|
120
|
+
"tax_id":"IČ",
|
121
|
+
"tax_id2":"DIČ",
|
122
|
+
"payment":"Forma úhrady",
|
123
|
+
"payment_by_transfer":"Platba na následující účet:",
|
124
|
+
"account_number":"Číslo účtu",
|
125
|
+
"issue_date":"Datum vydání",
|
126
|
+
"due_date":"Datum splatnosti",
|
127
|
+
"item":"Položka",
|
128
|
+
"variable:":"",
|
129
|
+
"quantity":"Počet",
|
130
|
+
"unit":"MJ",
|
131
|
+
"price_per_item":"Cena za položku",
|
132
|
+
"amount":"Celkem bez daně",
|
133
|
+
"subtota":"Cena bez daně",
|
134
|
+
"tax":"DPH 21 %",
|
135
|
+
"total":"Celkem"
|
136
|
+
}
|
137
|
+
}
|
138
|
+
```
|
139
|
+
**Note**: Notice the `sublabels` which you might not want to necessary include.
|
140
|
+
|
141
|
+
## Built-in fonts
|
142
|
+
|
143
|
+
Supported builtin fonts are: `overpass`, `opensans`, and `roboto`. They ship with bold versions.
|
144
|
+
|
23
145
|
## Examples
|
24
146
|
|
25
147
|
```
|
data/docs/LIBRARY.md
CHANGED
@@ -31,6 +31,7 @@ Here is an full example for creating the document object:
|
|
31
31
|
```ruby
|
32
32
|
item = InvoicePrinter::Document::Item.new(
|
33
33
|
name: 'Web consultation',
|
34
|
+
breakdown: 'Excludes 1h free consultation',
|
34
35
|
quantity: nil,
|
35
36
|
unit: 'hours',
|
36
37
|
price: '$ 25',
|
@@ -72,13 +73,11 @@ invoice = InvoicePrinter::Document.new(
|
|
72
73
|
**Note**: `provider_lines` and `purchaser_lines` are 4 lines of data separated by new line character`\n`. Other lines are being stripped.
|
73
74
|
|
74
75
|
**Note**: There is `variable` field that can be used for any
|
75
|
-
extra column.
|
76
|
-
available as well.
|
76
|
+
extra column.
|
77
77
|
|
78
78
|
### Ruby on Rails
|
79
79
|
|
80
|
-
If you want to use InvoicePrinter for printing PDF documents directly from Rails
|
81
|
-
actions, you can:
|
80
|
+
If you want to use InvoicePrinter for printing PDF documents directly from Rails actions, you can:
|
82
81
|
|
83
82
|
```ruby
|
84
83
|
# GET /invoices/1
|
@@ -109,11 +108,8 @@ InvoicePrinter.print(
|
|
109
108
|
document: document,
|
110
109
|
...
|
111
110
|
)
|
112
|
-
|
113
111
|
```
|
114
112
|
|
115
|
-
|
116
|
-
|
117
113
|
## Customization
|
118
114
|
|
119
115
|
### Page size
|
@@ -153,8 +149,7 @@ InvoicePrinter.print(
|
|
153
149
|
)
|
154
150
|
```
|
155
151
|
|
156
|
-
Here is the full list of labels to configure. You can paste and edit this block
|
157
|
-
to `initializers/invoice_printer.rb` if you are using Rails.
|
152
|
+
Here is the full list of labels to configure. You can paste and edit this block to `initializers/invoice_printer.rb` if you are using Rails.
|
158
153
|
|
159
154
|
```ruby
|
160
155
|
InvoicePrinter.labels = {
|
@@ -171,6 +166,7 @@ InvoicePrinter.labels = {
|
|
171
166
|
iban: 'IBAN',
|
172
167
|
issue_date: 'Issue date',
|
173
168
|
due_date: 'Due date',
|
169
|
+
variable_symbol: 'Variable symbol',
|
174
170
|
item: 'Item',
|
175
171
|
variable: '',
|
176
172
|
quantity: 'Quantity',
|
@@ -204,6 +200,7 @@ sublabels = {
|
|
204
200
|
account_number: 'Číslo účtu',
|
205
201
|
issue_date: 'Datum vydání',
|
206
202
|
due_date: 'Datum splatnosti',
|
203
|
+
variable_symbol: 'Variabilní symbol',
|
207
204
|
item: 'Položka',
|
208
205
|
variable: '',
|
209
206
|
quantity: 'Počet',
|
@@ -226,16 +223,23 @@ Now the document will have little sublabels next to the original labels in Czech
|
|
226
223
|
|
227
224
|
To support specific characters you might need to specify a TTF font to be used:
|
228
225
|
|
229
|
-
```
|
226
|
+
```ruby
|
230
227
|
InvoicePrinter.print(
|
231
228
|
...
|
232
229
|
font: File.expand_path('../Overpass-Regular.ttf', __FILE__)
|
233
230
|
)
|
234
231
|
```
|
235
232
|
|
236
|
-
If you don't have a font around, you can install `invoice_printer_fonts` gem and specify the supported font name instead
|
233
|
+
If you don't have a font around, you can install `invoice_printer_fonts` gem and specify the supported font name instead:
|
234
|
+
|
235
|
+
```ruby
|
236
|
+
InvoicePrinter.print(
|
237
|
+
document: invoice,
|
238
|
+
font: "roboto"
|
239
|
+
)
|
240
|
+
```
|
237
241
|
|
238
|
-
Supported builtin fonts are: `overpass`, `opensans`, and `
|
242
|
+
Supported builtin fonts are: `overpass`, `opensans`, and `roboto`. Note that searching the path takes preference.
|
239
243
|
|
240
244
|
### Background
|
241
245
|
|