invoice_printer 2.0.0.beta3 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/docs/SERVER.md
CHANGED
@@ -23,9 +23,11 @@ By default server binds to `0.0.0.0:9393`.
|
|
23
23
|
Get the public image and run it:
|
24
24
|
|
25
25
|
```bash
|
26
|
-
$ sudo docker pull strzibnyj/invoice_printer_server
|
27
|
-
$ sudo docker run -d -p 9393:9393 -t docker.io/strzibnyj/invoice_printer_server
|
26
|
+
$ sudo docker pull strzibnyj/invoice_printer_server:$VERSION
|
27
|
+
$ sudo docker run -d -p 9393:9393 -v ~/path/to/invocies:/data:Z -t docker.io/strzibnyj/invoice_printer_server
|
28
28
|
```
|
29
|
+
You can use `latest` as a `$VERSION`. Specifying the `-v` option is only required when using the `/print` action to create the documents at certain path. It will allow you to provide the desired filename as "/data/invoice-name.pdf".
|
30
|
+
|
29
31
|
The server will then be available on `0.0.0.0:9393`.
|
30
32
|
|
31
33
|
Docker image already contains the optional `invoice_printer_fonts` gem.
|
@@ -59,11 +61,14 @@ Options:
|
|
59
61
|
- `document` - JSON representation of the document
|
60
62
|
- `labels` - JSON for labels
|
61
63
|
- `font` - path to font file or builtin font name
|
64
|
+
- `bold_font` - path to bold font file or builtin font name
|
62
65
|
- `stamp` - path to stamp file
|
63
66
|
- `logo` - path to logotype file
|
64
67
|
- `background` - path to background file
|
65
68
|
- `page_size` - letter or A4 page size
|
66
69
|
|
70
|
+
These parameters are the same as for the [command line](./COMMAND_LINE.md).
|
71
|
+
|
67
72
|
On success a `200` response is returned:
|
68
73
|
|
69
74
|
```json
|
@@ -99,6 +104,7 @@ Options:
|
|
99
104
|
- `document` - JSON representation of the document
|
100
105
|
- `labels` - JSON for labels
|
101
106
|
- `font` - path to font file or builtin font name
|
107
|
+
- `bold_font` - path to bold font file or builtin font name
|
102
108
|
- `stamp` - path to stamp file
|
103
109
|
- `logo` - path to logotype file
|
104
110
|
- `background` - path to background file
|
@@ -0,0 +1,77 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This is an example of a longer invoice.
|
3
|
+
|
4
|
+
lib = File.expand_path('../../lib', __FILE__)
|
5
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
6
|
+
require 'invoice_printer'
|
7
|
+
|
8
|
+
labels = {
|
9
|
+
tax: '10% VAT'
|
10
|
+
}
|
11
|
+
|
12
|
+
item = InvoicePrinter::Document::Item.new(
|
13
|
+
name: 'Programming',
|
14
|
+
quantity: '10',
|
15
|
+
unit: 'h',
|
16
|
+
price: '$ 60',
|
17
|
+
tax: '$ 60',
|
18
|
+
amount: '$ 600'
|
19
|
+
)
|
20
|
+
|
21
|
+
item2 = InvoicePrinter::Document::Item.new(
|
22
|
+
name: 'Consulting',
|
23
|
+
breakdown: "Excludes 1 hour free consultation",
|
24
|
+
quantity: '10',
|
25
|
+
unit: 'h',
|
26
|
+
price: '$ 30',
|
27
|
+
tax: '$ 30',
|
28
|
+
amount: '$ 300'
|
29
|
+
)
|
30
|
+
|
31
|
+
breakdown = <<BREAKDOWN
|
32
|
+
Issue 404: 15h
|
33
|
+
Issue 505: 5h
|
34
|
+
BREAKDOWN
|
35
|
+
|
36
|
+
item3 = InvoicePrinter::Document::Item.new(
|
37
|
+
name: 'Support',
|
38
|
+
breakdown: breakdown,
|
39
|
+
quantity: '20',
|
40
|
+
unit: 'h',
|
41
|
+
price: '$ 15',
|
42
|
+
tax: '$ 30',
|
43
|
+
amount: '$ 330'
|
44
|
+
)
|
45
|
+
|
46
|
+
invoice = InvoicePrinter::Document.new(
|
47
|
+
number: 'NO. 198900000001',
|
48
|
+
provider_name: 'John White',
|
49
|
+
provider_lines: "79 Stonybrook St.\nBronx, NY 10457",
|
50
|
+
purchaser_name: 'Will Black',
|
51
|
+
purchaser_lines: "8648 Acacia Rd.\nBrooklyn, NY 11203",
|
52
|
+
issue_date: '05/03/2016',
|
53
|
+
due_date: '19/03/2016',
|
54
|
+
subtotal: '$ 1,000',
|
55
|
+
tax: '$ 100',
|
56
|
+
total: '$ 1,100',
|
57
|
+
bank_account_number: '156546546465',
|
58
|
+
items: [item, item2, item3],
|
59
|
+
note: 'This is a note at the end.'
|
60
|
+
)
|
61
|
+
|
62
|
+
InvoicePrinter.print(
|
63
|
+
document: invoice,
|
64
|
+
labels: labels,
|
65
|
+
stamp: File.expand_path('../stamp.png', __FILE__),
|
66
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
67
|
+
file_name: 'breakdown.pdf'
|
68
|
+
)
|
69
|
+
|
70
|
+
InvoicePrinter.print(
|
71
|
+
document: invoice,
|
72
|
+
labels: labels,
|
73
|
+
stamp: File.expand_path('../stamp.png', __FILE__),
|
74
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
75
|
+
file_name: 'breakdown_a4.pdf',
|
76
|
+
page_size: :a4
|
77
|
+
)
|
@@ -80,7 +80,7 @@ InvoicePrinter.print(
|
|
80
80
|
document: invoice,
|
81
81
|
labels: labels,
|
82
82
|
font: 'overpass',
|
83
|
-
logo: 'prawn.png',
|
83
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
84
84
|
file_name: 'international_invoice.pdf'
|
85
85
|
)
|
86
86
|
|
@@ -88,7 +88,7 @@ InvoicePrinter.print(
|
|
88
88
|
document: invoice,
|
89
89
|
labels: labels,
|
90
90
|
font: 'overpass',
|
91
|
-
logo: 'prawn.png',
|
91
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
92
92
|
file_name: 'international_invoice_a4.pdf',
|
93
93
|
page_size: :a4
|
94
94
|
)
|
data/examples/long_invoice.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
# This is an example of a
|
2
|
+
# This is an example of a longer invoice.
|
3
3
|
|
4
4
|
lib = File.expand_path('../../lib', __FILE__)
|
5
5
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
@@ -12,7 +12,7 @@ labels = {
|
|
12
12
|
item = InvoicePrinter::Document::Item.new(
|
13
13
|
name: 'Programming',
|
14
14
|
quantity: '10',
|
15
|
-
unit: '
|
15
|
+
unit: 'h',
|
16
16
|
price: '$ 60',
|
17
17
|
tax: '$ 60',
|
18
18
|
amount: '$ 600'
|
@@ -21,7 +21,7 @@ item = InvoicePrinter::Document::Item.new(
|
|
21
21
|
item2 = InvoicePrinter::Document::Item.new(
|
22
22
|
name: 'Consulting',
|
23
23
|
quantity: '10',
|
24
|
-
unit: '
|
24
|
+
unit: 'h',
|
25
25
|
price: '$ 30',
|
26
26
|
tax: '$ 30',
|
27
27
|
amount: '$ 300'
|
@@ -30,7 +30,7 @@ item2 = InvoicePrinter::Document::Item.new(
|
|
30
30
|
item3 = InvoicePrinter::Document::Item.new(
|
31
31
|
name: 'Support',
|
32
32
|
quantity: '20',
|
33
|
-
unit: '
|
33
|
+
unit: 'h',
|
34
34
|
price: '$ 15',
|
35
35
|
tax: '$ 30',
|
36
36
|
amount: '$ 330'
|
@@ -55,16 +55,16 @@ invoice = InvoicePrinter::Document.new(
|
|
55
55
|
InvoicePrinter.print(
|
56
56
|
document: invoice,
|
57
57
|
labels: labels,
|
58
|
-
stamp: 'stamp.png',
|
59
|
-
logo: 'prawn.png',
|
58
|
+
stamp: File.expand_path('../stamp.png', __FILE__),
|
59
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
60
60
|
file_name: 'long_invoice.pdf'
|
61
61
|
)
|
62
62
|
|
63
63
|
InvoicePrinter.print(
|
64
64
|
document: invoice,
|
65
65
|
labels: labels,
|
66
|
-
stamp: 'stamp.png',
|
67
|
-
logo: 'prawn.png',
|
66
|
+
stamp: File.expand_path('../stamp.png', __FILE__),
|
67
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
68
68
|
file_name: 'long_invoice_a4.pdf',
|
69
69
|
page_size: :a4
|
70
70
|
)
|
data/examples/picture.jpg
CHANGED
Binary file
|
data/examples/promo.rb
CHANGED
@@ -46,20 +46,24 @@ second_item = InvoicePrinter::Document::Item.new(
|
|
46
46
|
amount: 'Kč 9.000'
|
47
47
|
)
|
48
48
|
|
49
|
+
provider_address = <<ADDRESS
|
50
|
+
Rolnická 1
|
51
|
+
747 05 Opava
|
52
|
+
Kateřinky
|
53
|
+
ADDRESS
|
54
|
+
|
55
|
+
purchaser_address = <<ADDRESS
|
56
|
+
Ostravská 1
|
57
|
+
747 70 Opava
|
58
|
+
ADDRESS
|
59
|
+
|
49
60
|
invoice = InvoicePrinter::Document.new(
|
50
61
|
number: 'č. 198900000001',
|
51
62
|
provider_name: 'Petr Nový',
|
63
|
+
provider_lines: provider_address,
|
52
64
|
provider_tax_id: '56565656',
|
53
|
-
provider_street: 'Rolnická',
|
54
|
-
provider_street_number: '1',
|
55
|
-
provider_postcode: '747 05',
|
56
|
-
provider_city: 'Opava',
|
57
|
-
provider_city_part: 'Kateřinky',
|
58
65
|
purchaser_name: 'Adam Černý',
|
59
|
-
|
60
|
-
purchaser_street_number: '1',
|
61
|
-
purchaser_postcode: '747 70',
|
62
|
-
purchaser_city: 'Opava',
|
66
|
+
purchaser_lines: purchaser_address,
|
63
67
|
issue_date: '05/03/2016',
|
64
68
|
due_date: '19/03/2016',
|
65
69
|
subtotal: 'Kč 10.000',
|
@@ -75,16 +79,18 @@ invoice = InvoicePrinter::Document.new(
|
|
75
79
|
InvoicePrinter.print(
|
76
80
|
document: invoice,
|
77
81
|
labels: labels,
|
78
|
-
font: File.expand_path('
|
79
|
-
|
82
|
+
font: File.expand_path('../../assets/fonts/overpass/Overpass-Regular.ttf', __FILE__),
|
83
|
+
bold_font: File.expand_path('../../assets/fonts/overpass/Overpass-Bold.ttf', __FILE__),
|
84
|
+
logo: File.expand_path('../logo.png', __FILE__),
|
80
85
|
file_name: 'promo.pdf'
|
81
86
|
)
|
82
87
|
|
83
88
|
InvoicePrinter.print(
|
84
89
|
document: invoice,
|
85
90
|
labels: labels,
|
86
|
-
font: File.expand_path('
|
87
|
-
|
91
|
+
font: File.expand_path('../../assets/fonts/overpass/Overpass-Regular.ttf', __FILE__),
|
92
|
+
bold_font: File.expand_path('../../assets/fonts/overpass/Overpass-Bold.ttf', __FILE__),
|
93
|
+
logo: File.expand_path('../logo.png', __FILE__),
|
88
94
|
file_name: 'promo_a4.pdf',
|
89
95
|
page_size: :a4
|
90
96
|
)
|
@@ -47,7 +47,8 @@ Rolnická 1
|
|
47
47
|
747 05 Opava
|
48
48
|
Kateřinky
|
49
49
|
|
50
|
-
|
50
|
+
|
51
|
+
6th line wont show
|
51
52
|
ADDRESS
|
52
53
|
|
53
54
|
purchaser_address = <<ADDRESS
|
@@ -55,8 +56,7 @@ Ostravská 1
|
|
55
56
|
747 70 Opava
|
56
57
|
|
57
58
|
|
58
|
-
|
59
|
-
fith line wont show
|
59
|
+
6th line wont show
|
60
60
|
ADDRESS
|
61
61
|
|
62
62
|
invoice = InvoicePrinter::Document.new(
|
@@ -64,20 +64,11 @@ invoice = InvoicePrinter::Document.new(
|
|
64
64
|
provider_name: 'Petr Nový',
|
65
65
|
provider_tax_id: '56565656',
|
66
66
|
provider_tax_id2: 'CZ56565656',
|
67
|
-
provider_street: 'Rolnická',
|
68
|
-
provider_street_number: '1',
|
69
|
-
provider_postcode: '747 05',
|
70
|
-
provider_city: 'Opava',
|
71
|
-
provider_city_part: 'Kateřinky',
|
72
67
|
provider_lines: provider_address,
|
73
68
|
purchaser_name: 'Adam Černý',
|
74
|
-
purchaser_street: 'Ostravská',
|
75
|
-
purchaser_street_number: '1',
|
76
|
-
purchaser_postcode: '747 70',
|
77
|
-
purchaser_city: 'Opava',
|
78
|
-
purchaser_lines: purchaser_address,
|
79
69
|
purchaser_tax_id: '56565656',
|
80
70
|
purchaser_tax_id2: 'CZ56565656',
|
71
|
+
purchaser_lines: purchaser_address,
|
81
72
|
issue_date: '05/03/2016',
|
82
73
|
due_date: '19/03/2016',
|
83
74
|
subtotal: 'Kč 10.000',
|
@@ -94,7 +85,7 @@ InvoicePrinter.print(
|
|
94
85
|
document: invoice,
|
95
86
|
labels: labels,
|
96
87
|
font: 'overpass',
|
97
|
-
logo: 'prawn.png',
|
88
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
98
89
|
file_name: 'provider_purchaser_lines.pdf'
|
99
90
|
)
|
100
91
|
|
@@ -102,7 +93,7 @@ InvoicePrinter.print(
|
|
102
93
|
document: invoice,
|
103
94
|
labels: labels,
|
104
95
|
font: 'overpass',
|
105
|
-
logo: 'prawn.png',
|
96
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
106
97
|
file_name: 'provider_purchaser_lines_a4.pdf',
|
107
98
|
page_size: :a4
|
108
99
|
)
|
data/examples/simple_invoice.rb
CHANGED
@@ -5,6 +5,16 @@ lib = File.expand_path('../../lib', __FILE__)
|
|
5
5
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
6
6
|
require 'invoice_printer'
|
7
7
|
|
8
|
+
provider_address = <<ADDRESS
|
9
|
+
5th Avenue
|
10
|
+
747 05 NYC
|
11
|
+
ADDRESS
|
12
|
+
|
13
|
+
purchaser_address = <<ADDRESS
|
14
|
+
7th Avenue
|
15
|
+
747 70 NYC
|
16
|
+
ADDRESS
|
17
|
+
|
8
18
|
item = InvoicePrinter::Document::Item.new(
|
9
19
|
name: 'Programming',
|
10
20
|
quantity: '10',
|
@@ -16,36 +26,25 @@ item = InvoicePrinter::Document::Item.new(
|
|
16
26
|
invoice = InvoicePrinter::Document.new(
|
17
27
|
number: 'NO. 198900000001',
|
18
28
|
provider_name: 'John White',
|
19
|
-
|
20
|
-
|
21
|
-
provider_street: '5th Avenue',
|
22
|
-
provider_street_number: '1',
|
23
|
-
provider_postcode: '747 05',
|
24
|
-
provider_city: 'NYC',
|
25
|
-
purchaser_name: 'Will Black',
|
26
|
-
# Deprecated 1.3 API, use purchaser_lines
|
27
|
-
# Here for compatibility test
|
28
|
-
purchaser_street: '7th Avenue',
|
29
|
-
purchaser_street_number: '1',
|
30
|
-
purchaser_postcode: '747 70',
|
31
|
-
purchaser_city: 'NYC',
|
29
|
+
provider_lines: provider_address,
|
30
|
+
purchaser_lines: purchaser_address,
|
32
31
|
issue_date: '05/03/2016',
|
33
32
|
due_date: '19/03/2016',
|
34
33
|
total: '$ 900',
|
35
34
|
bank_account_number: '156546546465',
|
36
35
|
items: [item],
|
37
|
-
note:
|
36
|
+
note: "This is a note at the end.\nA note with two lines."
|
38
37
|
)
|
39
38
|
|
40
39
|
InvoicePrinter.print(
|
41
40
|
document: invoice,
|
42
|
-
logo: 'prawn.png',
|
41
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
43
42
|
file_name: 'simple_invoice.pdf'
|
44
43
|
)
|
45
44
|
|
46
45
|
InvoicePrinter.print(
|
47
46
|
document: invoice,
|
48
|
-
logo: 'prawn.png',
|
47
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
49
48
|
file_name: 'simple_invoice_a4.pdf',
|
50
49
|
page_size: :a4
|
51
50
|
)
|
@@ -0,0 +1,96 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This is an example of a international invoice with Czech labels and English translation.
|
3
|
+
|
4
|
+
lib = File.expand_path('../../lib', __FILE__)
|
5
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
6
|
+
require 'invoice_printer'
|
7
|
+
|
8
|
+
labels = {
|
9
|
+
name: 'Faktura',
|
10
|
+
provider: 'Prodejce',
|
11
|
+
purchaser: 'Kupující',
|
12
|
+
tax_id: 'IČ',
|
13
|
+
tax_id2: 'DIČ',
|
14
|
+
payment: 'Forma úhrady',
|
15
|
+
payment_by_transfer: 'Platba na následující účet:',
|
16
|
+
account_number: 'Číslo účtu',
|
17
|
+
issue_date: 'Datum vydání',
|
18
|
+
due_date: 'Datum splatnosti',
|
19
|
+
variable_field: 'Variabilní symbol',
|
20
|
+
item: 'Položka',
|
21
|
+
quantity: 'Počet',
|
22
|
+
unit: 'MJ',
|
23
|
+
price_per_item: 'Cena za položku',
|
24
|
+
amount: 'Celkem bez daně',
|
25
|
+
subtotal: 'Cena bez daně',
|
26
|
+
tax: 'DPH 21 %',
|
27
|
+
total: 'Celkem'
|
28
|
+
}
|
29
|
+
|
30
|
+
# Default English labels as sublabels
|
31
|
+
sublabels = InvoicePrinter::PDFDocument::DEFAULT_LABELS
|
32
|
+
labels.merge!({ sublabels: sublabels })
|
33
|
+
|
34
|
+
first_item = InvoicePrinter::Document::Item.new(
|
35
|
+
name: 'Konzultace',
|
36
|
+
quantity: '2',
|
37
|
+
unit: 'hod',
|
38
|
+
price: 'Kč 500',
|
39
|
+
amount: 'Kč 1.000'
|
40
|
+
)
|
41
|
+
|
42
|
+
second_item = InvoicePrinter::Document::Item.new(
|
43
|
+
name: 'Programování',
|
44
|
+
quantity: '10',
|
45
|
+
unit: 'hod',
|
46
|
+
price: 'Kč 900',
|
47
|
+
amount: 'Kč 9.000'
|
48
|
+
)
|
49
|
+
|
50
|
+
provider_address = <<ADDRESS
|
51
|
+
Rolnická 1
|
52
|
+
747 05 Opava
|
53
|
+
Kateřinky
|
54
|
+
ADDRESS
|
55
|
+
|
56
|
+
purchaser_address = <<ADDRESS
|
57
|
+
8648 Acacia Rd.
|
58
|
+
Brooklyn, NY 11203
|
59
|
+
ADDRESS
|
60
|
+
|
61
|
+
invoice = InvoicePrinter::Document.new(
|
62
|
+
number: 'č. 198900000001',
|
63
|
+
provider_name: 'Petr Nový',
|
64
|
+
provider_lines: provider_address,
|
65
|
+
provider_tax_id: '56565656',
|
66
|
+
purchaser_name: 'Adam Black',
|
67
|
+
purchaser_lines: purchaser_address,
|
68
|
+
issue_date: '05/03/2016',
|
69
|
+
due_date: '19/03/2016',
|
70
|
+
variable_symbol: 'VS198900000001',
|
71
|
+
subtotal: 'Kč 10.000',
|
72
|
+
tax: 'Kč 2.100',
|
73
|
+
total: 'Kč 12.100,-',
|
74
|
+
bank_account_number: '156546546465',
|
75
|
+
account_iban: 'IBAN464545645',
|
76
|
+
account_swift: 'SWIFT5456',
|
77
|
+
items: [first_item, second_item],
|
78
|
+
note: 'Osoba je zapsána v živnostenském rejstříku.'
|
79
|
+
)
|
80
|
+
|
81
|
+
InvoicePrinter.print(
|
82
|
+
document: invoice,
|
83
|
+
labels: labels,
|
84
|
+
font: 'overpass',
|
85
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
86
|
+
file_name: 'variable_field_invoice.pdf'
|
87
|
+
)
|
88
|
+
|
89
|
+
InvoicePrinter.print(
|
90
|
+
document: invoice,
|
91
|
+
labels: labels,
|
92
|
+
font: 'overpass',
|
93
|
+
logo: File.expand_path('../prawn.png', __FILE__),
|
94
|
+
file_name: 'variable_field_invoice_a4.pdf',
|
95
|
+
page_size: :a4
|
96
|
+
)
|