Module: InvoicePrinter
- Defined in:
- lib/invoice_printer.rb,
lib/invoice_printer/version.rb,
lib/invoice_printer/document.rb,
lib/invoice_printer/pdf_document.rb,
lib/invoice_printer/document/item.rb
Overview
Create PDF versions of invoices or receipts using Prawn
Example:
invoice = InvoicePrinter::Document.new(...)
InvoicePrinter.print(
document: invoice,
font: 'path-to-font-file.ttf',
bold_font: 'path-to-font-file.ttf',
stamp: 'stamp.jpg',
logo: 'logo.jpg',
file_name: 'invoice.pdf'
)
Defined Under Namespace
Classes: Document, PDFDocument
Constant Summary collapse
- VERSION =
'2.3.0'
Class Method Summary collapse
- .labels ⇒ Object
-
.labels=(labels) ⇒ Object
Override default English labels with a given hash.
-
.print(document:, labels: {}, font: nil, bold_font: nil, stamp: nil, logo: nil, background: nil, page_size: :letter, file_name:) ⇒ Object
Print the given InvoicePrinter::Document to PDF file named
file_name
. -
.render(document:, labels: {}, font: nil, bold_font: nil, stamp: nil, logo: nil, background: nil, page_size: :letter) ⇒ Object
Render the PDF document InvoicePrinter::Document to PDF directly.
Class Method Details
.labels ⇒ Object
60 61 62 |
# File 'lib/invoice_printer.rb', line 60 def self.labels PDFDocument.labels end |
.labels=(labels) ⇒ Object
Override default English labels with a given hash
Example:
InvoicePrinter.labels = {
name: 'Invoice',
number: '201604030001'
provider: 'Provider',
purchaser: 'Purchaser',
payment: 'Payment',
payment_by_transfer: 'Payment by bank transfer on the account below:',
payment_in_cash: 'Payment in cash',
account_number: 'Account NO:',
swift: 'SWIFT:',
iban: 'IBAN:',
issue_date: 'Issue date:',
due_date: 'Due date:',
variable_symbol: 'Variable symbol:'
item: 'Item',
quantity: 'Quantity',
unit: 'Unit',
price_per_item: 'Price per item',
amount: 'Amount'
}
You can denote the details or translations of labels by using sublabels. To set a sublabel for a label, just assign it under sublabels
e.g.
InvoicePrinter.labels = {
...
sublabels: { tax: 'Daň', amount: 'Celkem' }
}
56 57 58 |
# File 'lib/invoice_printer.rb', line 56 def self.labels=(labels) PDFDocument.labels = labels end |
.print(document:, labels: {}, font: nil, bold_font: nil, stamp: nil, logo: nil, background: nil, page_size: :letter, file_name:) ⇒ Object
Print the given InvoicePrinter::Document to PDF file named file_name
document - InvoicePrinter::Document object labels - labels to override font - font file to use bold_font - bold font file to use stamp - stamp & signature (image) logo - logotype (image) background - background (image) page_size - :letter or :a4 file_name - output file
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/invoice_printer.rb', line 75 def self.print( document:, labels: {}, font: nil, bold_font: nil, stamp: nil, logo: nil, background: nil, page_size: :letter, file_name: ) PDFDocument.new( document: document, labels: labels, font: font, bold_font: bold_font, stamp: stamp, logo: logo, background: background, page_size: page_size ).print(file_name) end |
.render(document:, labels: {}, font: nil, bold_font: nil, stamp: nil, logo: nil, background: nil, page_size: :letter) ⇒ Object
Render the PDF document InvoicePrinter::Document to PDF directly
document - InvoicePrinter::Document object labels - labels to override font - font file to use bold_font - bold font file to use stamp - stamp & signature (image) logo - logotype (image) background - background (image) page_size - :letter or :a4
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/invoice_printer.rb', line 108 def self.render( document:, labels: {}, font: nil, bold_font: nil, stamp: nil, logo: nil, background: nil, page_size: :letter ) PDFDocument.new( document: document, labels: labels, font: font, bold_font: bold_font, stamp: stamp, logo: logo, background: background, page_size: page_size ).render end |