forked from angelodlfrtr/go-invoice-generator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
77 lines (64 loc) · 1.63 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package main
import (
"io/ioutil"
"os"
generator "github.com/angelodlfrtr/go-invoice-generator"
"github.com/go-pdf/fpdf"
)
func main() {
doc, _ := generator.New(generator.Invoice, &generator.Options{
CurrencySymbol: "Ţ",
BoldFont: "Roboto",
Font: "Roboto",
})
// Set up translator
func() {
trReader, _ := os.Open("./iso-8859-2.map")
unicodeTranslator, _ := fpdf.UnicodeTranslator(trReader)
doc.SetUnicodeTranslator(unicodeTranslator)
}()
func() {
pdf := doc.Pdf()
// Bold
jsonBytes, _ := ioutil.ReadFile("./Roboto-Bold.json")
zBytes, _ := ioutil.ReadFile("./Roboto-Bold.z")
pdf.AddFontFromBytes("Roboto", "B", jsonBytes, zBytes)
// Regular
jsonBytes, _ = ioutil.ReadFile("././Roboto-Regular.json")
zBytes, _ = ioutil.ReadFile("./Roboto-Regular.z")
pdf.AddFontFromBytes("Roboto", "", jsonBytes, zBytes)
}()
// Set header
doc.SetHeader(&generator.HeaderFooter{
Text: "<center>şţăîâ ŞŢĂÎÂ</center>",
Pagination: true,
})
doc.SetRef("one")
doc.SetDescription("Hello, world şţăîâ ŞŢĂÎÂ")
doc.SetCompany(&generator.Contact{
Name: "şţăîâ",
Address: &generator.Address{
Address: "89 Rue de Brest",
Address2: "Appartement 2",
PostalCode: "75000",
City: "Paris",
Country: "France",
},
})
doc.SetCustomer(&generator.Contact{
Name: "şţăîâ",
Address: &generator.Address{
Address: "89 Rue de Paris",
PostalCode: "29200",
City: "Brest",
Country: "France",
},
})
pdf, err := doc.Build()
if err != nil {
panic(err)
}
if err := pdf.OutputFileAndClose("out.pdf"); err != nil {
panic(err)
}
}