Skip to content

Commit

Permalink
Work on encoding
Browse files Browse the repository at this point in the history
  • Loading branch information
angelodlfrtr committed Apr 12, 2022
1 parent 5b02664 commit ebf1970
Show file tree
Hide file tree
Showing 18 changed files with 471 additions and 108 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ tags

# End of https://www.gitignore.io/api/go,osx,vim

/out.pdf
out.pdf
5 changes: 1 addition & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
lint:
find . -name "*.go" | xargs misspell -error
golint -set_exit_status ./...
go vet ./...
staticcheck ./...
golangci-lint run

test:
go test -count 1 ./...
Expand Down
2 changes: 1 addition & 1 deletion address.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ type Address struct {
// ToString output address as string
// Line break are added for new lines
func (a *Address) ToString() string {
var addrString string = a.Address
addrString := a.Address

if len(a.Address2) > 0 {
addrString += "\n"
Expand Down
80 changes: 40 additions & 40 deletions build.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func (doc *Document) Build() (*gofpdf.Fpdf, error) {
doc.pdf.AddPage()

// Load font
doc.pdf.SetFont("Helvetica", "", 12)
doc.pdf.SetFont(doc.Options.Font, "", 12)

// Appenf document title
doc.appendTitle()
Expand Down Expand Up @@ -112,24 +112,24 @@ func (doc *Document) appendTitle() {
doc.pdf.Rect(120, BaseMarginTop, 80, 10, "F")

// Draw text
doc.pdf.SetFont("Helvetica", "", 14)
doc.pdf.CellFormat(80, 10, encodeString(title), "0", 0, "C", false, 0, "")
doc.pdf.SetFont(doc.Options.Font, "", 14)
doc.pdf.CellFormat(80, 10, doc.encodeString(title), "0", 0, "C", false, 0, "")
}

func (doc *Document) appendMetas() {
// Append ref
refString := fmt.Sprintf("%s: %s", doc.Options.TextRefTitle, doc.Ref)

doc.pdf.SetXY(120, BaseMarginTop+11)
doc.pdf.SetFont("Helvetica", "", 8)
doc.pdf.CellFormat(80, 4, encodeString(refString), "0", 0, "R", false, 0, "")
doc.pdf.SetFont(doc.Options.Font, "", 8)
doc.pdf.CellFormat(80, 4, doc.encodeString(refString), "0", 0, "R", false, 0, "")

// Append version
if len(doc.Version) > 0 {
versionString := fmt.Sprintf("%s: %s", doc.Options.TextVersionTitle, doc.Version)
doc.pdf.SetXY(120, BaseMarginTop+15)
doc.pdf.SetFont("Helvetica", "", 8)
doc.pdf.CellFormat(80, 4, encodeString(versionString), "0", 0, "R", false, 0, "")
doc.pdf.SetFont(doc.Options.Font, "", 8)
doc.pdf.CellFormat(80, 4, doc.encodeString(versionString), "0", 0, "R", false, 0, "")
}

// Append date
Expand All @@ -139,23 +139,23 @@ func (doc *Document) appendMetas() {
}
dateString := fmt.Sprintf("%s: %s", doc.Options.TextDateTitle, date)
doc.pdf.SetXY(120, BaseMarginTop+19)
doc.pdf.SetFont("Helvetica", "", 8)
doc.pdf.CellFormat(80, 4, encodeString(dateString), "0", 0, "R", false, 0, "")
doc.pdf.SetFont(doc.Options.Font, "", 8)
doc.pdf.CellFormat(80, 4, doc.encodeString(dateString), "0", 0, "R", false, 0, "")
}

func (doc *Document) appendDescription() {
if len(doc.Description) > 0 {
doc.pdf.SetY(doc.pdf.GetY() + 10)
doc.pdf.SetFont("Helvetica", "", 10)
doc.pdf.MultiCell(190, 5, encodeString(doc.Description), "B", "L", false)
doc.pdf.SetFont(doc.Options.Font, "", 10)
doc.pdf.MultiCell(190, 5, doc.encodeString(doc.Description), "B", "L", false)
}
}

func (doc *Document) drawsTableTitles() {
// Draw table titles
doc.pdf.SetX(10)
doc.pdf.SetY(doc.pdf.GetY() + 5)
doc.pdf.SetFont("Helvetica", "B", 8)
doc.pdf.SetFont(doc.Options.BoldFont, "B", 8)

// Draw rec
doc.pdf.SetFillColor(doc.Options.GreyBgColor[0], doc.Options.GreyBgColor[1], doc.Options.GreyBgColor[2])
Expand All @@ -166,7 +166,7 @@ func (doc *Document) drawsTableTitles() {
doc.pdf.CellFormat(
ItemColUnitPriceOffset-ItemColNameOffset,
6,
encodeString(doc.Options.TextItemsNameTitle),
doc.encodeString(doc.Options.TextItemsNameTitle),
"0",
0,
"",
Expand All @@ -180,7 +180,7 @@ func (doc *Document) drawsTableTitles() {
doc.pdf.CellFormat(
ItemColQuantityOffset-ItemColUnitPriceOffset,
6,
encodeString(doc.Options.TextItemsUnitCostTitle),
doc.encodeString(doc.Options.TextItemsUnitCostTitle),
"0",
0,
"",
Expand All @@ -194,7 +194,7 @@ func (doc *Document) drawsTableTitles() {
doc.pdf.CellFormat(
ItemColTaxOffset-ItemColQuantityOffset,
6,
encodeString(doc.Options.TextItemsQuantityTitle),
doc.encodeString(doc.Options.TextItemsQuantityTitle),
"0",
0,
"",
Expand All @@ -208,7 +208,7 @@ func (doc *Document) drawsTableTitles() {
doc.pdf.CellFormat(
ItemColTaxOffset-ItemColTotalHTOffset,
6,
encodeString(doc.Options.TextItemsTotalHTTitle),
doc.encodeString(doc.Options.TextItemsTotalHTTitle),
"0",
0,
"",
Expand All @@ -222,7 +222,7 @@ func (doc *Document) drawsTableTitles() {
doc.pdf.CellFormat(
ItemColDiscountOffset-ItemColTaxOffset,
6,
encodeString(doc.Options.TextItemsTaxTitle),
doc.encodeString(doc.Options.TextItemsTaxTitle),
"0",
0,
"",
Expand All @@ -236,7 +236,7 @@ func (doc *Document) drawsTableTitles() {
doc.pdf.CellFormat(
ItemColTotalTTCOffset-ItemColDiscountOffset,
6,
encodeString(doc.Options.TextItemsDiscountTitle),
doc.encodeString(doc.Options.TextItemsDiscountTitle),
"0",
0,
"",
Expand All @@ -250,7 +250,7 @@ func (doc *Document) drawsTableTitles() {
doc.pdf.CellFormat(
190-ItemColTotalTTCOffset,
6,
encodeString(doc.Options.TextItemsTotalTTCTitle),
doc.encodeString(doc.Options.TextItemsTotalTTCTitle),
"0",
0,
"",
Expand All @@ -265,7 +265,7 @@ func (doc *Document) appendItems() {

doc.pdf.SetX(10)
doc.pdf.SetY(doc.pdf.GetY() + 8)
doc.pdf.SetFont("Helvetica", "", 8)
doc.pdf.SetFont(doc.Options.Font, "", 8)

for i := 0; i < len(doc.Items); i++ {
item := doc.Items[i]
Expand All @@ -282,7 +282,7 @@ func (doc *Document) appendItems() {
// Add page
doc.pdf.AddPage()
doc.drawsTableTitles()
doc.pdf.SetFont("Helvetica", "", 8)
doc.pdf.SetFont(doc.Options.Font, "", 8)
}

doc.pdf.SetX(10)
Expand All @@ -297,22 +297,22 @@ func (doc *Document) appendNotes() {

currentY := doc.pdf.GetY()

doc.pdf.SetFont("Helvetica", "", 9)
doc.pdf.SetFont(doc.Options.Font, "", 9)
doc.pdf.SetX(BaseMargin)
doc.pdf.SetRightMargin(100)
doc.pdf.SetY(currentY + 10)

_, lineHt := doc.pdf.GetFontSize()
html := doc.pdf.HTMLBasicNew()
html.Write(lineHt, encodeString(doc.Notes))
html.Write(lineHt, doc.encodeString(doc.Notes))

doc.pdf.SetRightMargin(BaseMargin)
doc.pdf.SetY(currentY)
}

func (doc *Document) appendTotal() {
ac := accounting.Accounting{
Symbol: encodeString(doc.Options.CurrencySymbol),
Symbol: doc.Options.CurrencySymbol,
Precision: doc.Options.CurrencyPrecision,
Thousand: doc.Options.CurrencyThousand,
Decimal: doc.Options.CurrencyDecimal,
Expand Down Expand Up @@ -381,7 +381,7 @@ func (doc *Document) appendTotal() {
}

doc.pdf.SetY(doc.pdf.GetY() + 10)
doc.pdf.SetFont("Helvetica", "", LargeTextFontSize)
doc.pdf.SetFont(doc.Options.Font, "", LargeTextFontSize)
doc.pdf.SetTextColor(
doc.Options.BaseTextColor[0],
doc.Options.BaseTextColor[1],
Expand All @@ -392,13 +392,13 @@ func (doc *Document) appendTotal() {
doc.pdf.SetX(120)
doc.pdf.SetFillColor(doc.Options.DarkBgColor[0], doc.Options.DarkBgColor[1], doc.Options.DarkBgColor[2])
doc.pdf.Rect(120, doc.pdf.GetY(), 40, 10, "F")
doc.pdf.CellFormat(38, 10, encodeString(doc.Options.TextTotalTotal), "0", 0, "R", false, 0, "")
doc.pdf.CellFormat(38, 10, doc.encodeString(doc.Options.TextTotalTotal), "0", 0, "R", false, 0, "")

// Draw TOTAL HT amount
doc.pdf.SetX(162)
doc.pdf.SetFillColor(doc.Options.GreyBgColor[0], doc.Options.GreyBgColor[1], doc.Options.GreyBgColor[2])
doc.pdf.Rect(160, doc.pdf.GetY(), 40, 10, "F")
doc.pdf.CellFormat(40, 10, ac.FormatMoneyDecimal(total), "0", 0, "L", false, 0, "")
doc.pdf.CellFormat(40, 10, doc.encodeString(ac.FormatMoneyDecimal(total)), "0", 0, "L", false, 0, "")

if doc.Discount != nil {
baseY := doc.pdf.GetY() + 10
Expand All @@ -409,11 +409,11 @@ func (doc *Document) appendTotal() {
doc.pdf.Rect(120, doc.pdf.GetY(), 40, 15, "F")

// title
doc.pdf.CellFormat(38, 7.5, encodeString(doc.Options.TextTotalDiscounted), "0", 0, "BR", false, 0, "")
doc.pdf.CellFormat(38, 7.5, doc.encodeString(doc.Options.TextTotalDiscounted), "0", 0, "BR", false, 0, "")

// description
doc.pdf.SetXY(120, baseY+7.5)
doc.pdf.SetFont("Helvetica", "", BaseTextFontSize)
doc.pdf.SetFont(doc.Options.Font, "", BaseTextFontSize)
doc.pdf.SetTextColor(
doc.Options.GreyTextColor[0],
doc.Options.GreyTextColor[1],
Expand All @@ -437,9 +437,9 @@ func (doc *Document) appendTotal() {
descString.WriteString(" %")
}

doc.pdf.CellFormat(38, 7.5, descString.String(), "0", 0, "TR", false, 0, "")
doc.pdf.CellFormat(38, 7.5, doc.encodeString(descString.String()), "0", 0, "TR", false, 0, "")

doc.pdf.SetFont("Helvetica", "", LargeTextFontSize)
doc.pdf.SetFont(doc.Options.Font, "", LargeTextFontSize)
doc.pdf.SetTextColor(
doc.Options.BaseTextColor[0],
doc.Options.BaseTextColor[1],
Expand All @@ -451,7 +451,7 @@ func (doc *Document) appendTotal() {
doc.pdf.SetX(162)
doc.pdf.SetFillColor(doc.Options.GreyBgColor[0], doc.Options.GreyBgColor[1], doc.Options.GreyBgColor[2])
doc.pdf.Rect(160, doc.pdf.GetY(), 40, 15, "F")
doc.pdf.CellFormat(40, 15, ac.FormatMoneyDecimal(totalWithDiscount), "0", 0, "L", false, 0, "")
doc.pdf.CellFormat(40, 15, doc.encodeString(ac.FormatMoneyDecimal(totalWithDiscount)), "0", 0, "L", false, 0, "")
doc.pdf.SetY(doc.pdf.GetY() + 15)
} else {
doc.pdf.SetY(doc.pdf.GetY() + 10)
Expand All @@ -461,39 +461,39 @@ func (doc *Document) appendTotal() {
doc.pdf.SetX(120)
doc.pdf.SetFillColor(doc.Options.DarkBgColor[0], doc.Options.DarkBgColor[1], doc.Options.DarkBgColor[2])
doc.pdf.Rect(120, doc.pdf.GetY(), 40, 10, "F")
doc.pdf.CellFormat(38, 10, encodeString(doc.Options.TextTotalTax), "0", 0, "R", false, 0, "")
doc.pdf.CellFormat(38, 10, doc.encodeString(doc.Options.TextTotalTax), "0", 0, "R", false, 0, "")

// Draw TAX amount
doc.pdf.SetX(162)
doc.pdf.SetFillColor(doc.Options.GreyBgColor[0], doc.Options.GreyBgColor[1], doc.Options.GreyBgColor[2])
doc.pdf.Rect(160, doc.pdf.GetY(), 40, 10, "F")
doc.pdf.CellFormat(40, 10, ac.FormatMoneyDecimal(totalTax), "0", 0, "L", false, 0, "")
doc.pdf.CellFormat(40, 10, doc.encodeString(ac.FormatMoneyDecimal(totalTax)), "0", 0, "L", false, 0, "")

// Draw TOTAL TTC title
doc.pdf.SetY(doc.pdf.GetY() + 10)
doc.pdf.SetX(120)
doc.pdf.SetFillColor(doc.Options.DarkBgColor[0], doc.Options.DarkBgColor[1], doc.Options.DarkBgColor[2])
doc.pdf.Rect(120, doc.pdf.GetY(), 40, 10, "F")
doc.pdf.CellFormat(38, 10, encodeString(doc.Options.TextTotalWithTax), "0", 0, "R", false, 0, "")
doc.pdf.CellFormat(38, 10, doc.encodeString(doc.Options.TextTotalWithTax), "0", 0, "R", false, 0, "")

// Draw TOTAL TTC amount
doc.pdf.SetX(162)
doc.pdf.SetFillColor(doc.Options.GreyBgColor[0], doc.Options.GreyBgColor[1], doc.Options.GreyBgColor[2])
doc.pdf.Rect(160, doc.pdf.GetY(), 40, 10, "F")
doc.pdf.CellFormat(40, 10, ac.FormatMoneyDecimal(totalWithTax), "0", 0, "L", false, 0, "")
doc.pdf.CellFormat(40, 10, doc.encodeString(ac.FormatMoneyDecimal(totalWithTax)), "0", 0, "L", false, 0, "")
}

func (doc *Document) appendPaymentTerm() {
if len(doc.PaymentTerm) > 0 {
paymentTermString := fmt.Sprintf(
"%s: %s",
encodeString(doc.Options.TextPaymentTermTitle),
encodeString(doc.PaymentTerm),
doc.encodeString(doc.Options.TextPaymentTermTitle),
doc.encodeString(doc.PaymentTerm),
)
doc.pdf.SetY(doc.pdf.GetY() + 15)

doc.pdf.SetX(120)
doc.pdf.SetFont("Helvetica", "B", 10)
doc.pdf.CellFormat(80, 4, paymentTermString, "0", 0, "R", false, 0, "")
doc.pdf.SetFont(doc.Options.BoldFont, "B", 10)
doc.pdf.CellFormat(80, 4, doc.encodeString(paymentTermString), "0", 0, "R", false, 0, "")
}
}
15 changes: 8 additions & 7 deletions contact.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,13 @@ func (c *Contact) appendContactTODoc(
if c.Logo != nil {
// Create filename
fileName := b64.StdEncoding.EncodeToString([]byte(c.Name))

// Create reader from logo bytes
ioReader := bytes.NewReader(*c.Logo)

// Get image format
_, format, _ := image.DecodeConfig(bytes.NewReader(*c.Logo))

// Register image in pdf
imageInfo := doc.pdf.RegisterImageOptionsReader(fileName, gofpdf.ImageOptions{
ImageType: format,
Expand All @@ -40,9 +43,7 @@ func (c *Contact) appendContactTODoc(
if imageInfo != nil {
var imageOpt gofpdf.ImageOptions
imageOpt.ImageType = format

doc.pdf.ImageOptions(fileName, doc.pdf.GetX(), y, 0, 30, false, imageOpt, 0, "")

doc.pdf.SetY(y + 30)
}
}
Expand All @@ -65,9 +66,9 @@ func (c *Contact) appendContactTODoc(
doc.pdf.Rect(x, doc.pdf.GetY(), 70, 8, "F")

// Set name
doc.pdf.SetFont("Helvetica", "B", 10)
doc.pdf.Cell(40, 8, c.Name)
doc.pdf.SetFont("Helvetica", "", 10)
doc.pdf.SetFont(doc.Options.BoldFont, "B", 10)
doc.pdf.Cell(40, 8, doc.encodeString(c.Name))
doc.pdf.SetFont(doc.Options.Font, "", 10)

if c.Address != nil {
// Address rect
Expand All @@ -84,9 +85,9 @@ func (c *Contact) appendContactTODoc(
doc.pdf.Rect(x, doc.pdf.GetY()+9, 70, addrRectHeight, "F")

// Set address
doc.pdf.SetFont("Helvetica", "", 10)
doc.pdf.SetFont(doc.Options.Font, "", 10)
doc.pdf.SetXY(x, doc.pdf.GetY()+10)
doc.pdf.MultiCell(70, 5, c.Address.ToString(), "0", "L", false)
doc.pdf.MultiCell(70, 5, doc.encodeString(c.Address.ToString()), "0", "L", false)
}

return doc.pdf.GetY()
Expand Down
27 changes: 27 additions & 0 deletions document.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,30 @@ type Document struct {
DefaultTax *Tax `json:"default_tax,omitempty"`
Discount *Discount `json:"discount,omitempty"`
}

// Pdf returns the underlying *gofpdf.Fpdf used to build document
func (doc *Document) Pdf() *gofpdf.Fpdf {
return doc.pdf
}

// SetUnicodeTranslator to use
// See https://pkg.go.dev/github.com/jung-kurt/gofpdf#UnicodeTranslator
func (doc *Document) SetUnicodeTranslator(fn UnicodeTranslateFunc) {
doc.Options.UnicodeTranslateFunc = fn
}

func (doc *Document) encodeString(str string) string {
return doc.Options.UnicodeTranslateFunc(str)
}

func (d *Document) typeAsString() string {
if d.Type == Invoice {
return d.Options.TextTypeInvoice
}

if d.Type == Quotation {
return d.Options.TextTypeQuotation
}

return d.Options.TextTypeDeliveryNote
}
1 change: 1 addition & 0 deletions examples/iso_8859_2_cp/Roboto-Bold.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"Tp":"TrueType","Name":"Roboto-Bold","Desc":{"Ascent":750,"Descent":-250,"CapHeight":711,"Flags":32,"FontBBox":{"Xmin":-727,"Ymin":-271,"Xmax":1191,"Ymax":1056},"ItalicAngle":0,"StemV":120,"MissingWidth":443},"Up":-73,"Ut":49,"Cw":[443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,249,272,321,596,574,738,656,162,351,353,453,546,244,388,291,374,574,574,574,574,574,574,574,574,574,574,282,262,509,572,517,498,895,673,638,654,650,563,548,681,707,292,559,635,542,876,706,690,645,690,638,615,619,658,654,875,635,618,606,278,422,278,437,446,331,536,563,521,563,541,358,571,560,265,260,534,265,866,560,565,563,565,365,514,338,560,505,735,509,502,509,330,253,330,648,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,249,673,444,558,692,542,615,628,467,615,615,619,606,388,606,606,388,536,301,306,332,338,514,471,268,514,514,357,509,410,509,509,638,673,673,673,673,542,654,654,654,563,563,563,563,292,292,650,665,706,706,690,690,690,690,531,638,658,658,658,658,618,619,631,365,536,536,536,536,265,521,521,521,541,541,541,541,274,274,637,630,560,560,565,565,565,565,570,365,560,560,560,560,502,338,265],"Enc":"iso-8859-2","Diff":"128 /.notdef 130 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 142 /.notdef 145 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 158 /.notdef /.notdef 161 /Aogonek /breve /Lslash 165 /Lcaron /Sacute 169 /Scaron /Scedilla /Tcaron /Zacute 174 /Zcaron /Zdotaccent 177 /aogonek /ogonek /lslash 181 /lcaron /sacute /caron 185 /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent /Racute 195 /Abreve 197 /Lacute /Cacute 200 /Ccaron 202 /Eogonek 204 /Ecaron 207 /Dcaron /Dcroat /Nacute /Ncaron 213 /Ohungarumlaut 216 /Rcaron /Uring 219 /Uhungarumlaut 222 /Tcommaaccent 224 /racute 227 /abreve 229 /lacute /cacute 232 /ccaron 234 /eogonek 236 /ecaron 239 /dcaron /dcroat /nacute /ncaron 245 /ohungarumlaut 248 /rcaron /uring 251 /uhungarumlaut 254 /tcommaaccent /dotaccent","File":"Roboto-Bold.z","Size1":0,"Size2":0,"OriginalSize":167336,"N":0,"DiffN":0}
Binary file added examples/iso_8859_2_cp/Roboto-Bold.z
Binary file not shown.
1 change: 1 addition & 0 deletions examples/iso_8859_2_cp/Roboto-Regular.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"Tp":"TrueType","Name":"Roboto-Regular","Desc":{"Ascent":750,"Descent":-250,"CapHeight":711,"Flags":32,"FontBBox":{"Xmin":-737,"Ymin":-271,"Xmax":1148,"Ymax":1056},"ItalicAngle":0,"StemV":70,"MissingWidth":443},"Up":-73,"Ut":49,"Cw":[443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,248,257,320,616,562,732,622,174,342,348,431,567,196,276,263,412,562,562,562,562,562,562,562,562,562,562,242,211,508,549,522,472,898,652,623,651,656,568,553,681,713,272,552,627,538,873,713,688,631,688,616,593,597,648,636,887,627,601,599,265,410,265,418,451,309,544,561,523,564,530,347,561,551,243,239,507,243,876,552,570,561,568,338,516,327,551,484,751,496,473,496,338,244,338,680,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,248,652,427,539,713,538,593,613,418,593,593,597,599,276,599,599,374,544,271,270,313,316,516,444,248,516,516,346,496,373,496,496,616,652,652,652,652,538,651,651,651,568,568,568,568,272,272,656,670,713,713,688,688,688,688,533,616,648,648,648,648,601,597,595,338,544,544,544,544,243,523,523,523,530,530,530,530,247,247,637,597,552,552,570,570,570,570,571,338,551,551,551,551,473,327,243],"Enc":"iso-8859-2","Diff":"128 /.notdef 130 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 142 /.notdef 145 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 158 /.notdef /.notdef 161 /Aogonek /breve /Lslash 165 /Lcaron /Sacute 169 /Scaron /Scedilla /Tcaron /Zacute 174 /Zcaron /Zdotaccent 177 /aogonek /ogonek /lslash 181 /lcaron /sacute /caron 185 /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent /Racute 195 /Abreve 197 /Lacute /Cacute 200 /Ccaron 202 /Eogonek 204 /Ecaron 207 /Dcaron /Dcroat /Nacute /Ncaron 213 /Ohungarumlaut 216 /Rcaron /Uring 219 /Uhungarumlaut 222 /Tcommaaccent 224 /racute 227 /abreve 229 /lacute /cacute 232 /ccaron 234 /eogonek 236 /ecaron 239 /dcaron /dcroat /nacute /ncaron 245 /ohungarumlaut 248 /rcaron /uring 251 /uhungarumlaut 254 /tcommaaccent /dotaccent","File":"Roboto-Regular.z","Size1":0,"Size2":0,"OriginalSize":168260,"N":0,"DiffN":0}
Binary file added examples/iso_8859_2_cp/Roboto-Regular.z
Binary file not shown.
Loading

0 comments on commit ebf1970

Please sign in to comment.