├── .gitattribute ├── .gitignore ├── .travis.yml ├── LICENSE ├── Makefile ├── README.md ├── attachments.go ├── compare.go ├── contrib ├── barcode │ ├── barcode.go │ └── barcode_test.go ├── ghostscript │ └── ghostscript.go ├── gofpdi │ ├── gofpdi.go │ └── gofpdi_test.go ├── httpimg │ ├── httpimg.go │ └── httpimg_test.go └── tiff │ ├── tiff.go │ └── tiff_test.go ├── def.go ├── doc.go ├── doc ├── document.md ├── go.awk └── html.txt ├── embedded.go ├── font.go ├── font ├── CalligrapherRegular.afm ├── CalligrapherRegular.pfb ├── DejaVuSansCondensed-Bold.ttf ├── DejaVuSansCondensed-BoldOblique.ttf ├── DejaVuSansCondensed-Oblique.ttf ├── DejaVuSansCondensed.json ├── DejaVuSansCondensed.ttf ├── calligra.json ├── calligra.ttf ├── calligra.z ├── courier.json ├── courierb.json ├── courierbi.json ├── courieri.json ├── cp1250.map ├── cp1251.map ├── cp1252.map ├── cp1253.map ├── cp1254.map ├── cp1255.map ├── cp1257.map ├── cp1258.map ├── cp874.map ├── helvetica.json ├── helvetica_1251.json ├── helvetica_1251.z ├── helvetica_1253.json ├── helvetica_1253.z ├── helveticab.json ├── helveticabi.json ├── helveticai.json ├── iso-8859-1.map ├── iso-8859-11.map ├── iso-8859-15.map ├── iso-8859-16.map ├── iso-8859-2.map ├── iso-8859-4.map ├── iso-8859-5.map ├── iso-8859-7.map ├── iso-8859-9.map ├── koi8-r.map ├── koi8-u.map ├── times.json ├── timesb.json ├── timesbi.json ├── timesi.json └── zapfdingbats.json ├── fpdf.go ├── fpdf_test.go ├── fpdftrans.go ├── go.mod ├── go.sum ├── grid.go ├── htmlbasic.go ├── image ├── doc.png ├── doc.svg ├── fpdf.png ├── gofpdf.png ├── golang-gopher.png ├── golang-gopher.tiff ├── logo-gray.png ├── logo-progressive.jpg ├── logo-rgb.png ├── logo.gif ├── logo.jpg ├── logo.png ├── logo_gofpdf.jpg ├── mit.png ├── mit.svg ├── signature.svg └── sweden.png ├── internal ├── example │ ├── example.go │ └── example_test.go └── files │ ├── bin │ ├── Makefile │ └── bin.go │ └── files.go ├── label.go ├── layer.go ├── list └── list.go ├── makefont ├── doc.go ├── makefont.go └── makefont_test.go ├── pdf ├── .empty └── reference │ ├── Fpdf_AddFont.pdf │ ├── Fpdf_AddLayer.pdf │ ├── Fpdf_AddPage.pdf │ ├── Fpdf_AddUTF8Font.pdf │ ├── Fpdf_Beziergon.pdf │ ├── Fpdf_Bookmark.pdf │ ├── Fpdf_CellFormat_align.pdf │ ├── Fpdf_CellFormat_codepage.pdf │ ├── Fpdf_CellFormat_codepageescape.pdf │ ├── Fpdf_CellFormat_tables.pdf │ ├── Fpdf_Circle_figures.pdf │ ├── Fpdf_ClipText.pdf │ ├── Fpdf_ClippedTableCells.pdf │ ├── Fpdf_CreateTemplate.pdf │ ├── Fpdf_DrawPath_fill.pdf │ ├── Fpdf_EmbeddedFont.pdf │ ├── Fpdf_HTMLBasicNew.pdf │ ├── Fpdf_LinearGradient_gradient.pdf │ ├── Fpdf_MoveTo_path.pdf │ ├── Fpdf_MultiCell.pdf │ ├── Fpdf_PageSize.pdf │ ├── Fpdf_Polygon.pdf │ ├── Fpdf_SVGBasicWrite.pdf │ ├── Fpdf_SetFontLoader.pdf │ ├── Fpdf_SetLeftMargin_multicolumn.pdf │ ├── Fpdf_SetLineJoinStyle_caps.pdf │ ├── Fpdf_SetProtection.pdf │ ├── Fpdf_SplitLines_tables.pdf │ ├── Fpdf_Splitlines.pdf │ ├── Fpdf_TransformBegin.pdf │ ├── Fpdf_UnderlineThickness.pdf │ ├── Fpdf_WrappedTableCells.pdf │ ├── Fpdf_WriteAligned.pdf │ └── basic.pdf ├── png.go ├── protect.go ├── splittext.go ├── spotcolor.go ├── subwrite.go ├── svgbasic.go ├── svgwrite.go ├── template.go ├── template_impl.go ├── text ├── 20k_c1.txt ├── 20k_c2.txt ├── countries.txt ├── utf-8test.txt └── utf-8test2.txt ├── ttfparser.go ├── ttfparser_test.go ├── utf8fontfile.go └── util.go /.gitattribute: -------------------------------------------------------------------------------- 1 | *.pdf binary 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.0 2 | coverage 3 | font/CalligrapherRegular.json 4 | font/CalligrapherRegular.z 5 | font/Ubuntu-* 6 | internal/files/bin/bin 7 | look 8 | makefont/makefont 9 | open 10 | **/*.out 11 | pdf/*.pdf 12 | pdf.txt 13 | private 14 | *.sublime* 15 | *.swp 16 | **/*.test 17 | .idea/ 18 | doc/body.html 19 | doc/body.md 20 | doc/index.html 21 | doc/index.html.ok 22 | coverage.html 23 | 24 | # macOS 25 | .DS_Store -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | sudo: false 4 | 5 | go: 6 | - master 7 | 8 | os: 9 | - linux 10 | 11 | script: go test -v 12 | 13 | notifications: 14 | email: false 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 David Barnes 4 | Copyright (c) 2017 Kurt Jung and contributors acknowledged in the documentation 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | all : documentation 2 | 3 | documentation : doc/index.html doc.go README.md 4 | 5 | cov : all 6 | go test -v -coverprofile=coverage && go tool cover -html=coverage -o=coverage.html 7 | 8 | check : 9 | golint . 10 | go vet -all . 11 | gofmt -s -l . 12 | goreportcard-cli -v | grep -v cyclomatic 13 | 14 | README.md : doc/document.md 15 | pandoc --read=markdown --write=gfm < $< > $@ 16 | 17 | doc/index.html : doc/document.md doc/html.txt 18 | pandoc --read=markdown --write=html --template=doc/html.txt \ 19 | --metadata pagetitle="GoFPDF Document Generator" < $< > $@ 20 | 21 | doc.go : doc/document.md doc/go.awk 22 | pandoc --read=markdown --write=plain $< | awk --assign=package_name=gofpdf --file=doc/go.awk > $@ 23 | gofmt -s -w $@ 24 | 25 | build : 26 | go build -v 27 | 28 | clean : 29 | rm -f coverage.html coverage doc/index.html doc.go README.md 30 | -------------------------------------------------------------------------------- /attachments.go: -------------------------------------------------------------------------------- 1 | package gofpdf 2 | 3 | import ( 4 | "crypto/md5" 5 | "encoding/hex" 6 | "fmt" 7 | "strings" 8 | ) 9 | 10 | // Attachment defines a content to be included in the pdf, in one 11 | // of the following ways : 12 | // - associated with the document as a whole : see SetAttachments() 13 | // - accessible via a link localized on a page : see AddAttachmentAnnotation() 14 | type Attachment struct { 15 | Content []byte 16 | 17 | // Filename is the displayed name of the attachment 18 | Filename string 19 | 20 | // Description is only displayed when using AddAttachmentAnnotation(), 21 | // and might be modified by the pdf reader. 22 | Description string 23 | 24 | objectNumber int // filled when content is included 25 | } 26 | 27 | // return the hex encoded checksum of `data` 28 | func checksum(data []byte) string { 29 | tmp := md5.Sum(data) 30 | sl := make([]byte, len(tmp)) 31 | for i, v := range tmp { 32 | sl[i] = v 33 | } 34 | return hex.EncodeToString(sl) 35 | } 36 | 37 | // Writes a compressed file like object as ``/EmbeddedFile``. Compressing is 38 | // done with deflate. Includes length, compressed length and MD5 checksum. 39 | func (f *Fpdf) writeCompressedFileObject(content []byte) { 40 | lenUncompressed := len(content) 41 | sum := checksum(content) 42 | compressed := sliceCompress(content) 43 | lenCompressed := len(compressed) 44 | f.newobj() 45 | f.outf("<< /Type /EmbeddedFile /Length %d /Filter /FlateDecode /Params << /CheckSum <%s> /Size %d >> >>\n", 46 | lenCompressed, sum, lenUncompressed) 47 | f.putstream(compressed) 48 | f.out("endobj") 49 | } 50 | 51 | // Embed includes the content of `a`, and update its internal reference. 52 | func (f *Fpdf) embed(a *Attachment) { 53 | if a.objectNumber != 0 { // already embedded (objectNumber start at 2) 54 | return 55 | } 56 | oldState := f.state 57 | f.state = 1 // we write file content in the main buffer 58 | f.writeCompressedFileObject(a.Content) 59 | streamID := f.n 60 | f.newobj() 61 | f.outf("<< /Type /Filespec /F () /UF %s /EF << /F %d 0 R >> /Desc %s\n>>", 62 | f.textstring(utf8toutf16(a.Filename)), 63 | streamID, 64 | f.textstring(utf8toutf16(a.Description))) 65 | f.out("endobj") 66 | a.objectNumber = f.n 67 | f.state = oldState 68 | } 69 | 70 | // SetAttachments writes attachments as embedded files (document attachment). 71 | // These attachments are global, see AddAttachmentAnnotation() for a link 72 | // anchored in a page. Note that only the last call of SetAttachments is 73 | // useful, previous calls are discarded. Be aware that not all PDF readers 74 | // support document attachments. See the SetAttachment example for a 75 | // demonstration of this method. 76 | func (f *Fpdf) SetAttachments(as []Attachment) { 77 | f.attachments = as 78 | } 79 | 80 | // embed current attachments. store object numbers 81 | // for later use by getEmbeddedFiles() 82 | func (f *Fpdf) putAttachments() { 83 | for i, a := range f.attachments { 84 | f.embed(&a) 85 | f.attachments[i] = a 86 | } 87 | } 88 | 89 | // return /EmbeddedFiles tree name catalog entry. 90 | func (f Fpdf) getEmbeddedFiles() string { 91 | names := make([]string, len(f.attachments)) 92 | for i, as := range f.attachments { 93 | names[i] = fmt.Sprintf("(Attachement%d) %d 0 R ", i+1, as.objectNumber) 94 | } 95 | nameTree := fmt.Sprintf("<< /Names [\n %s \n] >>", strings.Join(names, "\n")) 96 | return nameTree 97 | } 98 | 99 | // ---------------------------------- Annotations ---------------------------------- 100 | 101 | type annotationAttach struct { 102 | *Attachment 103 | 104 | x, y, w, h float64 // fpdf coordinates (y diff and scaling done) 105 | } 106 | 107 | // AddAttachmentAnnotation puts a link on the current page, on the rectangle 108 | // defined by `x`, `y`, `w`, `h`. This link points towards the content defined 109 | // in `a`, which is embedded in the document. Note than no drawing is done by 110 | // this method : a method like `Cell()` or `Rect()` should be called to 111 | // indicate to the reader that there is a link here. Requiring a pointer to an 112 | // Attachment avoids useless copies in the resulting pdf: attachment pointing 113 | // to the same data will have their content only be included once, and be 114 | // shared amongst all links. Be aware that not all PDF readers support 115 | // annotated attachments. See the AddAttachmentAnnotation example for a 116 | // demonstration of this method. 117 | func (f *Fpdf) AddAttachmentAnnotation(a *Attachment, x, y, w, h float64) { 118 | if a == nil { 119 | return 120 | } 121 | f.pageAttachments[f.page] = append(f.pageAttachments[f.page], annotationAttach{ 122 | Attachment: a, 123 | x: x * f.k, y: f.hPt - y*f.k, w: w * f.k, h: h * f.k, 124 | }) 125 | } 126 | 127 | // embed current annotations attachments. store object numbers 128 | // for later use by putAttachmentAnnotationLinks(), which is 129 | // called for each page. 130 | func (f *Fpdf) putAnnotationsAttachments() { 131 | // avoid duplication 132 | m := map[*Attachment]bool{} 133 | for _, l := range f.pageAttachments { 134 | for _, an := range l { 135 | if m[an.Attachment] { // already embedded 136 | continue 137 | } 138 | f.embed(an.Attachment) 139 | } 140 | } 141 | } 142 | 143 | func (f *Fpdf) putAttachmentAnnotationLinks(out *fmtBuffer, page int) { 144 | for _, an := range f.pageAttachments[page] { 145 | x1, y1, x2, y2 := an.x, an.y, an.x+an.w, an.y-an.h 146 | as := fmt.Sprintf("<< /Type /XObject /Subtype /Form /BBox [%.2f %.2f %.2f %.2f] /Length 0 >>", 147 | x1, y1, x2, y2) 148 | as += "\nstream\nendstream" 149 | 150 | out.printf("<< /Type /Annot /Subtype /FileAttachment /Rect [%.2f %.2f %.2f %.2f] /Border [0 0 0]\n", 151 | x1, y1, x2, y2) 152 | out.printf("/Contents %s ", f.textstring(utf8toutf16(an.Description))) 153 | out.printf("/T %s ", f.textstring(utf8toutf16(an.Filename))) 154 | out.printf("/AP << /N %s>>", as) 155 | out.printf("/FS %d 0 R >>\n", an.objectNumber) 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /compare.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 Kurt Jung (Gmail: kurt.w.jung) 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | package gofpdf 18 | 19 | import ( 20 | "bytes" 21 | "fmt" 22 | "io" 23 | "io/ioutil" 24 | "sort" 25 | ) 26 | 27 | type sortType struct { 28 | length int 29 | less func(int, int) bool 30 | swap func(int, int) 31 | } 32 | 33 | func (s *sortType) Len() int { 34 | return s.length 35 | } 36 | 37 | func (s *sortType) Less(i, j int) bool { 38 | return s.less(i, j) 39 | } 40 | 41 | func (s *sortType) Swap(i, j int) { 42 | s.swap(i, j) 43 | } 44 | 45 | func gensort(Len int, Less func(int, int) bool, Swap func(int, int)) { 46 | sort.Sort(&sortType{length: Len, less: Less, swap: Swap}) 47 | } 48 | 49 | func writeBytes(leadStr string, startPos int, sl []byte) { 50 | var pos, max int 51 | var b byte 52 | fmt.Printf("%s %07x", leadStr, startPos) 53 | max = len(sl) 54 | for pos < max { 55 | fmt.Printf(" ") 56 | for k := 0; k < 8; k++ { 57 | if pos < max { 58 | fmt.Printf(" %02x", sl[pos]) 59 | } else { 60 | fmt.Printf(" ") 61 | } 62 | pos++ 63 | } 64 | } 65 | fmt.Printf(" |") 66 | pos = 0 67 | for pos < max { 68 | b = sl[pos] 69 | if b < 32 || b >= 128 { 70 | b = '.' 71 | } 72 | fmt.Printf("%c", b) 73 | pos++ 74 | } 75 | fmt.Printf("|\n") 76 | } 77 | 78 | func checkBytes(pos int, sl1, sl2 []byte, printDiff bool) (eq bool) { 79 | eq = bytes.Equal(sl1, sl2) 80 | if !eq && printDiff { 81 | writeBytes("<", pos, sl1) 82 | writeBytes(">", pos, sl2) 83 | } 84 | return 85 | } 86 | 87 | // CompareBytes compares the bytes referred to by sl1 with those referred to by 88 | // sl2. Nil is returned if the buffers are equal, otherwise an error. 89 | func CompareBytes(sl1, sl2 []byte, printDiff bool) (err error) { 90 | var posStart, posEnd, len1, len2, length int 91 | var diffs bool 92 | 93 | len1 = len(sl1) 94 | len2 = len(sl2) 95 | length = len1 96 | if length > len2 { 97 | length = len2 98 | } 99 | for posStart < length-1 { 100 | posEnd = posStart + 16 101 | if posEnd > length { 102 | posEnd = length 103 | } 104 | if !checkBytes(posStart, sl1[posStart:posEnd], sl2[posStart:posEnd], printDiff) { 105 | diffs = true 106 | } 107 | posStart = posEnd 108 | } 109 | if diffs { 110 | err = fmt.Errorf("documents are different") 111 | } 112 | return 113 | } 114 | 115 | // ComparePDFs reads and compares the full contents of the two specified 116 | // readers byte-for-byte. Nil is returned if the buffers are equal, otherwise 117 | // an error. 118 | func ComparePDFs(rdr1, rdr2 io.Reader, printDiff bool) (err error) { 119 | var b1, b2 *bytes.Buffer 120 | _, err = b1.ReadFrom(rdr1) 121 | if err == nil { 122 | _, err = b2.ReadFrom(rdr2) 123 | if err == nil { 124 | err = CompareBytes(b1.Bytes(), b2.Bytes(), printDiff) 125 | } 126 | } 127 | return 128 | } 129 | 130 | // ComparePDFFiles reads and compares the full contents of the two specified 131 | // files byte-for-byte. Nil is returned if the file contents are equal, or if 132 | // the second file is missing, otherwise an error. 133 | func ComparePDFFiles(file1Str, file2Str string, printDiff bool) (err error) { 134 | var sl1, sl2 []byte 135 | sl1, err = ioutil.ReadFile(file1Str) 136 | if err == nil { 137 | sl2, err = ioutil.ReadFile(file2Str) 138 | if err == nil { 139 | err = CompareBytes(sl1, sl2, printDiff) 140 | } else { 141 | // Second file is missing; treat this as success 142 | err = nil 143 | } 144 | } 145 | return 146 | } 147 | -------------------------------------------------------------------------------- /contrib/ghostscript/ghostscript.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | // This command demonstrates the use of ghotscript to reduce the size 4 | // of generated PDFs. This is based on a comment made by farkerhaiku: 5 | // https://github.com/phpdave11/gofpdf/issues/57#issuecomment-185843315 6 | 7 | import ( 8 | "fmt" 9 | "os" 10 | "os/exec" 11 | 12 | "github.com/phpdave11/gofpdf" 13 | ) 14 | 15 | func report(fileStr string, err error) { 16 | if err == nil { 17 | var info os.FileInfo 18 | info, err = os.Stat(fileStr) 19 | if err == nil { 20 | fmt.Printf("%s: OK, size %d\n", fileStr, info.Size()) 21 | } else { 22 | fmt.Printf("%s: bad stat\n", fileStr) 23 | } 24 | } else { 25 | fmt.Printf("%s: %s\n", fileStr, err) 26 | } 27 | } 28 | 29 | func newPdf() (pdf *gofpdf.Fpdf) { 30 | pdf = gofpdf.New("P", "mm", "A4", "../../font") 31 | pdf.SetCompression(false) 32 | pdf.AddFont("Calligrapher", "", "calligra.json") 33 | pdf.AddPage() 34 | pdf.SetFont("Calligrapher", "", 35) 35 | pdf.Cell(0, 10, "Enjoy new fonts with FPDF!") 36 | return 37 | } 38 | 39 | func full(name string) { 40 | report(name, newPdf().OutputFileAndClose(name)) 41 | } 42 | 43 | func min(name string) { 44 | cmd := exec.Command("gs", "-sDEVICE=pdfwrite", 45 | "-dCompatibilityLevel=1.4", 46 | "-dPDFSETTINGS=/screen", "-dNOPAUSE", "-dQUIET", 47 | "-dBATCH", "-sOutputFile="+name, "-") 48 | inPipe, err := cmd.StdinPipe() 49 | if err == nil { 50 | errChan := make(chan error, 1) 51 | go func() { 52 | errChan <- cmd.Start() 53 | }() 54 | err = newPdf().Output(inPipe) 55 | if err == nil { 56 | report(name, <-errChan) 57 | } else { 58 | report(name, err) 59 | } 60 | } else { 61 | report(name, err) 62 | } 63 | } 64 | 65 | func main() { 66 | full("full.pdf") 67 | min("min.pdf") 68 | } 69 | -------------------------------------------------------------------------------- /contrib/gofpdi/gofpdi_test.go: -------------------------------------------------------------------------------- 1 | package gofpdi 2 | 3 | import ( 4 | "bytes" 5 | "github.com/phpdave11/gofpdf" 6 | "github.com/phpdave11/gofpdf/internal/example" 7 | "io" 8 | "sync" 9 | "testing" 10 | ) 11 | 12 | func ExampleNewImporter() { 13 | // create new pdf 14 | pdf := gofpdf.New("P", "pt", "A4", "") 15 | 16 | // for testing purposes, get an arbitrary template pdf as stream 17 | rs, _ := getTemplatePdf() 18 | 19 | // create a new Importer instance 20 | imp := NewImporter() 21 | 22 | // import first page and determine page sizes 23 | tpl := imp.ImportPageFromStream(pdf, &rs, 1, "/MediaBox") 24 | pageSizes := imp.GetPageSizes() 25 | nrPages := len(imp.GetPageSizes()) 26 | 27 | // add all pages from template pdf 28 | for i := 1; i <= nrPages; i++ { 29 | pdf.AddPage() 30 | if i > 1 { 31 | tpl = imp.ImportPageFromStream(pdf, &rs, i, "/MediaBox") 32 | } 33 | imp.UseImportedTemplate(pdf, tpl, 0, 0, pageSizes[i]["/MediaBox"]["w"], pageSizes[i]["/MediaBox"]["h"]) 34 | } 35 | 36 | // output 37 | fileStr := example.Filename("contrib_gofpdi_Importer") 38 | err := pdf.OutputFileAndClose(fileStr) 39 | example.Summary(err, fileStr) 40 | // Output: 41 | // Successfully generated ../../pdf/contrib_gofpdi_Importer.pdf 42 | } 43 | 44 | func TestGofpdiConcurrent(t *testing.T) { 45 | wg := sync.WaitGroup{} 46 | for i := 0; i < 100; i++ { 47 | wg.Add(1) 48 | go func() { 49 | defer wg.Done() 50 | pdf := gofpdf.New("P", "mm", "A4", "") 51 | pdf.AddPage() 52 | rs, _ := getTemplatePdf() 53 | imp := NewImporter() 54 | tpl := imp.ImportPageFromStream(pdf, &rs, 1, "/MediaBox") 55 | imp.UseImportedTemplate(pdf, tpl, 0, 0, 210.0, 297.0) 56 | // write to bytes buffer 57 | buf := bytes.Buffer{} 58 | if err := pdf.Output(&buf); err != nil { 59 | t.Fail() 60 | } 61 | }() 62 | } 63 | wg.Wait() 64 | } 65 | 66 | func getTemplatePdf() (io.ReadSeeker, error) { 67 | tpdf := gofpdf.New("P", "pt", "A4", "") 68 | tpdf.AddPage() 69 | tpdf.SetFont("Arial", "", 12) 70 | tpdf.Text(20, 20, "Example Page 1") 71 | tpdf.AddPage() 72 | tpdf.Text(20, 20, "Example Page 2") 73 | tbuf := bytes.Buffer{} 74 | err := tpdf.Output(&tbuf) 75 | return bytes.NewReader(tbuf.Bytes()), err 76 | } 77 | -------------------------------------------------------------------------------- /contrib/httpimg/httpimg.go: -------------------------------------------------------------------------------- 1 | package httpimg 2 | 3 | import ( 4 | "io" 5 | "net/http" 6 | 7 | "github.com/phpdave11/gofpdf" 8 | ) 9 | 10 | // httpimgPdf is a partial interface that only implements the functions we need 11 | // from the PDF generator to put the HTTP images on the PDF. 12 | type httpimgPdf interface { 13 | GetImageInfo(imageStr string) *gofpdf.ImageInfoType 14 | ImageTypeFromMime(mimeStr string) string 15 | RegisterImageReader(imgName, tp string, r io.Reader) *gofpdf.ImageInfoType 16 | SetError(err error) 17 | } 18 | 19 | // Register registers a HTTP image. Downloading the image from the provided URL 20 | // and adding it to the PDF but not adding it to the page. Use Image() with the 21 | // same URL to add the image to the page. 22 | func Register(f httpimgPdf, urlStr, tp string) (info *gofpdf.ImageInfoType) { 23 | info = f.GetImageInfo(urlStr) 24 | 25 | if info != nil { 26 | return 27 | } 28 | 29 | resp, err := http.Get(urlStr) 30 | 31 | if err != nil { 32 | f.SetError(err) 33 | return 34 | } 35 | 36 | defer resp.Body.Close() 37 | 38 | if tp == "" { 39 | tp = f.ImageTypeFromMime(resp.Header["Content-Type"][0]) 40 | } 41 | 42 | return f.RegisterImageReader(urlStr, tp, resp.Body) 43 | } 44 | -------------------------------------------------------------------------------- /contrib/httpimg/httpimg_test.go: -------------------------------------------------------------------------------- 1 | package httpimg_test 2 | 3 | import ( 4 | "github.com/phpdave11/gofpdf" 5 | "github.com/phpdave11/gofpdf/contrib/httpimg" 6 | "github.com/phpdave11/gofpdf/internal/example" 7 | ) 8 | 9 | func ExampleRegister() { 10 | pdf := gofpdf.New("L", "mm", "A4", "") 11 | pdf.SetFont("Helvetica", "", 12) 12 | pdf.SetFillColor(200, 200, 220) 13 | pdf.AddPage() 14 | 15 | url := "https://github.com/phpdave11/gofpdf/raw/master/image/logo_gofpdf.jpg?raw=true" 16 | httpimg.Register(pdf, url, "") 17 | pdf.Image(url, 15, 15, 267, 0, false, "", 0, "") 18 | fileStr := example.Filename("contrib_httpimg_Register") 19 | err := pdf.OutputFileAndClose(fileStr) 20 | example.Summary(err, fileStr) 21 | // Output: 22 | // Successfully generated ../../pdf/contrib_httpimg_Register.pdf 23 | } 24 | -------------------------------------------------------------------------------- /contrib/tiff/tiff.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Kurt Jung (Gmail: kurt.w.jung) 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | // Package tiff allows standard (LZW-compressed) TIFF images to be used in 18 | // documents generated with gofpdf. 19 | package tiff 20 | 21 | import ( 22 | "bytes" 23 | "fmt" 24 | "image" 25 | "image/png" 26 | "io" 27 | "os" 28 | 29 | "github.com/phpdave11/gofpdf" 30 | "golang.org/x/image/tiff" 31 | ) 32 | 33 | // RegisterReader registers a TIFF image, adding it to the PDF file but not 34 | // adding it to the page. imgName specifies the name that will be used in the 35 | // call to Image() that actually places the image in the document. options 36 | // specifies various image properties; in this case, the ImageType property 37 | // should be set to "tiff". The TIFF image is a reader from the reader 38 | // specified by r. 39 | func RegisterReader(fpdf *gofpdf.Fpdf, imgName string, options gofpdf.ImageOptions, r io.Reader) (info *gofpdf.ImageInfoType) { 40 | var err error 41 | var img image.Image 42 | var buf bytes.Buffer 43 | if fpdf.Ok() { 44 | if options.ImageType == "tiff" || options.ImageType == "tif" { 45 | img, err = tiff.Decode(r) 46 | if err == nil { 47 | err = png.Encode(&buf, img) 48 | if err == nil { 49 | options.ImageType = "png" 50 | info = fpdf.RegisterImageOptionsReader(imgName, options, &buf) 51 | } 52 | } 53 | } else { 54 | err = fmt.Errorf("expecting \"tiff\" or \"tif\" as image type, got \"%s\"", options.ImageType) 55 | } 56 | if err != nil { 57 | fpdf.SetError(err) 58 | } 59 | } 60 | return 61 | } 62 | 63 | // RegisterFile registers a TIFF image, adding it to the PDF file but not 64 | // adding it to the page. imgName specifies the name that will be used in the 65 | // call to Image() that actually places the image in the document. options 66 | // specifies various image properties; in this case, the ImageType property 67 | // should be set to "tiff". The TIFF image is read from the file specified by 68 | // tiffFileStr. 69 | func RegisterFile(fpdf *gofpdf.Fpdf, imgName string, options gofpdf.ImageOptions, tiffFileStr string) (info *gofpdf.ImageInfoType) { 70 | var f *os.File 71 | var err error 72 | 73 | if fpdf.Ok() { 74 | f, err = os.Open(tiffFileStr) 75 | if err == nil { 76 | info = RegisterReader(fpdf, imgName, options, f) 77 | f.Close() 78 | } else { 79 | fpdf.SetError(err) 80 | } 81 | } 82 | return 83 | } 84 | -------------------------------------------------------------------------------- /contrib/tiff/tiff_test.go: -------------------------------------------------------------------------------- 1 | package tiff_test 2 | 3 | import ( 4 | "github.com/phpdave11/gofpdf" 5 | "github.com/phpdave11/gofpdf/contrib/tiff" 6 | "github.com/phpdave11/gofpdf/internal/example" 7 | ) 8 | 9 | // ExampleRegisterFile demonstrates the loading and display of a TIFF image. 10 | func ExampleRegisterFile() { 11 | pdf := gofpdf.New("L", "mm", "A4", "") 12 | pdf.SetFont("Helvetica", "", 12) 13 | pdf.SetFillColor(200, 200, 220) 14 | pdf.AddPageFormat("L", gofpdf.SizeType{Wd: 200, Ht: 200}) 15 | opt := gofpdf.ImageOptions{ImageType: "tiff", ReadDpi: false} 16 | _ = tiff.RegisterFile(pdf, "sample", opt, "../../image/golang-gopher.tiff") 17 | pdf.Image("sample", 0, 0, 200, 200, false, "", 0, "") 18 | fileStr := example.Filename("Fpdf_Contrib_Tiff") 19 | err := pdf.OutputFileAndClose(fileStr) 20 | example.Summary(err, fileStr) 21 | // Output: 22 | // Successfully generated ../../pdf/Fpdf_Contrib_Tiff.pdf 23 | } 24 | -------------------------------------------------------------------------------- /doc/go.awk: -------------------------------------------------------------------------------- 1 | BEGIN { show = 0 ; print "/*" } 2 | 3 | /^\-/ { trim = 1 ; print "" } 4 | 5 | /^Package/ { show = 1 } 6 | 7 | !NF { trim = 0 } 8 | 9 | trim { sub("^ +", "", $0) } 10 | 11 | show { print $0 } 12 | 13 | END { print "*/\npackage " package_name } 14 | -------------------------------------------------------------------------------- /doc/html.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | GoFPDF Document Generator 9 | 62 | 63 | 64 | 65 | $body$ 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /font/CalligrapherRegular.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/font/CalligrapherRegular.pfb -------------------------------------------------------------------------------- /font/DejaVuSansCondensed-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/font/DejaVuSansCondensed-Bold.ttf -------------------------------------------------------------------------------- /font/DejaVuSansCondensed-BoldOblique.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/font/DejaVuSansCondensed-BoldOblique.ttf -------------------------------------------------------------------------------- /font/DejaVuSansCondensed-Oblique.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/font/DejaVuSansCondensed-Oblique.ttf -------------------------------------------------------------------------------- /font/DejaVuSansCondensed.json: -------------------------------------------------------------------------------- 1 | {"Tp":"TrueType","Name":"DejaVuSansCondensed","Desc":{"Ascent":760,"Descent":-240,"CapHeight":760,"Flags":32,"FontBBox":{"Xmin":-918,"Ymin":-463,"Xmax":1614,"Ymax":1232},"ItalicAngle":0,"StemV":70,"MissingWidth":540},"Up":-63,"Ut":44,"Cw":[540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,286,360,414,754,572,855,702,247,351,351,450,754,286,325,286,303,572,572,572,572,572,572,572,572,572,572,303,303,754,754,754,478,900,615,617,628,693,568,518,697,677,265,265,590,501,776,673,708,542,708,625,571,549,659,615,890,616,549,616,351,303,351,754,450,450,551,571,495,571,554,316,571,570,250,250,521,250,876,570,550,571,571,370,469,353,570,532,736,532,532,472,572,303,572,754,540,708,549,286,473,466,900,450,450,572,1208,984,360,940,639,708,677,563,286,286,466,466,531,450,900,540,900,812,360,809,543,586,588,286,548,532,265,572,549,303,450,568,900,628,550,754,325,900,265,450,754,265,250,473,572,572,286,554,936,494,550,250,571,469,250,615,617,617,549,703,568,969,577,673,673,639,677,776,677,708,677,542,628,549,548,774,616,699,617,962,984,749,794,617,628,971,625,551,555,530,473,622,554,811,479,584,584,543,575,679,588,550,588,571,495,524,532,769,532,612,532,823,848,636,710,530,494,757,541],"Enc":"cp1251","Diff":"128 /afii10051 /afii10052 131 /afii10100 136 /Euro 138 /afii10058 140 /afii10059 /afii10061 /afii10060 /afii10145 /afii10099 152 /.notdef 154 /afii10106 156 /afii10107 /afii10109 /afii10108 /afii10193 161 /afii10062 /afii10110 /afii10057 165 /afii10050 168 /afii10023 170 /afii10053 175 /afii10056 178 /afii10055 /afii10103 /afii10098 184 /afii10071 /afii61352 /afii10101 188 /afii10105 /afii10054 /afii10102 /afii10104 /afii10017 /afii10018 /afii10019 /afii10020 /afii10021 /afii10022 /afii10024 /afii10025 /afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032 /afii10033 /afii10034 /afii10035 /afii10036 /afii10037 /afii10038 /afii10039 /afii10040 /afii10041 /afii10042 /afii10043 /afii10044 /afii10045 /afii10046 /afii10047 /afii10048 /afii10049 /afii10065 /afii10066 /afii10067 /afii10068 /afii10069 /afii10070 /afii10072 /afii10073 /afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080 /afii10081 /afii10082 /afii10083 /afii10084 /afii10085 /afii10086 /afii10087 /afii10088 /afii10089 /afii10090 /afii10091 /afii10092 /afii10093 /afii10094 /afii10095 /afii10096 /afii10097","File":"","Size1":0,"Size2":0,"OriginalSize":0,"N":0,"DiffN":0} -------------------------------------------------------------------------------- /font/DejaVuSansCondensed.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/font/DejaVuSansCondensed.ttf -------------------------------------------------------------------------------- /font/calligra.json: -------------------------------------------------------------------------------- 1 | {"Tp":"TrueType","Name":"CalligrapherRegular","Desc":{"Ascent":899,"Descent":-234,"CapHeight":899,"Flags":32,"FontBBox":{"Xmin":-173,"Ymin":-234,"Xmax":1328,"Ymax":899},"ItalicAngle":0,"StemV":70,"MissingWidth":800},"Up":-200,"Ut":20,"Cw":[800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,282,324,405,584,632,980,776,259,299,299,377,600,259,432,254,597,529,298,451,359,525,423,464,417,457,479,275,282,600,600,600,501,800,743,636,598,712,608,562,680,756,308,314,676,552,1041,817,729,569,698,674,618,673,805,753,1238,716,754,599,315,463,315,600,547,278,581,564,440,571,450,347,628,611,283,283,560,252,976,595,508,549,540,395,441,307,614,556,915,559,597,452,315,222,315,600,800,800,800,0,0,0,780,0,0,278,0,0,0,1064,800,0,800,800,259,259,470,470,500,300,600,278,990,0,0,790,800,800,754,282,324,450,640,518,603,0,519,254,800,349,0,0,432,800,278,0,0,0,0,278,614,0,254,278,0,305,0,0,0,0,501,743,743,743,743,743,743,1060,598,608,608,608,608,308,308,308,308,0,817,729,729,729,729,729,0,729,805,805,805,805,0,0,688,581,581,581,581,581,581,792,440,450,450,450,450,283,283,283,283,0,595,508,508,508,508,508,0,508,614,614,614,614,0,0,597],"Enc":"cp1252","Diff":"","File":"calligra.z","Size1":0,"Size2":0,"OriginalSize":40120,"N":0,"DiffN":0} -------------------------------------------------------------------------------- /font/calligra.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/font/calligra.ttf -------------------------------------------------------------------------------- /font/calligra.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/font/calligra.z -------------------------------------------------------------------------------- /font/courier.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Courier","Up":-100,"Ut":50,"I":256,"Cw":[600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600]} -------------------------------------------------------------------------------- /font/courierb.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Courier-Bold","Up":-100,"Ut":50,"I":256,"Cw":[600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600]} -------------------------------------------------------------------------------- /font/courierbi.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Courier-BoldOblique","Up":-100,"Ut":50,"I":256,"Cw":[600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600]} -------------------------------------------------------------------------------- /font/courieri.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Courier-Oblique","Up":-100,"Ut":50,"I":256,"Cw":[600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600]} -------------------------------------------------------------------------------- /font/cp1250.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+20AC Euro 130 | !82 U+201A quotesinglbase 131 | !84 U+201E quotedblbase 132 | !85 U+2026 ellipsis 133 | !86 U+2020 dagger 134 | !87 U+2021 daggerdbl 135 | !89 U+2030 perthousand 136 | !8A U+0160 Scaron 137 | !8B U+2039 guilsinglleft 138 | !8C U+015A Sacute 139 | !8D U+0164 Tcaron 140 | !8E U+017D Zcaron 141 | !8F U+0179 Zacute 142 | !91 U+2018 quoteleft 143 | !92 U+2019 quoteright 144 | !93 U+201C quotedblleft 145 | !94 U+201D quotedblright 146 | !95 U+2022 bullet 147 | !96 U+2013 endash 148 | !97 U+2014 emdash 149 | !99 U+2122 trademark 150 | !9A U+0161 scaron 151 | !9B U+203A guilsinglright 152 | !9C U+015B sacute 153 | !9D U+0165 tcaron 154 | !9E U+017E zcaron 155 | !9F U+017A zacute 156 | !A0 U+00A0 space 157 | !A1 U+02C7 caron 158 | !A2 U+02D8 breve 159 | !A3 U+0141 Lslash 160 | !A4 U+00A4 currency 161 | !A5 U+0104 Aogonek 162 | !A6 U+00A6 brokenbar 163 | !A7 U+00A7 section 164 | !A8 U+00A8 dieresis 165 | !A9 U+00A9 copyright 166 | !AA U+015E Scedilla 167 | !AB U+00AB guillemotleft 168 | !AC U+00AC logicalnot 169 | !AD U+00AD hyphen 170 | !AE U+00AE registered 171 | !AF U+017B Zdotaccent 172 | !B0 U+00B0 degree 173 | !B1 U+00B1 plusminus 174 | !B2 U+02DB ogonek 175 | !B3 U+0142 lslash 176 | !B4 U+00B4 acute 177 | !B5 U+00B5 mu 178 | !B6 U+00B6 paragraph 179 | !B7 U+00B7 periodcentered 180 | !B8 U+00B8 cedilla 181 | !B9 U+0105 aogonek 182 | !BA U+015F scedilla 183 | !BB U+00BB guillemotright 184 | !BC U+013D Lcaron 185 | !BD U+02DD hungarumlaut 186 | !BE U+013E lcaron 187 | !BF U+017C zdotaccent 188 | !C0 U+0154 Racute 189 | !C1 U+00C1 Aacute 190 | !C2 U+00C2 Acircumflex 191 | !C3 U+0102 Abreve 192 | !C4 U+00C4 Adieresis 193 | !C5 U+0139 Lacute 194 | !C6 U+0106 Cacute 195 | !C7 U+00C7 Ccedilla 196 | !C8 U+010C Ccaron 197 | !C9 U+00C9 Eacute 198 | !CA U+0118 Eogonek 199 | !CB U+00CB Edieresis 200 | !CC U+011A Ecaron 201 | !CD U+00CD Iacute 202 | !CE U+00CE Icircumflex 203 | !CF U+010E Dcaron 204 | !D0 U+0110 Dcroat 205 | !D1 U+0143 Nacute 206 | !D2 U+0147 Ncaron 207 | !D3 U+00D3 Oacute 208 | !D4 U+00D4 Ocircumflex 209 | !D5 U+0150 Ohungarumlaut 210 | !D6 U+00D6 Odieresis 211 | !D7 U+00D7 multiply 212 | !D8 U+0158 Rcaron 213 | !D9 U+016E Uring 214 | !DA U+00DA Uacute 215 | !DB U+0170 Uhungarumlaut 216 | !DC U+00DC Udieresis 217 | !DD U+00DD Yacute 218 | !DE U+0162 Tcommaaccent 219 | !DF U+00DF germandbls 220 | !E0 U+0155 racute 221 | !E1 U+00E1 aacute 222 | !E2 U+00E2 acircumflex 223 | !E3 U+0103 abreve 224 | !E4 U+00E4 adieresis 225 | !E5 U+013A lacute 226 | !E6 U+0107 cacute 227 | !E7 U+00E7 ccedilla 228 | !E8 U+010D ccaron 229 | !E9 U+00E9 eacute 230 | !EA U+0119 eogonek 231 | !EB U+00EB edieresis 232 | !EC U+011B ecaron 233 | !ED U+00ED iacute 234 | !EE U+00EE icircumflex 235 | !EF U+010F dcaron 236 | !F0 U+0111 dcroat 237 | !F1 U+0144 nacute 238 | !F2 U+0148 ncaron 239 | !F3 U+00F3 oacute 240 | !F4 U+00F4 ocircumflex 241 | !F5 U+0151 ohungarumlaut 242 | !F6 U+00F6 odieresis 243 | !F7 U+00F7 divide 244 | !F8 U+0159 rcaron 245 | !F9 U+016F uring 246 | !FA U+00FA uacute 247 | !FB U+0171 uhungarumlaut 248 | !FC U+00FC udieresis 249 | !FD U+00FD yacute 250 | !FE U+0163 tcommaaccent 251 | !FF U+02D9 dotaccent 252 | -------------------------------------------------------------------------------- /font/cp1252.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+20AC Euro 130 | !82 U+201A quotesinglbase 131 | !83 U+0192 florin 132 | !84 U+201E quotedblbase 133 | !85 U+2026 ellipsis 134 | !86 U+2020 dagger 135 | !87 U+2021 daggerdbl 136 | !88 U+02C6 circumflex 137 | !89 U+2030 perthousand 138 | !8A U+0160 Scaron 139 | !8B U+2039 guilsinglleft 140 | !8C U+0152 OE 141 | !8E U+017D Zcaron 142 | !91 U+2018 quoteleft 143 | !92 U+2019 quoteright 144 | !93 U+201C quotedblleft 145 | !94 U+201D quotedblright 146 | !95 U+2022 bullet 147 | !96 U+2013 endash 148 | !97 U+2014 emdash 149 | !98 U+02DC tilde 150 | !99 U+2122 trademark 151 | !9A U+0161 scaron 152 | !9B U+203A guilsinglright 153 | !9C U+0153 oe 154 | !9E U+017E zcaron 155 | !9F U+0178 Ydieresis 156 | !A0 U+00A0 space 157 | !A1 U+00A1 exclamdown 158 | !A2 U+00A2 cent 159 | !A3 U+00A3 sterling 160 | !A4 U+00A4 currency 161 | !A5 U+00A5 yen 162 | !A6 U+00A6 brokenbar 163 | !A7 U+00A7 section 164 | !A8 U+00A8 dieresis 165 | !A9 U+00A9 copyright 166 | !AA U+00AA ordfeminine 167 | !AB U+00AB guillemotleft 168 | !AC U+00AC logicalnot 169 | !AD U+00AD hyphen 170 | !AE U+00AE registered 171 | !AF U+00AF macron 172 | !B0 U+00B0 degree 173 | !B1 U+00B1 plusminus 174 | !B2 U+00B2 twosuperior 175 | !B3 U+00B3 threesuperior 176 | !B4 U+00B4 acute 177 | !B5 U+00B5 mu 178 | !B6 U+00B6 paragraph 179 | !B7 U+00B7 periodcentered 180 | !B8 U+00B8 cedilla 181 | !B9 U+00B9 onesuperior 182 | !BA U+00BA ordmasculine 183 | !BB U+00BB guillemotright 184 | !BC U+00BC onequarter 185 | !BD U+00BD onehalf 186 | !BE U+00BE threequarters 187 | !BF U+00BF questiondown 188 | !C0 U+00C0 Agrave 189 | !C1 U+00C1 Aacute 190 | !C2 U+00C2 Acircumflex 191 | !C3 U+00C3 Atilde 192 | !C4 U+00C4 Adieresis 193 | !C5 U+00C5 Aring 194 | !C6 U+00C6 AE 195 | !C7 U+00C7 Ccedilla 196 | !C8 U+00C8 Egrave 197 | !C9 U+00C9 Eacute 198 | !CA U+00CA Ecircumflex 199 | !CB U+00CB Edieresis 200 | !CC U+00CC Igrave 201 | !CD U+00CD Iacute 202 | !CE U+00CE Icircumflex 203 | !CF U+00CF Idieresis 204 | !D0 U+00D0 Eth 205 | !D1 U+00D1 Ntilde 206 | !D2 U+00D2 Ograve 207 | !D3 U+00D3 Oacute 208 | !D4 U+00D4 Ocircumflex 209 | !D5 U+00D5 Otilde 210 | !D6 U+00D6 Odieresis 211 | !D7 U+00D7 multiply 212 | !D8 U+00D8 Oslash 213 | !D9 U+00D9 Ugrave 214 | !DA U+00DA Uacute 215 | !DB U+00DB Ucircumflex 216 | !DC U+00DC Udieresis 217 | !DD U+00DD Yacute 218 | !DE U+00DE Thorn 219 | !DF U+00DF germandbls 220 | !E0 U+00E0 agrave 221 | !E1 U+00E1 aacute 222 | !E2 U+00E2 acircumflex 223 | !E3 U+00E3 atilde 224 | !E4 U+00E4 adieresis 225 | !E5 U+00E5 aring 226 | !E6 U+00E6 ae 227 | !E7 U+00E7 ccedilla 228 | !E8 U+00E8 egrave 229 | !E9 U+00E9 eacute 230 | !EA U+00EA ecircumflex 231 | !EB U+00EB edieresis 232 | !EC U+00EC igrave 233 | !ED U+00ED iacute 234 | !EE U+00EE icircumflex 235 | !EF U+00EF idieresis 236 | !F0 U+00F0 eth 237 | !F1 U+00F1 ntilde 238 | !F2 U+00F2 ograve 239 | !F3 U+00F3 oacute 240 | !F4 U+00F4 ocircumflex 241 | !F5 U+00F5 otilde 242 | !F6 U+00F6 odieresis 243 | !F7 U+00F7 divide 244 | !F8 U+00F8 oslash 245 | !F9 U+00F9 ugrave 246 | !FA U+00FA uacute 247 | !FB U+00FB ucircumflex 248 | !FC U+00FC udieresis 249 | !FD U+00FD yacute 250 | !FE U+00FE thorn 251 | !FF U+00FF ydieresis 252 | -------------------------------------------------------------------------------- /font/cp1253.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+20AC Euro 130 | !82 U+201A quotesinglbase 131 | !83 U+0192 florin 132 | !84 U+201E quotedblbase 133 | !85 U+2026 ellipsis 134 | !86 U+2020 dagger 135 | !87 U+2021 daggerdbl 136 | !89 U+2030 perthousand 137 | !8B U+2039 guilsinglleft 138 | !91 U+2018 quoteleft 139 | !92 U+2019 quoteright 140 | !93 U+201C quotedblleft 141 | !94 U+201D quotedblright 142 | !95 U+2022 bullet 143 | !96 U+2013 endash 144 | !97 U+2014 emdash 145 | !99 U+2122 trademark 146 | !9B U+203A guilsinglright 147 | !A0 U+00A0 space 148 | !A1 U+0385 dieresistonos 149 | !A2 U+0386 Alphatonos 150 | !A3 U+00A3 sterling 151 | !A4 U+00A4 currency 152 | !A5 U+00A5 yen 153 | !A6 U+00A6 brokenbar 154 | !A7 U+00A7 section 155 | !A8 U+00A8 dieresis 156 | !A9 U+00A9 copyright 157 | !AB U+00AB guillemotleft 158 | !AC U+00AC logicalnot 159 | !AD U+00AD hyphen 160 | !AE U+00AE registered 161 | !AF U+2015 afii00208 162 | !B0 U+00B0 degree 163 | !B1 U+00B1 plusminus 164 | !B2 U+00B2 twosuperior 165 | !B3 U+00B3 threesuperior 166 | !B4 U+0384 tonos 167 | !B5 U+00B5 mu 168 | !B6 U+00B6 paragraph 169 | !B7 U+00B7 periodcentered 170 | !B8 U+0388 Epsilontonos 171 | !B9 U+0389 Etatonos 172 | !BA U+038A Iotatonos 173 | !BB U+00BB guillemotright 174 | !BC U+038C Omicrontonos 175 | !BD U+00BD onehalf 176 | !BE U+038E Upsilontonos 177 | !BF U+038F Omegatonos 178 | !C0 U+0390 iotadieresistonos 179 | !C1 U+0391 Alpha 180 | !C2 U+0392 Beta 181 | !C3 U+0393 Gamma 182 | !C4 U+0394 Delta 183 | !C5 U+0395 Epsilon 184 | !C6 U+0396 Zeta 185 | !C7 U+0397 Eta 186 | !C8 U+0398 Theta 187 | !C9 U+0399 Iota 188 | !CA U+039A Kappa 189 | !CB U+039B Lambda 190 | !CC U+039C Mu 191 | !CD U+039D Nu 192 | !CE U+039E Xi 193 | !CF U+039F Omicron 194 | !D0 U+03A0 Pi 195 | !D1 U+03A1 Rho 196 | !D3 U+03A3 Sigma 197 | !D4 U+03A4 Tau 198 | !D5 U+03A5 Upsilon 199 | !D6 U+03A6 Phi 200 | !D7 U+03A7 Chi 201 | !D8 U+03A8 Psi 202 | !D9 U+03A9 Omega 203 | !DA U+03AA Iotadieresis 204 | !DB U+03AB Upsilondieresis 205 | !DC U+03AC alphatonos 206 | !DD U+03AD epsilontonos 207 | !DE U+03AE etatonos 208 | !DF U+03AF iotatonos 209 | !E0 U+03B0 upsilondieresistonos 210 | !E1 U+03B1 alpha 211 | !E2 U+03B2 beta 212 | !E3 U+03B3 gamma 213 | !E4 U+03B4 delta 214 | !E5 U+03B5 epsilon 215 | !E6 U+03B6 zeta 216 | !E7 U+03B7 eta 217 | !E8 U+03B8 theta 218 | !E9 U+03B9 iota 219 | !EA U+03BA kappa 220 | !EB U+03BB lambda 221 | !EC U+03BC mu 222 | !ED U+03BD nu 223 | !EE U+03BE xi 224 | !EF U+03BF omicron 225 | !F0 U+03C0 pi 226 | !F1 U+03C1 rho 227 | !F2 U+03C2 sigma1 228 | !F3 U+03C3 sigma 229 | !F4 U+03C4 tau 230 | !F5 U+03C5 upsilon 231 | !F6 U+03C6 phi 232 | !F7 U+03C7 chi 233 | !F8 U+03C8 psi 234 | !F9 U+03C9 omega 235 | !FA U+03CA iotadieresis 236 | !FB U+03CB upsilondieresis 237 | !FC U+03CC omicrontonos 238 | !FD U+03CD upsilontonos 239 | !FE U+03CE omegatonos 240 | -------------------------------------------------------------------------------- /font/cp1254.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+20AC Euro 130 | !82 U+201A quotesinglbase 131 | !83 U+0192 florin 132 | !84 U+201E quotedblbase 133 | !85 U+2026 ellipsis 134 | !86 U+2020 dagger 135 | !87 U+2021 daggerdbl 136 | !88 U+02C6 circumflex 137 | !89 U+2030 perthousand 138 | !8A U+0160 Scaron 139 | !8B U+2039 guilsinglleft 140 | !8C U+0152 OE 141 | !91 U+2018 quoteleft 142 | !92 U+2019 quoteright 143 | !93 U+201C quotedblleft 144 | !94 U+201D quotedblright 145 | !95 U+2022 bullet 146 | !96 U+2013 endash 147 | !97 U+2014 emdash 148 | !98 U+02DC tilde 149 | !99 U+2122 trademark 150 | !9A U+0161 scaron 151 | !9B U+203A guilsinglright 152 | !9C U+0153 oe 153 | !9F U+0178 Ydieresis 154 | !A0 U+00A0 space 155 | !A1 U+00A1 exclamdown 156 | !A2 U+00A2 cent 157 | !A3 U+00A3 sterling 158 | !A4 U+00A4 currency 159 | !A5 U+00A5 yen 160 | !A6 U+00A6 brokenbar 161 | !A7 U+00A7 section 162 | !A8 U+00A8 dieresis 163 | !A9 U+00A9 copyright 164 | !AA U+00AA ordfeminine 165 | !AB U+00AB guillemotleft 166 | !AC U+00AC logicalnot 167 | !AD U+00AD hyphen 168 | !AE U+00AE registered 169 | !AF U+00AF macron 170 | !B0 U+00B0 degree 171 | !B1 U+00B1 plusminus 172 | !B2 U+00B2 twosuperior 173 | !B3 U+00B3 threesuperior 174 | !B4 U+00B4 acute 175 | !B5 U+00B5 mu 176 | !B6 U+00B6 paragraph 177 | !B7 U+00B7 periodcentered 178 | !B8 U+00B8 cedilla 179 | !B9 U+00B9 onesuperior 180 | !BA U+00BA ordmasculine 181 | !BB U+00BB guillemotright 182 | !BC U+00BC onequarter 183 | !BD U+00BD onehalf 184 | !BE U+00BE threequarters 185 | !BF U+00BF questiondown 186 | !C0 U+00C0 Agrave 187 | !C1 U+00C1 Aacute 188 | !C2 U+00C2 Acircumflex 189 | !C3 U+00C3 Atilde 190 | !C4 U+00C4 Adieresis 191 | !C5 U+00C5 Aring 192 | !C6 U+00C6 AE 193 | !C7 U+00C7 Ccedilla 194 | !C8 U+00C8 Egrave 195 | !C9 U+00C9 Eacute 196 | !CA U+00CA Ecircumflex 197 | !CB U+00CB Edieresis 198 | !CC U+00CC Igrave 199 | !CD U+00CD Iacute 200 | !CE U+00CE Icircumflex 201 | !CF U+00CF Idieresis 202 | !D0 U+011E Gbreve 203 | !D1 U+00D1 Ntilde 204 | !D2 U+00D2 Ograve 205 | !D3 U+00D3 Oacute 206 | !D4 U+00D4 Ocircumflex 207 | !D5 U+00D5 Otilde 208 | !D6 U+00D6 Odieresis 209 | !D7 U+00D7 multiply 210 | !D8 U+00D8 Oslash 211 | !D9 U+00D9 Ugrave 212 | !DA U+00DA Uacute 213 | !DB U+00DB Ucircumflex 214 | !DC U+00DC Udieresis 215 | !DD U+0130 Idotaccent 216 | !DE U+015E Scedilla 217 | !DF U+00DF germandbls 218 | !E0 U+00E0 agrave 219 | !E1 U+00E1 aacute 220 | !E2 U+00E2 acircumflex 221 | !E3 U+00E3 atilde 222 | !E4 U+00E4 adieresis 223 | !E5 U+00E5 aring 224 | !E6 U+00E6 ae 225 | !E7 U+00E7 ccedilla 226 | !E8 U+00E8 egrave 227 | !E9 U+00E9 eacute 228 | !EA U+00EA ecircumflex 229 | !EB U+00EB edieresis 230 | !EC U+00EC igrave 231 | !ED U+00ED iacute 232 | !EE U+00EE icircumflex 233 | !EF U+00EF idieresis 234 | !F0 U+011F gbreve 235 | !F1 U+00F1 ntilde 236 | !F2 U+00F2 ograve 237 | !F3 U+00F3 oacute 238 | !F4 U+00F4 ocircumflex 239 | !F5 U+00F5 otilde 240 | !F6 U+00F6 odieresis 241 | !F7 U+00F7 divide 242 | !F8 U+00F8 oslash 243 | !F9 U+00F9 ugrave 244 | !FA U+00FA uacute 245 | !FB U+00FB ucircumflex 246 | !FC U+00FC udieresis 247 | !FD U+0131 dotlessi 248 | !FE U+015F scedilla 249 | !FF U+00FF ydieresis 250 | -------------------------------------------------------------------------------- /font/cp1255.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+20AC Euro 130 | !82 U+201A quotesinglbase 131 | !83 U+0192 florin 132 | !84 U+201E quotedblbase 133 | !85 U+2026 ellipsis 134 | !86 U+2020 dagger 135 | !87 U+2021 daggerdbl 136 | !88 U+02C6 circumflex 137 | !89 U+2030 perthousand 138 | !8B U+2039 guilsinglleft 139 | !91 U+2018 quoteleft 140 | !92 U+2019 quoteright 141 | !93 U+201C quotedblleft 142 | !94 U+201D quotedblright 143 | !95 U+2022 bullet 144 | !96 U+2013 endash 145 | !97 U+2014 emdash 146 | !98 U+02DC tilde 147 | !99 U+2122 trademark 148 | !9B U+203A guilsinglright 149 | !A0 U+00A0 space 150 | !A1 U+00A1 exclamdown 151 | !A2 U+00A2 cent 152 | !A3 U+00A3 sterling 153 | !A4 U+20AA afii57636 154 | !A5 U+00A5 yen 155 | !A6 U+00A6 brokenbar 156 | !A7 U+00A7 section 157 | !A8 U+00A8 dieresis 158 | !A9 U+00A9 copyright 159 | !AA U+00D7 multiply 160 | !AB U+00AB guillemotleft 161 | !AC U+00AC logicalnot 162 | !AD U+00AD sfthyphen 163 | !AE U+00AE registered 164 | !AF U+00AF macron 165 | !B0 U+00B0 degree 166 | !B1 U+00B1 plusminus 167 | !B2 U+00B2 twosuperior 168 | !B3 U+00B3 threesuperior 169 | !B4 U+00B4 acute 170 | !B5 U+00B5 mu 171 | !B6 U+00B6 paragraph 172 | !B7 U+00B7 middot 173 | !B8 U+00B8 cedilla 174 | !B9 U+00B9 onesuperior 175 | !BA U+00F7 divide 176 | !BB U+00BB guillemotright 177 | !BC U+00BC onequarter 178 | !BD U+00BD onehalf 179 | !BE U+00BE threequarters 180 | !BF U+00BF questiondown 181 | !C0 U+05B0 afii57799 182 | !C1 U+05B1 afii57801 183 | !C2 U+05B2 afii57800 184 | !C3 U+05B3 afii57802 185 | !C4 U+05B4 afii57793 186 | !C5 U+05B5 afii57794 187 | !C6 U+05B6 afii57795 188 | !C7 U+05B7 afii57798 189 | !C8 U+05B8 afii57797 190 | !C9 U+05B9 afii57806 191 | !CB U+05BB afii57796 192 | !CC U+05BC afii57807 193 | !CD U+05BD afii57839 194 | !CE U+05BE afii57645 195 | !CF U+05BF afii57841 196 | !D0 U+05C0 afii57842 197 | !D1 U+05C1 afii57804 198 | !D2 U+05C2 afii57803 199 | !D3 U+05C3 afii57658 200 | !D4 U+05F0 afii57716 201 | !D5 U+05F1 afii57717 202 | !D6 U+05F2 afii57718 203 | !D7 U+05F3 gereshhebrew 204 | !D8 U+05F4 gershayimhebrew 205 | !E0 U+05D0 afii57664 206 | !E1 U+05D1 afii57665 207 | !E2 U+05D2 afii57666 208 | !E3 U+05D3 afii57667 209 | !E4 U+05D4 afii57668 210 | !E5 U+05D5 afii57669 211 | !E6 U+05D6 afii57670 212 | !E7 U+05D7 afii57671 213 | !E8 U+05D8 afii57672 214 | !E9 U+05D9 afii57673 215 | !EA U+05DA afii57674 216 | !EB U+05DB afii57675 217 | !EC U+05DC afii57676 218 | !ED U+05DD afii57677 219 | !EE U+05DE afii57678 220 | !EF U+05DF afii57679 221 | !F0 U+05E0 afii57680 222 | !F1 U+05E1 afii57681 223 | !F2 U+05E2 afii57682 224 | !F3 U+05E3 afii57683 225 | !F4 U+05E4 afii57684 226 | !F5 U+05E5 afii57685 227 | !F6 U+05E6 afii57686 228 | !F7 U+05E7 afii57687 229 | !F8 U+05E8 afii57688 230 | !F9 U+05E9 afii57689 231 | !FA U+05EA afii57690 232 | !FD U+200E afii299 233 | !FE U+200F afii300 234 | -------------------------------------------------------------------------------- /font/cp1257.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+20AC Euro 130 | !82 U+201A quotesinglbase 131 | !84 U+201E quotedblbase 132 | !85 U+2026 ellipsis 133 | !86 U+2020 dagger 134 | !87 U+2021 daggerdbl 135 | !89 U+2030 perthousand 136 | !8B U+2039 guilsinglleft 137 | !8D U+00A8 dieresis 138 | !8E U+02C7 caron 139 | !8F U+00B8 cedilla 140 | !91 U+2018 quoteleft 141 | !92 U+2019 quoteright 142 | !93 U+201C quotedblleft 143 | !94 U+201D quotedblright 144 | !95 U+2022 bullet 145 | !96 U+2013 endash 146 | !97 U+2014 emdash 147 | !99 U+2122 trademark 148 | !9B U+203A guilsinglright 149 | !9D U+00AF macron 150 | !9E U+02DB ogonek 151 | !A0 U+00A0 space 152 | !A2 U+00A2 cent 153 | !A3 U+00A3 sterling 154 | !A4 U+00A4 currency 155 | !A6 U+00A6 brokenbar 156 | !A7 U+00A7 section 157 | !A8 U+00D8 Oslash 158 | !A9 U+00A9 copyright 159 | !AA U+0156 Rcommaaccent 160 | !AB U+00AB guillemotleft 161 | !AC U+00AC logicalnot 162 | !AD U+00AD hyphen 163 | !AE U+00AE registered 164 | !AF U+00C6 AE 165 | !B0 U+00B0 degree 166 | !B1 U+00B1 plusminus 167 | !B2 U+00B2 twosuperior 168 | !B3 U+00B3 threesuperior 169 | !B4 U+00B4 acute 170 | !B5 U+00B5 mu 171 | !B6 U+00B6 paragraph 172 | !B7 U+00B7 periodcentered 173 | !B8 U+00F8 oslash 174 | !B9 U+00B9 onesuperior 175 | !BA U+0157 rcommaaccent 176 | !BB U+00BB guillemotright 177 | !BC U+00BC onequarter 178 | !BD U+00BD onehalf 179 | !BE U+00BE threequarters 180 | !BF U+00E6 ae 181 | !C0 U+0104 Aogonek 182 | !C1 U+012E Iogonek 183 | !C2 U+0100 Amacron 184 | !C3 U+0106 Cacute 185 | !C4 U+00C4 Adieresis 186 | !C5 U+00C5 Aring 187 | !C6 U+0118 Eogonek 188 | !C7 U+0112 Emacron 189 | !C8 U+010C Ccaron 190 | !C9 U+00C9 Eacute 191 | !CA U+0179 Zacute 192 | !CB U+0116 Edotaccent 193 | !CC U+0122 Gcommaaccent 194 | !CD U+0136 Kcommaaccent 195 | !CE U+012A Imacron 196 | !CF U+013B Lcommaaccent 197 | !D0 U+0160 Scaron 198 | !D1 U+0143 Nacute 199 | !D2 U+0145 Ncommaaccent 200 | !D3 U+00D3 Oacute 201 | !D4 U+014C Omacron 202 | !D5 U+00D5 Otilde 203 | !D6 U+00D6 Odieresis 204 | !D7 U+00D7 multiply 205 | !D8 U+0172 Uogonek 206 | !D9 U+0141 Lslash 207 | !DA U+015A Sacute 208 | !DB U+016A Umacron 209 | !DC U+00DC Udieresis 210 | !DD U+017B Zdotaccent 211 | !DE U+017D Zcaron 212 | !DF U+00DF germandbls 213 | !E0 U+0105 aogonek 214 | !E1 U+012F iogonek 215 | !E2 U+0101 amacron 216 | !E3 U+0107 cacute 217 | !E4 U+00E4 adieresis 218 | !E5 U+00E5 aring 219 | !E6 U+0119 eogonek 220 | !E7 U+0113 emacron 221 | !E8 U+010D ccaron 222 | !E9 U+00E9 eacute 223 | !EA U+017A zacute 224 | !EB U+0117 edotaccent 225 | !EC U+0123 gcommaaccent 226 | !ED U+0137 kcommaaccent 227 | !EE U+012B imacron 228 | !EF U+013C lcommaaccent 229 | !F0 U+0161 scaron 230 | !F1 U+0144 nacute 231 | !F2 U+0146 ncommaaccent 232 | !F3 U+00F3 oacute 233 | !F4 U+014D omacron 234 | !F5 U+00F5 otilde 235 | !F6 U+00F6 odieresis 236 | !F7 U+00F7 divide 237 | !F8 U+0173 uogonek 238 | !F9 U+0142 lslash 239 | !FA U+015B sacute 240 | !FB U+016B umacron 241 | !FC U+00FC udieresis 242 | !FD U+017C zdotaccent 243 | !FE U+017E zcaron 244 | !FF U+02D9 dotaccent 245 | -------------------------------------------------------------------------------- /font/cp1258.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+20AC Euro 130 | !82 U+201A quotesinglbase 131 | !83 U+0192 florin 132 | !84 U+201E quotedblbase 133 | !85 U+2026 ellipsis 134 | !86 U+2020 dagger 135 | !87 U+2021 daggerdbl 136 | !88 U+02C6 circumflex 137 | !89 U+2030 perthousand 138 | !8B U+2039 guilsinglleft 139 | !8C U+0152 OE 140 | !91 U+2018 quoteleft 141 | !92 U+2019 quoteright 142 | !93 U+201C quotedblleft 143 | !94 U+201D quotedblright 144 | !95 U+2022 bullet 145 | !96 U+2013 endash 146 | !97 U+2014 emdash 147 | !98 U+02DC tilde 148 | !99 U+2122 trademark 149 | !9B U+203A guilsinglright 150 | !9C U+0153 oe 151 | !9F U+0178 Ydieresis 152 | !A0 U+00A0 space 153 | !A1 U+00A1 exclamdown 154 | !A2 U+00A2 cent 155 | !A3 U+00A3 sterling 156 | !A4 U+00A4 currency 157 | !A5 U+00A5 yen 158 | !A6 U+00A6 brokenbar 159 | !A7 U+00A7 section 160 | !A8 U+00A8 dieresis 161 | !A9 U+00A9 copyright 162 | !AA U+00AA ordfeminine 163 | !AB U+00AB guillemotleft 164 | !AC U+00AC logicalnot 165 | !AD U+00AD hyphen 166 | !AE U+00AE registered 167 | !AF U+00AF macron 168 | !B0 U+00B0 degree 169 | !B1 U+00B1 plusminus 170 | !B2 U+00B2 twosuperior 171 | !B3 U+00B3 threesuperior 172 | !B4 U+00B4 acute 173 | !B5 U+00B5 mu 174 | !B6 U+00B6 paragraph 175 | !B7 U+00B7 periodcentered 176 | !B8 U+00B8 cedilla 177 | !B9 U+00B9 onesuperior 178 | !BA U+00BA ordmasculine 179 | !BB U+00BB guillemotright 180 | !BC U+00BC onequarter 181 | !BD U+00BD onehalf 182 | !BE U+00BE threequarters 183 | !BF U+00BF questiondown 184 | !C0 U+00C0 Agrave 185 | !C1 U+00C1 Aacute 186 | !C2 U+00C2 Acircumflex 187 | !C3 U+0102 Abreve 188 | !C4 U+00C4 Adieresis 189 | !C5 U+00C5 Aring 190 | !C6 U+00C6 AE 191 | !C7 U+00C7 Ccedilla 192 | !C8 U+00C8 Egrave 193 | !C9 U+00C9 Eacute 194 | !CA U+00CA Ecircumflex 195 | !CB U+00CB Edieresis 196 | !CC U+0300 gravecomb 197 | !CD U+00CD Iacute 198 | !CE U+00CE Icircumflex 199 | !CF U+00CF Idieresis 200 | !D0 U+0110 Dcroat 201 | !D1 U+00D1 Ntilde 202 | !D2 U+0309 hookabovecomb 203 | !D3 U+00D3 Oacute 204 | !D4 U+00D4 Ocircumflex 205 | !D5 U+01A0 Ohorn 206 | !D6 U+00D6 Odieresis 207 | !D7 U+00D7 multiply 208 | !D8 U+00D8 Oslash 209 | !D9 U+00D9 Ugrave 210 | !DA U+00DA Uacute 211 | !DB U+00DB Ucircumflex 212 | !DC U+00DC Udieresis 213 | !DD U+01AF Uhorn 214 | !DE U+0303 tildecomb 215 | !DF U+00DF germandbls 216 | !E0 U+00E0 agrave 217 | !E1 U+00E1 aacute 218 | !E2 U+00E2 acircumflex 219 | !E3 U+0103 abreve 220 | !E4 U+00E4 adieresis 221 | !E5 U+00E5 aring 222 | !E6 U+00E6 ae 223 | !E7 U+00E7 ccedilla 224 | !E8 U+00E8 egrave 225 | !E9 U+00E9 eacute 226 | !EA U+00EA ecircumflex 227 | !EB U+00EB edieresis 228 | !EC U+0301 acutecomb 229 | !ED U+00ED iacute 230 | !EE U+00EE icircumflex 231 | !EF U+00EF idieresis 232 | !F0 U+0111 dcroat 233 | !F1 U+00F1 ntilde 234 | !F2 U+0323 dotbelowcomb 235 | !F3 U+00F3 oacute 236 | !F4 U+00F4 ocircumflex 237 | !F5 U+01A1 ohorn 238 | !F6 U+00F6 odieresis 239 | !F7 U+00F7 divide 240 | !F8 U+00F8 oslash 241 | !F9 U+00F9 ugrave 242 | !FA U+00FA uacute 243 | !FB U+00FB ucircumflex 244 | !FC U+00FC udieresis 245 | !FD U+01B0 uhorn 246 | !FE U+20AB dong 247 | !FF U+00FF ydieresis 248 | -------------------------------------------------------------------------------- /font/cp874.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+20AC Euro 130 | !85 U+2026 ellipsis 131 | !91 U+2018 quoteleft 132 | !92 U+2019 quoteright 133 | !93 U+201C quotedblleft 134 | !94 U+201D quotedblright 135 | !95 U+2022 bullet 136 | !96 U+2013 endash 137 | !97 U+2014 emdash 138 | !A0 U+00A0 space 139 | !A1 U+0E01 kokaithai 140 | !A2 U+0E02 khokhaithai 141 | !A3 U+0E03 khokhuatthai 142 | !A4 U+0E04 khokhwaithai 143 | !A5 U+0E05 khokhonthai 144 | !A6 U+0E06 khorakhangthai 145 | !A7 U+0E07 ngonguthai 146 | !A8 U+0E08 chochanthai 147 | !A9 U+0E09 chochingthai 148 | !AA U+0E0A chochangthai 149 | !AB U+0E0B sosothai 150 | !AC U+0E0C chochoethai 151 | !AD U+0E0D yoyingthai 152 | !AE U+0E0E dochadathai 153 | !AF U+0E0F topatakthai 154 | !B0 U+0E10 thothanthai 155 | !B1 U+0E11 thonangmonthothai 156 | !B2 U+0E12 thophuthaothai 157 | !B3 U+0E13 nonenthai 158 | !B4 U+0E14 dodekthai 159 | !B5 U+0E15 totaothai 160 | !B6 U+0E16 thothungthai 161 | !B7 U+0E17 thothahanthai 162 | !B8 U+0E18 thothongthai 163 | !B9 U+0E19 nonuthai 164 | !BA U+0E1A bobaimaithai 165 | !BB U+0E1B poplathai 166 | !BC U+0E1C phophungthai 167 | !BD U+0E1D fofathai 168 | !BE U+0E1E phophanthai 169 | !BF U+0E1F fofanthai 170 | !C0 U+0E20 phosamphaothai 171 | !C1 U+0E21 momathai 172 | !C2 U+0E22 yoyakthai 173 | !C3 U+0E23 roruathai 174 | !C4 U+0E24 ruthai 175 | !C5 U+0E25 lolingthai 176 | !C6 U+0E26 luthai 177 | !C7 U+0E27 wowaenthai 178 | !C8 U+0E28 sosalathai 179 | !C9 U+0E29 sorusithai 180 | !CA U+0E2A sosuathai 181 | !CB U+0E2B hohipthai 182 | !CC U+0E2C lochulathai 183 | !CD U+0E2D oangthai 184 | !CE U+0E2E honokhukthai 185 | !CF U+0E2F paiyannoithai 186 | !D0 U+0E30 saraathai 187 | !D1 U+0E31 maihanakatthai 188 | !D2 U+0E32 saraaathai 189 | !D3 U+0E33 saraamthai 190 | !D4 U+0E34 saraithai 191 | !D5 U+0E35 saraiithai 192 | !D6 U+0E36 sarauethai 193 | !D7 U+0E37 saraueethai 194 | !D8 U+0E38 sarauthai 195 | !D9 U+0E39 sarauuthai 196 | !DA U+0E3A phinthuthai 197 | !DF U+0E3F bahtthai 198 | !E0 U+0E40 saraethai 199 | !E1 U+0E41 saraaethai 200 | !E2 U+0E42 saraothai 201 | !E3 U+0E43 saraaimaimuanthai 202 | !E4 U+0E44 saraaimaimalaithai 203 | !E5 U+0E45 lakkhangyaothai 204 | !E6 U+0E46 maiyamokthai 205 | !E7 U+0E47 maitaikhuthai 206 | !E8 U+0E48 maiekthai 207 | !E9 U+0E49 maithothai 208 | !EA U+0E4A maitrithai 209 | !EB U+0E4B maichattawathai 210 | !EC U+0E4C thanthakhatthai 211 | !ED U+0E4D nikhahitthai 212 | !EE U+0E4E yamakkanthai 213 | !EF U+0E4F fongmanthai 214 | !F0 U+0E50 zerothai 215 | !F1 U+0E51 onethai 216 | !F2 U+0E52 twothai 217 | !F3 U+0E53 threethai 218 | !F4 U+0E54 fourthai 219 | !F5 U+0E55 fivethai 220 | !F6 U+0E56 sixthai 221 | !F7 U+0E57 seventhai 222 | !F8 U+0E58 eightthai 223 | !F9 U+0E59 ninethai 224 | !FA U+0E5A angkhankhuthai 225 | !FB U+0E5B khomutthai 226 | -------------------------------------------------------------------------------- /font/helvetica.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Helvetica","Up":-100,"Ut":50,"Cw":[278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,350,556,350,222,556,333,1000,556,556,333,1000,667,333,1000,350,611,350,350,222,222,333,333,350,556,1000,333,1000,500,333,944,350,500,667,278,333,556,556,556,556,260,556,333,737,370,556,584,333,737,333,400,584,333,333,333,556,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,584,611,556,556,556,556,500,556,500]} -------------------------------------------------------------------------------- /font/helvetica_1251.json: -------------------------------------------------------------------------------- 1 | {"Tp":"TrueType","Name":"ArialMT","Desc":{"Ascent":728,"Descent":-210,"CapHeight":728,"Flags":32,"FontBBox":{"Xmin":-665,"Ymin":-325,"Xmax":2028,"Ymax":1037},"ItalicAngle":0,"StemV":70,"MissingWidth":750},"Up":-106,"Ut":73,"Cw":[750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,750,865,542,222,365,333,1000,556,556,556,1000,1057,333,1010,583,854,719,556,222,222,333,333,350,556,1000,750,1000,906,333,813,438,556,552,278,635,500,500,556,489,260,556,667,737,719,556,584,333,737,278,400,549,278,222,411,576,537,278,556,1073,510,556,222,667,500,278,667,656,667,542,677,667,923,604,719,719,583,656,833,722,778,719,667,722,611,635,760,667,740,667,917,938,792,885,656,719,1010,722,556,573,531,365,583,556,669,458,559,559,438,583,688,552,556,542,556,500,458,500,823,500,573,521,802,823,625,719,521,510,750,542],"Enc":"cp1251","Diff":"128 /afii10051 /afii10052 131 /afii10100 136 /Euro 138 /afii10058 140 /afii10059 /afii10061 /afii10060 /afii10145 /afii10099 152 /.notdef 154 /afii10106 156 /afii10107 /afii10109 /afii10108 /afii10193 161 /afii10062 /afii10110 /afii10057 165 /afii10050 168 /afii10023 170 /afii10053 175 /afii10056 178 /afii10055 /afii10103 /afii10098 184 /afii10071 /afii61352 /afii10101 188 /afii10105 /afii10054 /afii10102 /afii10104 /afii10017 /afii10018 /afii10019 /afii10020 /afii10021 /afii10022 /afii10024 /afii10025 /afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032 /afii10033 /afii10034 /afii10035 /afii10036 /afii10037 /afii10038 /afii10039 /afii10040 /afii10041 /afii10042 /afii10043 /afii10044 /afii10045 /afii10046 /afii10047 /afii10048 /afii10049 /afii10065 /afii10066 /afii10067 /afii10068 /afii10069 /afii10070 /afii10072 /afii10073 /afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080 /afii10081 /afii10082 /afii10083 /afii10084 /afii10085 /afii10086 /afii10087 /afii10088 /afii10089 /afii10090 /afii10091 /afii10092 /afii10093 /afii10094 /afii10095 /afii10096 /afii10097","File":"helvetica_1251.z","Size1":0,"Size2":0,"OriginalSize":275572,"I":0,"N":0,"DiffN":0} -------------------------------------------------------------------------------- /font/helvetica_1251.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/font/helvetica_1251.z -------------------------------------------------------------------------------- /font/helvetica_1253.json: -------------------------------------------------------------------------------- 1 | {"Tp":"TrueType","Name":"ArialMT","Desc":{"Ascent":728,"Descent":-210,"CapHeight":728,"Flags":32,"FontBBox":{"Xmin":-665,"Ymin":-325,"Xmax":2028,"Ymax":1037},"ItalicAngle":0,"StemV":70,"MissingWidth":750},"Up":-106,"Ut":73,"Cw":[750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,750,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,750,556,750,222,556,333,1000,556,556,750,1000,750,333,750,750,750,750,750,222,222,333,333,350,556,1000,750,1000,750,333,750,750,750,750,278,333,667,556,556,556,260,556,333,737,750,556,584,333,737,1000,400,549,333,333,333,576,537,278,784,838,384,556,774,834,855,752,222,667,667,551,668,667,611,722,778,278,667,668,833,722,650,778,722,667,750,618,611,667,798,667,835,748,278,667,578,446,556,222,547,578,575,500,557,446,441,556,556,222,500,500,576,500,448,556,690,569,482,617,395,547,648,525,713,781,222,547,556,547,781,750],"Enc":"cp1253","Diff":"136 /.notdef 138 /.notdef 140 /.notdef 142 /.notdef 152 /.notdef 154 /.notdef 156 /.notdef 158 /.notdef /.notdef 161 /dieresistonos /Alphatonos 170 /.notdef 175 /afii00208 180 /tonos 184 /Epsilontonos /Etatonos /Iotatonos 188 /Omicrontonos 190 /Upsilontonos /Omegatonos /iotadieresistonos /Alpha /Beta /Gamma /Delta /Epsilon /Zeta /Eta /Theta /Iota /Kappa /Lambda /Mu /Nu /Xi /Omicron /Pi /Rho /.notdef /Sigma /Tau /Upsilon /Phi /Chi /Psi /Omega /Iotadieresis /Upsilondieresis /alphatonos /epsilontonos /etatonos /iotatonos /upsilondieresistonos /alpha /beta /gamma /delta /epsilon /zeta /eta /theta /iota /kappa /lambda /mu /nu /xi /omicron /pi /rho /sigma1 /sigma /tau /upsilon /phi /chi /psi /omega /iotadieresis /upsilondieresis /omicrontonos /upsilontonos /omegatonos /.notdef","File":"helvetica_1253.z","Size1":0,"Size2":0,"OriginalSize":275572,"I":0,"N":0,"DiffN":0} -------------------------------------------------------------------------------- /font/helvetica_1253.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/font/helvetica_1253.z -------------------------------------------------------------------------------- /font/helveticab.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Helvetica-Bold","Up":-100,"Ut":50,"Cw":[278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,350,556,350,278,556,500,1000,556,556,333,1000,667,333,1000,350,611,350,350,278,278,500,500,350,556,1000,333,1000,556,333,944,350,500,667,278,333,556,556,556,556,280,556,333,737,370,556,584,333,737,333,400,584,333,333,333,611,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,584,611,611,611,611,611,556,611,556]} -------------------------------------------------------------------------------- /font/helveticabi.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Helvetica-BoldOblique","Up":-100,"Ut":50,"Cw":[278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,350,556,350,278,556,500,1000,556,556,333,1000,667,333,1000,350,611,350,350,278,278,500,500,350,556,1000,333,1000,556,333,944,350,500,667,278,333,556,556,556,556,280,556,333,737,370,556,584,333,737,333,400,584,333,333,333,611,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,584,611,611,611,611,611,556,611,556]} -------------------------------------------------------------------------------- /font/helveticai.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Helvetica-Oblique","Up":-100,"Ut":50,"Cw":[278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,350,556,350,222,556,333,1000,556,556,333,1000,667,333,1000,350,611,350,350,222,222,333,333,350,556,1000,333,1000,500,333,944,350,500,667,278,333,556,556,556,556,260,556,333,737,370,556,584,333,737,333,400,584,333,333,333,556,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,584,611,556,556,556,556,500,556,500]} -------------------------------------------------------------------------------- /font/iso-8859-1.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+0080 .notdef 130 | !81 U+0081 .notdef 131 | !82 U+0082 .notdef 132 | !83 U+0083 .notdef 133 | !84 U+0084 .notdef 134 | !85 U+0085 .notdef 135 | !86 U+0086 .notdef 136 | !87 U+0087 .notdef 137 | !88 U+0088 .notdef 138 | !89 U+0089 .notdef 139 | !8A U+008A .notdef 140 | !8B U+008B .notdef 141 | !8C U+008C .notdef 142 | !8D U+008D .notdef 143 | !8E U+008E .notdef 144 | !8F U+008F .notdef 145 | !90 U+0090 .notdef 146 | !91 U+0091 .notdef 147 | !92 U+0092 .notdef 148 | !93 U+0093 .notdef 149 | !94 U+0094 .notdef 150 | !95 U+0095 .notdef 151 | !96 U+0096 .notdef 152 | !97 U+0097 .notdef 153 | !98 U+0098 .notdef 154 | !99 U+0099 .notdef 155 | !9A U+009A .notdef 156 | !9B U+009B .notdef 157 | !9C U+009C .notdef 158 | !9D U+009D .notdef 159 | !9E U+009E .notdef 160 | !9F U+009F .notdef 161 | !A0 U+00A0 space 162 | !A1 U+00A1 exclamdown 163 | !A2 U+00A2 cent 164 | !A3 U+00A3 sterling 165 | !A4 U+00A4 currency 166 | !A5 U+00A5 yen 167 | !A6 U+00A6 brokenbar 168 | !A7 U+00A7 section 169 | !A8 U+00A8 dieresis 170 | !A9 U+00A9 copyright 171 | !AA U+00AA ordfeminine 172 | !AB U+00AB guillemotleft 173 | !AC U+00AC logicalnot 174 | !AD U+00AD hyphen 175 | !AE U+00AE registered 176 | !AF U+00AF macron 177 | !B0 U+00B0 degree 178 | !B1 U+00B1 plusminus 179 | !B2 U+00B2 twosuperior 180 | !B3 U+00B3 threesuperior 181 | !B4 U+00B4 acute 182 | !B5 U+00B5 mu 183 | !B6 U+00B6 paragraph 184 | !B7 U+00B7 periodcentered 185 | !B8 U+00B8 cedilla 186 | !B9 U+00B9 onesuperior 187 | !BA U+00BA ordmasculine 188 | !BB U+00BB guillemotright 189 | !BC U+00BC onequarter 190 | !BD U+00BD onehalf 191 | !BE U+00BE threequarters 192 | !BF U+00BF questiondown 193 | !C0 U+00C0 Agrave 194 | !C1 U+00C1 Aacute 195 | !C2 U+00C2 Acircumflex 196 | !C3 U+00C3 Atilde 197 | !C4 U+00C4 Adieresis 198 | !C5 U+00C5 Aring 199 | !C6 U+00C6 AE 200 | !C7 U+00C7 Ccedilla 201 | !C8 U+00C8 Egrave 202 | !C9 U+00C9 Eacute 203 | !CA U+00CA Ecircumflex 204 | !CB U+00CB Edieresis 205 | !CC U+00CC Igrave 206 | !CD U+00CD Iacute 207 | !CE U+00CE Icircumflex 208 | !CF U+00CF Idieresis 209 | !D0 U+00D0 Eth 210 | !D1 U+00D1 Ntilde 211 | !D2 U+00D2 Ograve 212 | !D3 U+00D3 Oacute 213 | !D4 U+00D4 Ocircumflex 214 | !D5 U+00D5 Otilde 215 | !D6 U+00D6 Odieresis 216 | !D7 U+00D7 multiply 217 | !D8 U+00D8 Oslash 218 | !D9 U+00D9 Ugrave 219 | !DA U+00DA Uacute 220 | !DB U+00DB Ucircumflex 221 | !DC U+00DC Udieresis 222 | !DD U+00DD Yacute 223 | !DE U+00DE Thorn 224 | !DF U+00DF germandbls 225 | !E0 U+00E0 agrave 226 | !E1 U+00E1 aacute 227 | !E2 U+00E2 acircumflex 228 | !E3 U+00E3 atilde 229 | !E4 U+00E4 adieresis 230 | !E5 U+00E5 aring 231 | !E6 U+00E6 ae 232 | !E7 U+00E7 ccedilla 233 | !E8 U+00E8 egrave 234 | !E9 U+00E9 eacute 235 | !EA U+00EA ecircumflex 236 | !EB U+00EB edieresis 237 | !EC U+00EC igrave 238 | !ED U+00ED iacute 239 | !EE U+00EE icircumflex 240 | !EF U+00EF idieresis 241 | !F0 U+00F0 eth 242 | !F1 U+00F1 ntilde 243 | !F2 U+00F2 ograve 244 | !F3 U+00F3 oacute 245 | !F4 U+00F4 ocircumflex 246 | !F5 U+00F5 otilde 247 | !F6 U+00F6 odieresis 248 | !F7 U+00F7 divide 249 | !F8 U+00F8 oslash 250 | !F9 U+00F9 ugrave 251 | !FA U+00FA uacute 252 | !FB U+00FB ucircumflex 253 | !FC U+00FC udieresis 254 | !FD U+00FD yacute 255 | !FE U+00FE thorn 256 | !FF U+00FF ydieresis 257 | -------------------------------------------------------------------------------- /font/iso-8859-11.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+0080 .notdef 130 | !81 U+0081 .notdef 131 | !82 U+0082 .notdef 132 | !83 U+0083 .notdef 133 | !84 U+0084 .notdef 134 | !85 U+0085 .notdef 135 | !86 U+0086 .notdef 136 | !87 U+0087 .notdef 137 | !88 U+0088 .notdef 138 | !89 U+0089 .notdef 139 | !8A U+008A .notdef 140 | !8B U+008B .notdef 141 | !8C U+008C .notdef 142 | !8D U+008D .notdef 143 | !8E U+008E .notdef 144 | !8F U+008F .notdef 145 | !90 U+0090 .notdef 146 | !91 U+0091 .notdef 147 | !92 U+0092 .notdef 148 | !93 U+0093 .notdef 149 | !94 U+0094 .notdef 150 | !95 U+0095 .notdef 151 | !96 U+0096 .notdef 152 | !97 U+0097 .notdef 153 | !98 U+0098 .notdef 154 | !99 U+0099 .notdef 155 | !9A U+009A .notdef 156 | !9B U+009B .notdef 157 | !9C U+009C .notdef 158 | !9D U+009D .notdef 159 | !9E U+009E .notdef 160 | !9F U+009F .notdef 161 | !A0 U+00A0 space 162 | !A1 U+0E01 kokaithai 163 | !A2 U+0E02 khokhaithai 164 | !A3 U+0E03 khokhuatthai 165 | !A4 U+0E04 khokhwaithai 166 | !A5 U+0E05 khokhonthai 167 | !A6 U+0E06 khorakhangthai 168 | !A7 U+0E07 ngonguthai 169 | !A8 U+0E08 chochanthai 170 | !A9 U+0E09 chochingthai 171 | !AA U+0E0A chochangthai 172 | !AB U+0E0B sosothai 173 | !AC U+0E0C chochoethai 174 | !AD U+0E0D yoyingthai 175 | !AE U+0E0E dochadathai 176 | !AF U+0E0F topatakthai 177 | !B0 U+0E10 thothanthai 178 | !B1 U+0E11 thonangmonthothai 179 | !B2 U+0E12 thophuthaothai 180 | !B3 U+0E13 nonenthai 181 | !B4 U+0E14 dodekthai 182 | !B5 U+0E15 totaothai 183 | !B6 U+0E16 thothungthai 184 | !B7 U+0E17 thothahanthai 185 | !B8 U+0E18 thothongthai 186 | !B9 U+0E19 nonuthai 187 | !BA U+0E1A bobaimaithai 188 | !BB U+0E1B poplathai 189 | !BC U+0E1C phophungthai 190 | !BD U+0E1D fofathai 191 | !BE U+0E1E phophanthai 192 | !BF U+0E1F fofanthai 193 | !C0 U+0E20 phosamphaothai 194 | !C1 U+0E21 momathai 195 | !C2 U+0E22 yoyakthai 196 | !C3 U+0E23 roruathai 197 | !C4 U+0E24 ruthai 198 | !C5 U+0E25 lolingthai 199 | !C6 U+0E26 luthai 200 | !C7 U+0E27 wowaenthai 201 | !C8 U+0E28 sosalathai 202 | !C9 U+0E29 sorusithai 203 | !CA U+0E2A sosuathai 204 | !CB U+0E2B hohipthai 205 | !CC U+0E2C lochulathai 206 | !CD U+0E2D oangthai 207 | !CE U+0E2E honokhukthai 208 | !CF U+0E2F paiyannoithai 209 | !D0 U+0E30 saraathai 210 | !D1 U+0E31 maihanakatthai 211 | !D2 U+0E32 saraaathai 212 | !D3 U+0E33 saraamthai 213 | !D4 U+0E34 saraithai 214 | !D5 U+0E35 saraiithai 215 | !D6 U+0E36 sarauethai 216 | !D7 U+0E37 saraueethai 217 | !D8 U+0E38 sarauthai 218 | !D9 U+0E39 sarauuthai 219 | !DA U+0E3A phinthuthai 220 | !DF U+0E3F bahtthai 221 | !E0 U+0E40 saraethai 222 | !E1 U+0E41 saraaethai 223 | !E2 U+0E42 saraothai 224 | !E3 U+0E43 saraaimaimuanthai 225 | !E4 U+0E44 saraaimaimalaithai 226 | !E5 U+0E45 lakkhangyaothai 227 | !E6 U+0E46 maiyamokthai 228 | !E7 U+0E47 maitaikhuthai 229 | !E8 U+0E48 maiekthai 230 | !E9 U+0E49 maithothai 231 | !EA U+0E4A maitrithai 232 | !EB U+0E4B maichattawathai 233 | !EC U+0E4C thanthakhatthai 234 | !ED U+0E4D nikhahitthai 235 | !EE U+0E4E yamakkanthai 236 | !EF U+0E4F fongmanthai 237 | !F0 U+0E50 zerothai 238 | !F1 U+0E51 onethai 239 | !F2 U+0E52 twothai 240 | !F3 U+0E53 threethai 241 | !F4 U+0E54 fourthai 242 | !F5 U+0E55 fivethai 243 | !F6 U+0E56 sixthai 244 | !F7 U+0E57 seventhai 245 | !F8 U+0E58 eightthai 246 | !F9 U+0E59 ninethai 247 | !FA U+0E5A angkhankhuthai 248 | !FB U+0E5B khomutthai 249 | -------------------------------------------------------------------------------- /font/iso-8859-15.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+0080 .notdef 130 | !81 U+0081 .notdef 131 | !82 U+0082 .notdef 132 | !83 U+0083 .notdef 133 | !84 U+0084 .notdef 134 | !85 U+0085 .notdef 135 | !86 U+0086 .notdef 136 | !87 U+0087 .notdef 137 | !88 U+0088 .notdef 138 | !89 U+0089 .notdef 139 | !8A U+008A .notdef 140 | !8B U+008B .notdef 141 | !8C U+008C .notdef 142 | !8D U+008D .notdef 143 | !8E U+008E .notdef 144 | !8F U+008F .notdef 145 | !90 U+0090 .notdef 146 | !91 U+0091 .notdef 147 | !92 U+0092 .notdef 148 | !93 U+0093 .notdef 149 | !94 U+0094 .notdef 150 | !95 U+0095 .notdef 151 | !96 U+0096 .notdef 152 | !97 U+0097 .notdef 153 | !98 U+0098 .notdef 154 | !99 U+0099 .notdef 155 | !9A U+009A .notdef 156 | !9B U+009B .notdef 157 | !9C U+009C .notdef 158 | !9D U+009D .notdef 159 | !9E U+009E .notdef 160 | !9F U+009F .notdef 161 | !A0 U+00A0 space 162 | !A1 U+00A1 exclamdown 163 | !A2 U+00A2 cent 164 | !A3 U+00A3 sterling 165 | !A4 U+20AC Euro 166 | !A5 U+00A5 yen 167 | !A6 U+0160 Scaron 168 | !A7 U+00A7 section 169 | !A8 U+0161 scaron 170 | !A9 U+00A9 copyright 171 | !AA U+00AA ordfeminine 172 | !AB U+00AB guillemotleft 173 | !AC U+00AC logicalnot 174 | !AD U+00AD hyphen 175 | !AE U+00AE registered 176 | !AF U+00AF macron 177 | !B0 U+00B0 degree 178 | !B1 U+00B1 plusminus 179 | !B2 U+00B2 twosuperior 180 | !B3 U+00B3 threesuperior 181 | !B4 U+017D Zcaron 182 | !B5 U+00B5 mu 183 | !B6 U+00B6 paragraph 184 | !B7 U+00B7 periodcentered 185 | !B8 U+017E zcaron 186 | !B9 U+00B9 onesuperior 187 | !BA U+00BA ordmasculine 188 | !BB U+00BB guillemotright 189 | !BC U+0152 OE 190 | !BD U+0153 oe 191 | !BE U+0178 Ydieresis 192 | !BF U+00BF questiondown 193 | !C0 U+00C0 Agrave 194 | !C1 U+00C1 Aacute 195 | !C2 U+00C2 Acircumflex 196 | !C3 U+00C3 Atilde 197 | !C4 U+00C4 Adieresis 198 | !C5 U+00C5 Aring 199 | !C6 U+00C6 AE 200 | !C7 U+00C7 Ccedilla 201 | !C8 U+00C8 Egrave 202 | !C9 U+00C9 Eacute 203 | !CA U+00CA Ecircumflex 204 | !CB U+00CB Edieresis 205 | !CC U+00CC Igrave 206 | !CD U+00CD Iacute 207 | !CE U+00CE Icircumflex 208 | !CF U+00CF Idieresis 209 | !D0 U+00D0 Eth 210 | !D1 U+00D1 Ntilde 211 | !D2 U+00D2 Ograve 212 | !D3 U+00D3 Oacute 213 | !D4 U+00D4 Ocircumflex 214 | !D5 U+00D5 Otilde 215 | !D6 U+00D6 Odieresis 216 | !D7 U+00D7 multiply 217 | !D8 U+00D8 Oslash 218 | !D9 U+00D9 Ugrave 219 | !DA U+00DA Uacute 220 | !DB U+00DB Ucircumflex 221 | !DC U+00DC Udieresis 222 | !DD U+00DD Yacute 223 | !DE U+00DE Thorn 224 | !DF U+00DF germandbls 225 | !E0 U+00E0 agrave 226 | !E1 U+00E1 aacute 227 | !E2 U+00E2 acircumflex 228 | !E3 U+00E3 atilde 229 | !E4 U+00E4 adieresis 230 | !E5 U+00E5 aring 231 | !E6 U+00E6 ae 232 | !E7 U+00E7 ccedilla 233 | !E8 U+00E8 egrave 234 | !E9 U+00E9 eacute 235 | !EA U+00EA ecircumflex 236 | !EB U+00EB edieresis 237 | !EC U+00EC igrave 238 | !ED U+00ED iacute 239 | !EE U+00EE icircumflex 240 | !EF U+00EF idieresis 241 | !F0 U+00F0 eth 242 | !F1 U+00F1 ntilde 243 | !F2 U+00F2 ograve 244 | !F3 U+00F3 oacute 245 | !F4 U+00F4 ocircumflex 246 | !F5 U+00F5 otilde 247 | !F6 U+00F6 odieresis 248 | !F7 U+00F7 divide 249 | !F8 U+00F8 oslash 250 | !F9 U+00F9 ugrave 251 | !FA U+00FA uacute 252 | !FB U+00FB ucircumflex 253 | !FC U+00FC udieresis 254 | !FD U+00FD yacute 255 | !FE U+00FE thorn 256 | !FF U+00FF ydieresis 257 | -------------------------------------------------------------------------------- /font/iso-8859-16.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+0080 .notdef 130 | !81 U+0081 .notdef 131 | !82 U+0082 .notdef 132 | !83 U+0083 .notdef 133 | !84 U+0084 .notdef 134 | !85 U+0085 .notdef 135 | !86 U+0086 .notdef 136 | !87 U+0087 .notdef 137 | !88 U+0088 .notdef 138 | !89 U+0089 .notdef 139 | !8A U+008A .notdef 140 | !8B U+008B .notdef 141 | !8C U+008C .notdef 142 | !8D U+008D .notdef 143 | !8E U+008E .notdef 144 | !8F U+008F .notdef 145 | !90 U+0090 .notdef 146 | !91 U+0091 .notdef 147 | !92 U+0092 .notdef 148 | !93 U+0093 .notdef 149 | !94 U+0094 .notdef 150 | !95 U+0095 .notdef 151 | !96 U+0096 .notdef 152 | !97 U+0097 .notdef 153 | !98 U+0098 .notdef 154 | !99 U+0099 .notdef 155 | !9A U+009A .notdef 156 | !9B U+009B .notdef 157 | !9C U+009C .notdef 158 | !9D U+009D .notdef 159 | !9E U+009E .notdef 160 | !9F U+009F .notdef 161 | !A0 U+00A0 space 162 | !A1 U+0104 Aogonek 163 | !A2 U+0105 aogonek 164 | !A3 U+0141 Lslash 165 | !A4 U+20AC Euro 166 | !A5 U+201E quotedblbase 167 | !A6 U+0160 Scaron 168 | !A7 U+00A7 section 169 | !A8 U+0161 scaron 170 | !A9 U+00A9 copyright 171 | !AA U+0218 Scommaaccent 172 | !AB U+00AB guillemotleft 173 | !AC U+0179 Zacute 174 | !AD U+00AD hyphen 175 | !AE U+017A zacute 176 | !AF U+017B Zdotaccent 177 | !B0 U+00B0 degree 178 | !B1 U+00B1 plusminus 179 | !B2 U+010C Ccaron 180 | !B3 U+0142 lslash 181 | !B4 U+017D Zcaron 182 | !B5 U+201D quotedblright 183 | !B6 U+00B6 paragraph 184 | !B7 U+00B7 periodcentered 185 | !B8 U+017E zcaron 186 | !B9 U+010D ccaron 187 | !BA U+0219 scommaaccent 188 | !BB U+00BB guillemotright 189 | !BC U+0152 OE 190 | !BD U+0153 oe 191 | !BE U+0178 Ydieresis 192 | !BF U+017C zdotaccent 193 | !C0 U+00C0 Agrave 194 | !C1 U+00C1 Aacute 195 | !C2 U+00C2 Acircumflex 196 | !C3 U+0102 Abreve 197 | !C4 U+00C4 Adieresis 198 | !C5 U+0106 Cacute 199 | !C6 U+00C6 AE 200 | !C7 U+00C7 Ccedilla 201 | !C8 U+00C8 Egrave 202 | !C9 U+00C9 Eacute 203 | !CA U+00CA Ecircumflex 204 | !CB U+00CB Edieresis 205 | !CC U+00CC Igrave 206 | !CD U+00CD Iacute 207 | !CE U+00CE Icircumflex 208 | !CF U+00CF Idieresis 209 | !D0 U+0110 Dcroat 210 | !D1 U+0143 Nacute 211 | !D2 U+00D2 Ograve 212 | !D3 U+00D3 Oacute 213 | !D4 U+00D4 Ocircumflex 214 | !D5 U+0150 Ohungarumlaut 215 | !D6 U+00D6 Odieresis 216 | !D7 U+015A Sacute 217 | !D8 U+0170 Uhungarumlaut 218 | !D9 U+00D9 Ugrave 219 | !DA U+00DA Uacute 220 | !DB U+00DB Ucircumflex 221 | !DC U+00DC Udieresis 222 | !DD U+0118 Eogonek 223 | !DE U+021A Tcommaaccent 224 | !DF U+00DF germandbls 225 | !E0 U+00E0 agrave 226 | !E1 U+00E1 aacute 227 | !E2 U+00E2 acircumflex 228 | !E3 U+0103 abreve 229 | !E4 U+00E4 adieresis 230 | !E5 U+0107 cacute 231 | !E6 U+00E6 ae 232 | !E7 U+00E7 ccedilla 233 | !E8 U+00E8 egrave 234 | !E9 U+00E9 eacute 235 | !EA U+00EA ecircumflex 236 | !EB U+00EB edieresis 237 | !EC U+00EC igrave 238 | !ED U+00ED iacute 239 | !EE U+00EE icircumflex 240 | !EF U+00EF idieresis 241 | !F0 U+0111 dcroat 242 | !F1 U+0144 nacute 243 | !F2 U+00F2 ograve 244 | !F3 U+00F3 oacute 245 | !F4 U+00F4 ocircumflex 246 | !F5 U+0151 ohungarumlaut 247 | !F6 U+00F6 odieresis 248 | !F7 U+015B sacute 249 | !F8 U+0171 uhungarumlaut 250 | !F9 U+00F9 ugrave 251 | !FA U+00FA uacute 252 | !FB U+00FB ucircumflex 253 | !FC U+00FC udieresis 254 | !FD U+0119 eogonek 255 | !FE U+021B tcommaaccent 256 | !FF U+00FF ydieresis 257 | -------------------------------------------------------------------------------- /font/iso-8859-2.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+0080 .notdef 130 | !81 U+0081 .notdef 131 | !82 U+0082 .notdef 132 | !83 U+0083 .notdef 133 | !84 U+0084 .notdef 134 | !85 U+0085 .notdef 135 | !86 U+0086 .notdef 136 | !87 U+0087 .notdef 137 | !88 U+0088 .notdef 138 | !89 U+0089 .notdef 139 | !8A U+008A .notdef 140 | !8B U+008B .notdef 141 | !8C U+008C .notdef 142 | !8D U+008D .notdef 143 | !8E U+008E .notdef 144 | !8F U+008F .notdef 145 | !90 U+0090 .notdef 146 | !91 U+0091 .notdef 147 | !92 U+0092 .notdef 148 | !93 U+0093 .notdef 149 | !94 U+0094 .notdef 150 | !95 U+0095 .notdef 151 | !96 U+0096 .notdef 152 | !97 U+0097 .notdef 153 | !98 U+0098 .notdef 154 | !99 U+0099 .notdef 155 | !9A U+009A .notdef 156 | !9B U+009B .notdef 157 | !9C U+009C .notdef 158 | !9D U+009D .notdef 159 | !9E U+009E .notdef 160 | !9F U+009F .notdef 161 | !A0 U+00A0 space 162 | !A1 U+0104 Aogonek 163 | !A2 U+02D8 breve 164 | !A3 U+0141 Lslash 165 | !A4 U+00A4 currency 166 | !A5 U+013D Lcaron 167 | !A6 U+015A Sacute 168 | !A7 U+00A7 section 169 | !A8 U+00A8 dieresis 170 | !A9 U+0160 Scaron 171 | !AA U+015E Scedilla 172 | !AB U+0164 Tcaron 173 | !AC U+0179 Zacute 174 | !AD U+00AD hyphen 175 | !AE U+017D Zcaron 176 | !AF U+017B Zdotaccent 177 | !B0 U+00B0 degree 178 | !B1 U+0105 aogonek 179 | !B2 U+02DB ogonek 180 | !B3 U+0142 lslash 181 | !B4 U+00B4 acute 182 | !B5 U+013E lcaron 183 | !B6 U+015B sacute 184 | !B7 U+02C7 caron 185 | !B8 U+00B8 cedilla 186 | !B9 U+0161 scaron 187 | !BA U+015F scedilla 188 | !BB U+0165 tcaron 189 | !BC U+017A zacute 190 | !BD U+02DD hungarumlaut 191 | !BE U+017E zcaron 192 | !BF U+017C zdotaccent 193 | !C0 U+0154 Racute 194 | !C1 U+00C1 Aacute 195 | !C2 U+00C2 Acircumflex 196 | !C3 U+0102 Abreve 197 | !C4 U+00C4 Adieresis 198 | !C5 U+0139 Lacute 199 | !C6 U+0106 Cacute 200 | !C7 U+00C7 Ccedilla 201 | !C8 U+010C Ccaron 202 | !C9 U+00C9 Eacute 203 | !CA U+0118 Eogonek 204 | !CB U+00CB Edieresis 205 | !CC U+011A Ecaron 206 | !CD U+00CD Iacute 207 | !CE U+00CE Icircumflex 208 | !CF U+010E Dcaron 209 | !D0 U+0110 Dcroat 210 | !D1 U+0143 Nacute 211 | !D2 U+0147 Ncaron 212 | !D3 U+00D3 Oacute 213 | !D4 U+00D4 Ocircumflex 214 | !D5 U+0150 Ohungarumlaut 215 | !D6 U+00D6 Odieresis 216 | !D7 U+00D7 multiply 217 | !D8 U+0158 Rcaron 218 | !D9 U+016E Uring 219 | !DA U+00DA Uacute 220 | !DB U+0170 Uhungarumlaut 221 | !DC U+00DC Udieresis 222 | !DD U+00DD Yacute 223 | !DE U+0162 Tcommaaccent 224 | !DF U+00DF germandbls 225 | !E0 U+0155 racute 226 | !E1 U+00E1 aacute 227 | !E2 U+00E2 acircumflex 228 | !E3 U+0103 abreve 229 | !E4 U+00E4 adieresis 230 | !E5 U+013A lacute 231 | !E6 U+0107 cacute 232 | !E7 U+00E7 ccedilla 233 | !E8 U+010D ccaron 234 | !E9 U+00E9 eacute 235 | !EA U+0119 eogonek 236 | !EB U+00EB edieresis 237 | !EC U+011B ecaron 238 | !ED U+00ED iacute 239 | !EE U+00EE icircumflex 240 | !EF U+010F dcaron 241 | !F0 U+0111 dcroat 242 | !F1 U+0144 nacute 243 | !F2 U+0148 ncaron 244 | !F3 U+00F3 oacute 245 | !F4 U+00F4 ocircumflex 246 | !F5 U+0151 ohungarumlaut 247 | !F6 U+00F6 odieresis 248 | !F7 U+00F7 divide 249 | !F8 U+0159 rcaron 250 | !F9 U+016F uring 251 | !FA U+00FA uacute 252 | !FB U+0171 uhungarumlaut 253 | !FC U+00FC udieresis 254 | !FD U+00FD yacute 255 | !FE U+0163 tcommaaccent 256 | !FF U+02D9 dotaccent 257 | -------------------------------------------------------------------------------- /font/iso-8859-4.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+0080 .notdef 130 | !81 U+0081 .notdef 131 | !82 U+0082 .notdef 132 | !83 U+0083 .notdef 133 | !84 U+0084 .notdef 134 | !85 U+0085 .notdef 135 | !86 U+0086 .notdef 136 | !87 U+0087 .notdef 137 | !88 U+0088 .notdef 138 | !89 U+0089 .notdef 139 | !8A U+008A .notdef 140 | !8B U+008B .notdef 141 | !8C U+008C .notdef 142 | !8D U+008D .notdef 143 | !8E U+008E .notdef 144 | !8F U+008F .notdef 145 | !90 U+0090 .notdef 146 | !91 U+0091 .notdef 147 | !92 U+0092 .notdef 148 | !93 U+0093 .notdef 149 | !94 U+0094 .notdef 150 | !95 U+0095 .notdef 151 | !96 U+0096 .notdef 152 | !97 U+0097 .notdef 153 | !98 U+0098 .notdef 154 | !99 U+0099 .notdef 155 | !9A U+009A .notdef 156 | !9B U+009B .notdef 157 | !9C U+009C .notdef 158 | !9D U+009D .notdef 159 | !9E U+009E .notdef 160 | !9F U+009F .notdef 161 | !A0 U+00A0 space 162 | !A1 U+0104 Aogonek 163 | !A2 U+0138 kgreenlandic 164 | !A3 U+0156 Rcommaaccent 165 | !A4 U+00A4 currency 166 | !A5 U+0128 Itilde 167 | !A6 U+013B Lcommaaccent 168 | !A7 U+00A7 section 169 | !A8 U+00A8 dieresis 170 | !A9 U+0160 Scaron 171 | !AA U+0112 Emacron 172 | !AB U+0122 Gcommaaccent 173 | !AC U+0166 Tbar 174 | !AD U+00AD hyphen 175 | !AE U+017D Zcaron 176 | !AF U+00AF macron 177 | !B0 U+00B0 degree 178 | !B1 U+0105 aogonek 179 | !B2 U+02DB ogonek 180 | !B3 U+0157 rcommaaccent 181 | !B4 U+00B4 acute 182 | !B5 U+0129 itilde 183 | !B6 U+013C lcommaaccent 184 | !B7 U+02C7 caron 185 | !B8 U+00B8 cedilla 186 | !B9 U+0161 scaron 187 | !BA U+0113 emacron 188 | !BB U+0123 gcommaaccent 189 | !BC U+0167 tbar 190 | !BD U+014A Eng 191 | !BE U+017E zcaron 192 | !BF U+014B eng 193 | !C0 U+0100 Amacron 194 | !C1 U+00C1 Aacute 195 | !C2 U+00C2 Acircumflex 196 | !C3 U+00C3 Atilde 197 | !C4 U+00C4 Adieresis 198 | !C5 U+00C5 Aring 199 | !C6 U+00C6 AE 200 | !C7 U+012E Iogonek 201 | !C8 U+010C Ccaron 202 | !C9 U+00C9 Eacute 203 | !CA U+0118 Eogonek 204 | !CB U+00CB Edieresis 205 | !CC U+0116 Edotaccent 206 | !CD U+00CD Iacute 207 | !CE U+00CE Icircumflex 208 | !CF U+012A Imacron 209 | !D0 U+0110 Dcroat 210 | !D1 U+0145 Ncommaaccent 211 | !D2 U+014C Omacron 212 | !D3 U+0136 Kcommaaccent 213 | !D4 U+00D4 Ocircumflex 214 | !D5 U+00D5 Otilde 215 | !D6 U+00D6 Odieresis 216 | !D7 U+00D7 multiply 217 | !D8 U+00D8 Oslash 218 | !D9 U+0172 Uogonek 219 | !DA U+00DA Uacute 220 | !DB U+00DB Ucircumflex 221 | !DC U+00DC Udieresis 222 | !DD U+0168 Utilde 223 | !DE U+016A Umacron 224 | !DF U+00DF germandbls 225 | !E0 U+0101 amacron 226 | !E1 U+00E1 aacute 227 | !E2 U+00E2 acircumflex 228 | !E3 U+00E3 atilde 229 | !E4 U+00E4 adieresis 230 | !E5 U+00E5 aring 231 | !E6 U+00E6 ae 232 | !E7 U+012F iogonek 233 | !E8 U+010D ccaron 234 | !E9 U+00E9 eacute 235 | !EA U+0119 eogonek 236 | !EB U+00EB edieresis 237 | !EC U+0117 edotaccent 238 | !ED U+00ED iacute 239 | !EE U+00EE icircumflex 240 | !EF U+012B imacron 241 | !F0 U+0111 dcroat 242 | !F1 U+0146 ncommaaccent 243 | !F2 U+014D omacron 244 | !F3 U+0137 kcommaaccent 245 | !F4 U+00F4 ocircumflex 246 | !F5 U+00F5 otilde 247 | !F6 U+00F6 odieresis 248 | !F7 U+00F7 divide 249 | !F8 U+00F8 oslash 250 | !F9 U+0173 uogonek 251 | !FA U+00FA uacute 252 | !FB U+00FB ucircumflex 253 | !FC U+00FC udieresis 254 | !FD U+0169 utilde 255 | !FE U+016B umacron 256 | !FF U+02D9 dotaccent 257 | -------------------------------------------------------------------------------- /font/iso-8859-5.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+0080 .notdef 130 | !81 U+0081 .notdef 131 | !82 U+0082 .notdef 132 | !83 U+0083 .notdef 133 | !84 U+0084 .notdef 134 | !85 U+0085 .notdef 135 | !86 U+0086 .notdef 136 | !87 U+0087 .notdef 137 | !88 U+0088 .notdef 138 | !89 U+0089 .notdef 139 | !8A U+008A .notdef 140 | !8B U+008B .notdef 141 | !8C U+008C .notdef 142 | !8D U+008D .notdef 143 | !8E U+008E .notdef 144 | !8F U+008F .notdef 145 | !90 U+0090 .notdef 146 | !91 U+0091 .notdef 147 | !92 U+0092 .notdef 148 | !93 U+0093 .notdef 149 | !94 U+0094 .notdef 150 | !95 U+0095 .notdef 151 | !96 U+0096 .notdef 152 | !97 U+0097 .notdef 153 | !98 U+0098 .notdef 154 | !99 U+0099 .notdef 155 | !9A U+009A .notdef 156 | !9B U+009B .notdef 157 | !9C U+009C .notdef 158 | !9D U+009D .notdef 159 | !9E U+009E .notdef 160 | !9F U+009F .notdef 161 | !A0 U+00A0 space 162 | !A1 U+0401 afii10023 163 | !A2 U+0402 afii10051 164 | !A3 U+0403 afii10052 165 | !A4 U+0404 afii10053 166 | !A5 U+0405 afii10054 167 | !A6 U+0406 afii10055 168 | !A7 U+0407 afii10056 169 | !A8 U+0408 afii10057 170 | !A9 U+0409 afii10058 171 | !AA U+040A afii10059 172 | !AB U+040B afii10060 173 | !AC U+040C afii10061 174 | !AD U+00AD hyphen 175 | !AE U+040E afii10062 176 | !AF U+040F afii10145 177 | !B0 U+0410 afii10017 178 | !B1 U+0411 afii10018 179 | !B2 U+0412 afii10019 180 | !B3 U+0413 afii10020 181 | !B4 U+0414 afii10021 182 | !B5 U+0415 afii10022 183 | !B6 U+0416 afii10024 184 | !B7 U+0417 afii10025 185 | !B8 U+0418 afii10026 186 | !B9 U+0419 afii10027 187 | !BA U+041A afii10028 188 | !BB U+041B afii10029 189 | !BC U+041C afii10030 190 | !BD U+041D afii10031 191 | !BE U+041E afii10032 192 | !BF U+041F afii10033 193 | !C0 U+0420 afii10034 194 | !C1 U+0421 afii10035 195 | !C2 U+0422 afii10036 196 | !C3 U+0423 afii10037 197 | !C4 U+0424 afii10038 198 | !C5 U+0425 afii10039 199 | !C6 U+0426 afii10040 200 | !C7 U+0427 afii10041 201 | !C8 U+0428 afii10042 202 | !C9 U+0429 afii10043 203 | !CA U+042A afii10044 204 | !CB U+042B afii10045 205 | !CC U+042C afii10046 206 | !CD U+042D afii10047 207 | !CE U+042E afii10048 208 | !CF U+042F afii10049 209 | !D0 U+0430 afii10065 210 | !D1 U+0431 afii10066 211 | !D2 U+0432 afii10067 212 | !D3 U+0433 afii10068 213 | !D4 U+0434 afii10069 214 | !D5 U+0435 afii10070 215 | !D6 U+0436 afii10072 216 | !D7 U+0437 afii10073 217 | !D8 U+0438 afii10074 218 | !D9 U+0439 afii10075 219 | !DA U+043A afii10076 220 | !DB U+043B afii10077 221 | !DC U+043C afii10078 222 | !DD U+043D afii10079 223 | !DE U+043E afii10080 224 | !DF U+043F afii10081 225 | !E0 U+0440 afii10082 226 | !E1 U+0441 afii10083 227 | !E2 U+0442 afii10084 228 | !E3 U+0443 afii10085 229 | !E4 U+0444 afii10086 230 | !E5 U+0445 afii10087 231 | !E6 U+0446 afii10088 232 | !E7 U+0447 afii10089 233 | !E8 U+0448 afii10090 234 | !E9 U+0449 afii10091 235 | !EA U+044A afii10092 236 | !EB U+044B afii10093 237 | !EC U+044C afii10094 238 | !ED U+044D afii10095 239 | !EE U+044E afii10096 240 | !EF U+044F afii10097 241 | !F0 U+2116 afii61352 242 | !F1 U+0451 afii10071 243 | !F2 U+0452 afii10099 244 | !F3 U+0453 afii10100 245 | !F4 U+0454 afii10101 246 | !F5 U+0455 afii10102 247 | !F6 U+0456 afii10103 248 | !F7 U+0457 afii10104 249 | !F8 U+0458 afii10105 250 | !F9 U+0459 afii10106 251 | !FA U+045A afii10107 252 | !FB U+045B afii10108 253 | !FC U+045C afii10109 254 | !FD U+00A7 section 255 | !FE U+045E afii10110 256 | !FF U+045F afii10193 257 | -------------------------------------------------------------------------------- /font/iso-8859-7.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+0080 .notdef 130 | !81 U+0081 .notdef 131 | !82 U+0082 .notdef 132 | !83 U+0083 .notdef 133 | !84 U+0084 .notdef 134 | !85 U+0085 .notdef 135 | !86 U+0086 .notdef 136 | !87 U+0087 .notdef 137 | !88 U+0088 .notdef 138 | !89 U+0089 .notdef 139 | !8A U+008A .notdef 140 | !8B U+008B .notdef 141 | !8C U+008C .notdef 142 | !8D U+008D .notdef 143 | !8E U+008E .notdef 144 | !8F U+008F .notdef 145 | !90 U+0090 .notdef 146 | !91 U+0091 .notdef 147 | !92 U+0092 .notdef 148 | !93 U+0093 .notdef 149 | !94 U+0094 .notdef 150 | !95 U+0095 .notdef 151 | !96 U+0096 .notdef 152 | !97 U+0097 .notdef 153 | !98 U+0098 .notdef 154 | !99 U+0099 .notdef 155 | !9A U+009A .notdef 156 | !9B U+009B .notdef 157 | !9C U+009C .notdef 158 | !9D U+009D .notdef 159 | !9E U+009E .notdef 160 | !9F U+009F .notdef 161 | !A0 U+00A0 space 162 | !A1 U+2018 quoteleft 163 | !A2 U+2019 quoteright 164 | !A3 U+00A3 sterling 165 | !A6 U+00A6 brokenbar 166 | !A7 U+00A7 section 167 | !A8 U+00A8 dieresis 168 | !A9 U+00A9 copyright 169 | !AB U+00AB guillemotleft 170 | !AC U+00AC logicalnot 171 | !AD U+00AD hyphen 172 | !AF U+2015 afii00208 173 | !B0 U+00B0 degree 174 | !B1 U+00B1 plusminus 175 | !B2 U+00B2 twosuperior 176 | !B3 U+00B3 threesuperior 177 | !B4 U+0384 tonos 178 | !B5 U+0385 dieresistonos 179 | !B6 U+0386 Alphatonos 180 | !B7 U+00B7 periodcentered 181 | !B8 U+0388 Epsilontonos 182 | !B9 U+0389 Etatonos 183 | !BA U+038A Iotatonos 184 | !BB U+00BB guillemotright 185 | !BC U+038C Omicrontonos 186 | !BD U+00BD onehalf 187 | !BE U+038E Upsilontonos 188 | !BF U+038F Omegatonos 189 | !C0 U+0390 iotadieresistonos 190 | !C1 U+0391 Alpha 191 | !C2 U+0392 Beta 192 | !C3 U+0393 Gamma 193 | !C4 U+0394 Delta 194 | !C5 U+0395 Epsilon 195 | !C6 U+0396 Zeta 196 | !C7 U+0397 Eta 197 | !C8 U+0398 Theta 198 | !C9 U+0399 Iota 199 | !CA U+039A Kappa 200 | !CB U+039B Lambda 201 | !CC U+039C Mu 202 | !CD U+039D Nu 203 | !CE U+039E Xi 204 | !CF U+039F Omicron 205 | !D0 U+03A0 Pi 206 | !D1 U+03A1 Rho 207 | !D3 U+03A3 Sigma 208 | !D4 U+03A4 Tau 209 | !D5 U+03A5 Upsilon 210 | !D6 U+03A6 Phi 211 | !D7 U+03A7 Chi 212 | !D8 U+03A8 Psi 213 | !D9 U+03A9 Omega 214 | !DA U+03AA Iotadieresis 215 | !DB U+03AB Upsilondieresis 216 | !DC U+03AC alphatonos 217 | !DD U+03AD epsilontonos 218 | !DE U+03AE etatonos 219 | !DF U+03AF iotatonos 220 | !E0 U+03B0 upsilondieresistonos 221 | !E1 U+03B1 alpha 222 | !E2 U+03B2 beta 223 | !E3 U+03B3 gamma 224 | !E4 U+03B4 delta 225 | !E5 U+03B5 epsilon 226 | !E6 U+03B6 zeta 227 | !E7 U+03B7 eta 228 | !E8 U+03B8 theta 229 | !E9 U+03B9 iota 230 | !EA U+03BA kappa 231 | !EB U+03BB lambda 232 | !EC U+03BC mu 233 | !ED U+03BD nu 234 | !EE U+03BE xi 235 | !EF U+03BF omicron 236 | !F0 U+03C0 pi 237 | !F1 U+03C1 rho 238 | !F2 U+03C2 sigma1 239 | !F3 U+03C3 sigma 240 | !F4 U+03C4 tau 241 | !F5 U+03C5 upsilon 242 | !F6 U+03C6 phi 243 | !F7 U+03C7 chi 244 | !F8 U+03C8 psi 245 | !F9 U+03C9 omega 246 | !FA U+03CA iotadieresis 247 | !FB U+03CB upsilondieresis 248 | !FC U+03CC omicrontonos 249 | !FD U+03CD upsilontonos 250 | !FE U+03CE omegatonos 251 | -------------------------------------------------------------------------------- /font/iso-8859-9.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+0080 .notdef 130 | !81 U+0081 .notdef 131 | !82 U+0082 .notdef 132 | !83 U+0083 .notdef 133 | !84 U+0084 .notdef 134 | !85 U+0085 .notdef 135 | !86 U+0086 .notdef 136 | !87 U+0087 .notdef 137 | !88 U+0088 .notdef 138 | !89 U+0089 .notdef 139 | !8A U+008A .notdef 140 | !8B U+008B .notdef 141 | !8C U+008C .notdef 142 | !8D U+008D .notdef 143 | !8E U+008E .notdef 144 | !8F U+008F .notdef 145 | !90 U+0090 .notdef 146 | !91 U+0091 .notdef 147 | !92 U+0092 .notdef 148 | !93 U+0093 .notdef 149 | !94 U+0094 .notdef 150 | !95 U+0095 .notdef 151 | !96 U+0096 .notdef 152 | !97 U+0097 .notdef 153 | !98 U+0098 .notdef 154 | !99 U+0099 .notdef 155 | !9A U+009A .notdef 156 | !9B U+009B .notdef 157 | !9C U+009C .notdef 158 | !9D U+009D .notdef 159 | !9E U+009E .notdef 160 | !9F U+009F .notdef 161 | !A0 U+00A0 space 162 | !A1 U+00A1 exclamdown 163 | !A2 U+00A2 cent 164 | !A3 U+00A3 sterling 165 | !A4 U+00A4 currency 166 | !A5 U+00A5 yen 167 | !A6 U+00A6 brokenbar 168 | !A7 U+00A7 section 169 | !A8 U+00A8 dieresis 170 | !A9 U+00A9 copyright 171 | !AA U+00AA ordfeminine 172 | !AB U+00AB guillemotleft 173 | !AC U+00AC logicalnot 174 | !AD U+00AD hyphen 175 | !AE U+00AE registered 176 | !AF U+00AF macron 177 | !B0 U+00B0 degree 178 | !B1 U+00B1 plusminus 179 | !B2 U+00B2 twosuperior 180 | !B3 U+00B3 threesuperior 181 | !B4 U+00B4 acute 182 | !B5 U+00B5 mu 183 | !B6 U+00B6 paragraph 184 | !B7 U+00B7 periodcentered 185 | !B8 U+00B8 cedilla 186 | !B9 U+00B9 onesuperior 187 | !BA U+00BA ordmasculine 188 | !BB U+00BB guillemotright 189 | !BC U+00BC onequarter 190 | !BD U+00BD onehalf 191 | !BE U+00BE threequarters 192 | !BF U+00BF questiondown 193 | !C0 U+00C0 Agrave 194 | !C1 U+00C1 Aacute 195 | !C2 U+00C2 Acircumflex 196 | !C3 U+00C3 Atilde 197 | !C4 U+00C4 Adieresis 198 | !C5 U+00C5 Aring 199 | !C6 U+00C6 AE 200 | !C7 U+00C7 Ccedilla 201 | !C8 U+00C8 Egrave 202 | !C9 U+00C9 Eacute 203 | !CA U+00CA Ecircumflex 204 | !CB U+00CB Edieresis 205 | !CC U+00CC Igrave 206 | !CD U+00CD Iacute 207 | !CE U+00CE Icircumflex 208 | !CF U+00CF Idieresis 209 | !D0 U+011E Gbreve 210 | !D1 U+00D1 Ntilde 211 | !D2 U+00D2 Ograve 212 | !D3 U+00D3 Oacute 213 | !D4 U+00D4 Ocircumflex 214 | !D5 U+00D5 Otilde 215 | !D6 U+00D6 Odieresis 216 | !D7 U+00D7 multiply 217 | !D8 U+00D8 Oslash 218 | !D9 U+00D9 Ugrave 219 | !DA U+00DA Uacute 220 | !DB U+00DB Ucircumflex 221 | !DC U+00DC Udieresis 222 | !DD U+0130 Idotaccent 223 | !DE U+015E Scedilla 224 | !DF U+00DF germandbls 225 | !E0 U+00E0 agrave 226 | !E1 U+00E1 aacute 227 | !E2 U+00E2 acircumflex 228 | !E3 U+00E3 atilde 229 | !E4 U+00E4 adieresis 230 | !E5 U+00E5 aring 231 | !E6 U+00E6 ae 232 | !E7 U+00E7 ccedilla 233 | !E8 U+00E8 egrave 234 | !E9 U+00E9 eacute 235 | !EA U+00EA ecircumflex 236 | !EB U+00EB edieresis 237 | !EC U+00EC igrave 238 | !ED U+00ED iacute 239 | !EE U+00EE icircumflex 240 | !EF U+00EF idieresis 241 | !F0 U+011F gbreve 242 | !F1 U+00F1 ntilde 243 | !F2 U+00F2 ograve 244 | !F3 U+00F3 oacute 245 | !F4 U+00F4 ocircumflex 246 | !F5 U+00F5 otilde 247 | !F6 U+00F6 odieresis 248 | !F7 U+00F7 divide 249 | !F8 U+00F8 oslash 250 | !F9 U+00F9 ugrave 251 | !FA U+00FA uacute 252 | !FB U+00FB ucircumflex 253 | !FC U+00FC udieresis 254 | !FD U+0131 dotlessi 255 | !FE U+015F scedilla 256 | !FF U+00FF ydieresis 257 | -------------------------------------------------------------------------------- /font/koi8-r.map: -------------------------------------------------------------------------------- 1 | !00 U+0000 .notdef 2 | !01 U+0001 .notdef 3 | !02 U+0002 .notdef 4 | !03 U+0003 .notdef 5 | !04 U+0004 .notdef 6 | !05 U+0005 .notdef 7 | !06 U+0006 .notdef 8 | !07 U+0007 .notdef 9 | !08 U+0008 .notdef 10 | !09 U+0009 .notdef 11 | !0A U+000A .notdef 12 | !0B U+000B .notdef 13 | !0C U+000C .notdef 14 | !0D U+000D .notdef 15 | !0E U+000E .notdef 16 | !0F U+000F .notdef 17 | !10 U+0010 .notdef 18 | !11 U+0011 .notdef 19 | !12 U+0012 .notdef 20 | !13 U+0013 .notdef 21 | !14 U+0014 .notdef 22 | !15 U+0015 .notdef 23 | !16 U+0016 .notdef 24 | !17 U+0017 .notdef 25 | !18 U+0018 .notdef 26 | !19 U+0019 .notdef 27 | !1A U+001A .notdef 28 | !1B U+001B .notdef 29 | !1C U+001C .notdef 30 | !1D U+001D .notdef 31 | !1E U+001E .notdef 32 | !1F U+001F .notdef 33 | !20 U+0020 space 34 | !21 U+0021 exclam 35 | !22 U+0022 quotedbl 36 | !23 U+0023 numbersign 37 | !24 U+0024 dollar 38 | !25 U+0025 percent 39 | !26 U+0026 ampersand 40 | !27 U+0027 quotesingle 41 | !28 U+0028 parenleft 42 | !29 U+0029 parenright 43 | !2A U+002A asterisk 44 | !2B U+002B plus 45 | !2C U+002C comma 46 | !2D U+002D hyphen 47 | !2E U+002E period 48 | !2F U+002F slash 49 | !30 U+0030 zero 50 | !31 U+0031 one 51 | !32 U+0032 two 52 | !33 U+0033 three 53 | !34 U+0034 four 54 | !35 U+0035 five 55 | !36 U+0036 six 56 | !37 U+0037 seven 57 | !38 U+0038 eight 58 | !39 U+0039 nine 59 | !3A U+003A colon 60 | !3B U+003B semicolon 61 | !3C U+003C less 62 | !3D U+003D equal 63 | !3E U+003E greater 64 | !3F U+003F question 65 | !40 U+0040 at 66 | !41 U+0041 A 67 | !42 U+0042 B 68 | !43 U+0043 C 69 | !44 U+0044 D 70 | !45 U+0045 E 71 | !46 U+0046 F 72 | !47 U+0047 G 73 | !48 U+0048 H 74 | !49 U+0049 I 75 | !4A U+004A J 76 | !4B U+004B K 77 | !4C U+004C L 78 | !4D U+004D M 79 | !4E U+004E N 80 | !4F U+004F O 81 | !50 U+0050 P 82 | !51 U+0051 Q 83 | !52 U+0052 R 84 | !53 U+0053 S 85 | !54 U+0054 T 86 | !55 U+0055 U 87 | !56 U+0056 V 88 | !57 U+0057 W 89 | !58 U+0058 X 90 | !59 U+0059 Y 91 | !5A U+005A Z 92 | !5B U+005B bracketleft 93 | !5C U+005C backslash 94 | !5D U+005D bracketright 95 | !5E U+005E asciicircum 96 | !5F U+005F underscore 97 | !60 U+0060 grave 98 | !61 U+0061 a 99 | !62 U+0062 b 100 | !63 U+0063 c 101 | !64 U+0064 d 102 | !65 U+0065 e 103 | !66 U+0066 f 104 | !67 U+0067 g 105 | !68 U+0068 h 106 | !69 U+0069 i 107 | !6A U+006A j 108 | !6B U+006B k 109 | !6C U+006C l 110 | !6D U+006D m 111 | !6E U+006E n 112 | !6F U+006F o 113 | !70 U+0070 p 114 | !71 U+0071 q 115 | !72 U+0072 r 116 | !73 U+0073 s 117 | !74 U+0074 t 118 | !75 U+0075 u 119 | !76 U+0076 v 120 | !77 U+0077 w 121 | !78 U+0078 x 122 | !79 U+0079 y 123 | !7A U+007A z 124 | !7B U+007B braceleft 125 | !7C U+007C bar 126 | !7D U+007D braceright 127 | !7E U+007E asciitilde 128 | !7F U+007F .notdef 129 | !80 U+2500 SF100000 130 | !81 U+2502 SF110000 131 | !82 U+250C SF010000 132 | !83 U+2510 SF030000 133 | !84 U+2514 SF020000 134 | !85 U+2518 SF040000 135 | !86 U+251C SF080000 136 | !87 U+2524 SF090000 137 | !88 U+252C SF060000 138 | !89 U+2534 SF070000 139 | !8A U+253C SF050000 140 | !8B U+2580 upblock 141 | !8C U+2584 dnblock 142 | !8D U+2588 block 143 | !8E U+258C lfblock 144 | !8F U+2590 rtblock 145 | !90 U+2591 ltshade 146 | !91 U+2592 shade 147 | !92 U+2593 dkshade 148 | !93 U+2320 integraltp 149 | !94 U+25A0 filledbox 150 | !95 U+2219 periodcentered 151 | !96 U+221A radical 152 | !97 U+2248 approxequal 153 | !98 U+2264 lessequal 154 | !99 U+2265 greaterequal 155 | !9A U+00A0 space 156 | !9B U+2321 integralbt 157 | !9C U+00B0 degree 158 | !9D U+00B2 twosuperior 159 | !9E U+00B7 periodcentered 160 | !9F U+00F7 divide 161 | !A0 U+2550 SF430000 162 | !A1 U+2551 SF240000 163 | !A2 U+2552 SF510000 164 | !A3 U+0451 afii10071 165 | !A4 U+2553 SF520000 166 | !A5 U+2554 SF390000 167 | !A6 U+2555 SF220000 168 | !A7 U+2556 SF210000 169 | !A8 U+2557 SF250000 170 | !A9 U+2558 SF500000 171 | !AA U+2559 SF490000 172 | !AB U+255A SF380000 173 | !AC U+255B SF280000 174 | !AD U+255C SF270000 175 | !AE U+255D SF260000 176 | !AF U+255E SF360000 177 | !B0 U+255F SF370000 178 | !B1 U+2560 SF420000 179 | !B2 U+2561 SF190000 180 | !B3 U+0401 afii10023 181 | !B4 U+2562 SF200000 182 | !B5 U+2563 SF230000 183 | !B6 U+2564 SF470000 184 | !B7 U+2565 SF480000 185 | !B8 U+2566 SF410000 186 | !B9 U+2567 SF450000 187 | !BA U+2568 SF460000 188 | !BB U+2569 SF400000 189 | !BC U+256A SF540000 190 | !BD U+256B SF530000 191 | !BE U+256C SF440000 192 | !BF U+00A9 copyright 193 | !C0 U+044E afii10096 194 | !C1 U+0430 afii10065 195 | !C2 U+0431 afii10066 196 | !C3 U+0446 afii10088 197 | !C4 U+0434 afii10069 198 | !C5 U+0435 afii10070 199 | !C6 U+0444 afii10086 200 | !C7 U+0433 afii10068 201 | !C8 U+0445 afii10087 202 | !C9 U+0438 afii10074 203 | !CA U+0439 afii10075 204 | !CB U+043A afii10076 205 | !CC U+043B afii10077 206 | !CD U+043C afii10078 207 | !CE U+043D afii10079 208 | !CF U+043E afii10080 209 | !D0 U+043F afii10081 210 | !D1 U+044F afii10097 211 | !D2 U+0440 afii10082 212 | !D3 U+0441 afii10083 213 | !D4 U+0442 afii10084 214 | !D5 U+0443 afii10085 215 | !D6 U+0436 afii10072 216 | !D7 U+0432 afii10067 217 | !D8 U+044C afii10094 218 | !D9 U+044B afii10093 219 | !DA U+0437 afii10073 220 | !DB U+0448 afii10090 221 | !DC U+044D afii10095 222 | !DD U+0449 afii10091 223 | !DE U+0447 afii10089 224 | !DF U+044A afii10092 225 | !E0 U+042E afii10048 226 | !E1 U+0410 afii10017 227 | !E2 U+0411 afii10018 228 | !E3 U+0426 afii10040 229 | !E4 U+0414 afii10021 230 | !E5 U+0415 afii10022 231 | !E6 U+0424 afii10038 232 | !E7 U+0413 afii10020 233 | !E8 U+0425 afii10039 234 | !E9 U+0418 afii10026 235 | !EA U+0419 afii10027 236 | !EB U+041A afii10028 237 | !EC U+041B afii10029 238 | !ED U+041C afii10030 239 | !EE U+041D afii10031 240 | !EF U+041E afii10032 241 | !F0 U+041F afii10033 242 | !F1 U+042F afii10049 243 | !F2 U+0420 afii10034 244 | !F3 U+0421 afii10035 245 | !F4 U+0422 afii10036 246 | !F5 U+0423 afii10037 247 | !F6 U+0416 afii10024 248 | !F7 U+0412 afii10019 249 | !F8 U+042C afii10046 250 | !F9 U+042B afii10045 251 | !FA U+0417 afii10025 252 | !FB U+0428 afii10042 253 | !FC U+042D afii10047 254 | !FD U+0429 afii10043 255 | !FE U+0427 afii10041 256 | !FF U+042A afii10044 257 | -------------------------------------------------------------------------------- /font/times.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Times-Roman","Up":-100,"Ut":50,"Cw":[250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,333,408,500,500,833,778,180,333,333,500,564,250,333,250,278,500,500,500,500,500,500,500,500,500,500,278,278,564,564,564,444,921,722,667,667,722,611,556,722,722,333,389,722,611,889,722,722,556,722,667,556,611,722,722,944,722,722,611,333,278,333,469,500,333,444,500,444,500,444,333,500,500,278,278,500,278,778,500,500,500,500,333,389,278,500,500,722,500,500,444,480,200,480,541,350,500,350,333,500,444,1000,500,500,333,1000,556,333,889,350,611,350,350,333,333,444,444,350,500,1000,333,980,389,333,722,350,444,722,250,333,500,500,500,500,200,500,333,760,276,500,564,333,760,333,400,564,300,300,333,500,453,250,333,300,310,500,750,750,750,444,722,722,722,722,722,722,889,667,611,611,611,611,333,333,333,333,722,722,722,722,722,722,722,564,722,722,722,722,722,722,556,500,444,444,444,444,444,444,667,444,444,444,444,444,278,278,278,278,500,500,500,500,500,500,500,564,500,500,500,500,500,500,500,500]} -------------------------------------------------------------------------------- /font/timesb.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Times-Bold","Up":-100,"Ut":50,"Cw":[250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,333,555,500,500,1000,833,278,333,333,500,570,250,333,250,278,500,500,500,500,500,500,500,500,500,500,333,333,570,570,570,500,930,722,667,722,722,667,611,778,778,389,500,778,667,944,722,778,611,778,722,556,667,722,722,1000,722,722,667,333,278,333,581,500,333,500,556,444,556,444,333,500,556,278,333,556,278,833,556,500,556,556,444,389,333,556,500,722,500,500,444,394,220,394,520,350,500,350,333,500,500,1000,500,500,333,1000,556,333,1000,350,667,350,350,333,333,500,500,350,500,1000,333,1000,389,333,722,350,444,722,250,333,500,500,500,500,220,500,333,747,300,500,570,333,747,333,400,570,300,300,333,556,540,250,333,300,330,500,750,750,750,500,722,722,722,722,722,722,1000,722,667,667,667,667,389,389,389,389,722,722,778,778,778,778,778,570,778,722,722,722,722,722,611,556,500,500,500,500,500,500,722,444,444,444,444,444,278,278,278,278,500,556,500,500,500,500,500,570,500,556,556,556,556,500,556,500]} -------------------------------------------------------------------------------- /font/timesbi.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Times-BoldItalic","Up":-100,"Ut":50,"Cw":[250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,389,555,500,500,833,778,278,333,333,500,570,250,333,250,278,500,500,500,500,500,500,500,500,500,500,333,333,570,570,570,500,832,667,667,667,722,667,667,722,778,389,500,667,611,889,722,722,611,722,667,556,611,722,667,889,667,611,611,333,278,333,570,500,333,500,500,444,500,444,333,500,556,278,278,500,278,778,556,500,500,500,389,389,278,556,444,667,500,444,389,348,220,348,570,350,500,350,333,500,500,1000,500,500,333,1000,556,333,944,350,611,350,350,333,333,500,500,350,500,1000,333,1000,389,333,722,350,389,611,250,389,500,500,500,500,220,500,333,747,266,500,606,333,747,333,400,570,300,300,333,576,500,250,333,300,300,500,750,750,750,500,667,667,667,667,667,667,944,667,667,667,667,667,389,389,389,389,722,722,722,722,722,722,722,570,722,722,722,722,722,611,611,500,500,500,500,500,500,500,722,444,444,444,444,444,278,278,278,278,500,556,500,500,500,500,500,570,500,556,556,556,556,444,500,444]} -------------------------------------------------------------------------------- /font/timesi.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"Times-Italic","Up":-100,"Ut":50,"Cw":[250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,333,420,500,500,833,778,214,333,333,500,675,250,333,250,278,500,500,500,500,500,500,500,500,500,500,333,333,675,675,675,500,920,611,611,667,722,611,611,722,722,333,444,667,556,833,667,722,611,722,611,500,556,722,611,833,611,556,556,389,278,389,422,500,333,500,500,444,500,444,278,500,500,278,278,444,278,722,500,500,500,500,389,389,278,500,444,667,444,444,389,400,275,400,541,350,500,350,333,500,556,889,500,500,333,1000,500,333,944,350,556,350,350,333,333,556,556,350,500,889,333,980,389,333,667,350,389,556,250,389,500,500,500,500,275,500,333,760,276,500,675,333,760,333,400,675,300,300,333,500,523,250,333,300,310,500,750,750,750,500,611,611,611,611,611,611,889,667,611,611,611,611,333,333,333,333,722,667,722,722,722,722,722,675,722,722,722,722,722,556,611,500,500,500,500,500,500,500,667,444,444,444,444,444,278,278,278,278,500,500,500,500,500,500,500,675,500,500,500,500,500,444,500,444]} -------------------------------------------------------------------------------- /font/zapfdingbats.json: -------------------------------------------------------------------------------- 1 | {"Tp":"Core","Name":"ZapfDingbats","Up":-100,"Ut":50,"Cw":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,278,974,961,974,980,719,789,790,791,690,960,939,549,855,911,933,911,945,974,755,846,762,761,571,677,763,760,759,754,494,552,537,577,692,786,788,788,790,793,794,816,823,789,841,823,833,816,831,923,744,723,749,790,792,695,776,768,792,759,707,708,682,701,826,815,789,789,707,687,696,689,786,787,713,791,785,791,873,761,762,762,759,759,892,892,788,784,438,138,277,415,392,392,668,668,0,390,390,317,317,276,276,509,509,410,410,234,234,334,334,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,732,544,544,910,667,760,760,776,595,694,626,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,894,838,1016,458,748,924,748,918,927,928,928,834,873,828,924,924,917,930,931,463,883,836,836,867,867,696,696,874,0,874,760,946,771,865,771,888,967,888,831,873,927,970,918,0]} -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/phpdave11/gofpdf 2 | 3 | go 1.12 4 | 5 | require ( 6 | github.com/boombuler/barcode v1.0.0 7 | github.com/phpdave11/gofpdi v1.0.15 8 | github.com/pkg/errors v0.9.1 // indirect 9 | github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58 10 | golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a 11 | ) 12 | 13 | replace gofpdf => ./ 14 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/boombuler/barcode v1.0.0 h1:s1TvRnXwL2xJRaccrdcBQMZxq6X7DvsMogtmJeHDdrc= 2 | github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= 3 | github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= 4 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 5 | github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= 6 | github.com/phpdave11/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= 7 | github.com/phpdave11/gofpdi v1.0.7 h1:k2oy4yhkQopCK+qW8KjCla0iU2RpDow+QUDmH9DDt44= 8 | github.com/phpdave11/gofpdi v1.0.7/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= 9 | github.com/phpdave11/gofpdi v1.0.9 h1:MpzgK5tRbY7mfiGcLcV3CUk3sFBa61xbBXDYW3LlmBM= 10 | github.com/phpdave11/gofpdi v1.0.9/go.mod h1:r/fO8a9KSCrpwwTaqEx3amFJ6IHjfvAq7w1GP0XYRcg= 11 | github.com/phpdave11/gofpdi v1.0.10 h1:hghWGyJV8uSyIYvzCasOtqevbV/4FCL8fef9y8ttJTU= 12 | github.com/phpdave11/gofpdi v1.0.10/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= 13 | github.com/phpdave11/gofpdi v1.0.11 h1:wsBNx+3S0wy1dEp6fzv281S74ogZGgIdYWV2PugWgho= 14 | github.com/phpdave11/gofpdi v1.0.11/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= 15 | github.com/phpdave11/gofpdi v1.0.12 h1:RZb9NG62cw/RW0rHAduVRo+98R8o/G1krcg2ns7DakQ= 16 | github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= 17 | github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= 18 | github.com/phpdave11/gofpdi v1.0.15 h1:iJazY1BQ07I9s7N5EWjBO1YbhmKfHGxNligUv/Rw4Lc= 19 | github.com/phpdave11/gofpdi v1.0.15/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= 20 | github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= 21 | github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 22 | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= 23 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 24 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 25 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 26 | github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58 h1:nlG4Wa5+minh3S9LVFtNoY+GVRiudA2e3EVfcCi3RCA= 27 | github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= 28 | github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= 29 | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 30 | golang.org/x/image v0.0.0-20190902063713-cb417be4ba39 h1:4dQcAORh9oYBwVSBVIkP489LUPC+f1HBkTYXgmqfR+o= 31 | golang.org/x/image v0.0.0-20190902063713-cb417be4ba39/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= 32 | golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a h1:gHevYm0pO4QUbwy8Dmdr01R5r1BuKtfYqRqF0h/Cbh0= 33 | golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= 34 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 35 | -------------------------------------------------------------------------------- /image/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/doc.png -------------------------------------------------------------------------------- /image/doc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | godoc 15 | godoc 16 | 17 | reference 18 | reference 19 | 20 | 21 | -------------------------------------------------------------------------------- /image/fpdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/fpdf.png -------------------------------------------------------------------------------- /image/gofpdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/gofpdf.png -------------------------------------------------------------------------------- /image/golang-gopher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/golang-gopher.png -------------------------------------------------------------------------------- /image/golang-gopher.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/golang-gopher.tiff -------------------------------------------------------------------------------- /image/logo-gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/logo-gray.png -------------------------------------------------------------------------------- /image/logo-progressive.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/logo-progressive.jpg -------------------------------------------------------------------------------- /image/logo-rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/logo-rgb.png -------------------------------------------------------------------------------- /image/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/logo.gif -------------------------------------------------------------------------------- /image/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/logo.jpg -------------------------------------------------------------------------------- /image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/logo.png -------------------------------------------------------------------------------- /image/logo_gofpdf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/logo_gofpdf.jpg -------------------------------------------------------------------------------- /image/mit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/mit.png -------------------------------------------------------------------------------- /image/mit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | license 15 | license 16 | 17 | MIT 18 | MIT 19 | 20 | 21 | -------------------------------------------------------------------------------- /image/sweden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/image/sweden.png -------------------------------------------------------------------------------- /internal/example/example.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015 Kurt Jung (Gmail: kurt.w.jung) 2 | // 3 | // Permission to use, copy, modify, and distribute this software for any purpose 4 | // with or without fee is hereby granted, provided that the above copyright notice 5 | // and this permission notice appear in all copies. 6 | // 7 | // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 8 | // REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 9 | // FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 10 | // INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 11 | // LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 12 | // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 13 | // PERFORMANCE OF THIS SOFTWARE. 14 | 15 | // Package example provides some helper routines for the test packages of 16 | // gofpdf and its various contributed packages located beneath the contrib 17 | // directory. 18 | package example 19 | 20 | import ( 21 | "fmt" 22 | "os" 23 | "path/filepath" 24 | "strings" 25 | "time" 26 | 27 | "github.com/phpdave11/gofpdf" 28 | ) 29 | 30 | var gofpdfDir string 31 | 32 | func init() { 33 | setRoot() 34 | gofpdf.SetDefaultCompression(false) 35 | gofpdf.SetDefaultCatalogSort(true) 36 | gofpdf.SetDefaultCreationDate(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)) 37 | gofpdf.SetDefaultModificationDate(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)) 38 | } 39 | 40 | // setRoot assigns the relative path to the gofpdfDir directory based on current working 41 | // directory 42 | func setRoot() { 43 | wdStr, err := os.Getwd() 44 | if err == nil { 45 | gofpdfDir = "" 46 | list := strings.Split(filepath.ToSlash(wdStr), "/") 47 | for j := len(list) - 1; j >= 0 && list[j] != "gofpdf"; j-- { 48 | gofpdfDir = filepath.Join(gofpdfDir, "..") 49 | } 50 | } else { 51 | panic(err) 52 | } 53 | } 54 | 55 | // ImageFile returns a qualified filename in which the path to the image 56 | // directory is prepended to the specified filename. 57 | func ImageFile(fileStr string) string { 58 | return filepath.Join(gofpdfDir, "image", fileStr) 59 | } 60 | 61 | // FontDir returns the path to the font directory. 62 | func FontDir() string { 63 | return filepath.Join(gofpdfDir, "font") 64 | } 65 | 66 | // FontFile returns a qualified filename in which the path to the font 67 | // directory is prepended to the specified filename. 68 | func FontFile(fileStr string) string { 69 | return filepath.Join(FontDir(), fileStr) 70 | } 71 | 72 | // TextFile returns a qualified filename in which the path to the text 73 | // directory is prepended to the specified filename. 74 | func TextFile(fileStr string) string { 75 | return filepath.Join(gofpdfDir, "text", fileStr) 76 | } 77 | 78 | // PdfDir returns the path to the PDF output directory. 79 | func PdfDir() string { 80 | return filepath.Join(gofpdfDir, "pdf") 81 | } 82 | 83 | // PdfFile returns a qualified filename in which the path to the PDF output 84 | // directory is prepended to the specified filename. 85 | func PdfFile(fileStr string) string { 86 | return filepath.Join(PdfDir(), fileStr) 87 | } 88 | 89 | // Filename returns a qualified filename in which the example PDF directory 90 | // path is prepended and the suffix ".pdf" is appended to the specified 91 | // filename. 92 | func Filename(baseStr string) string { 93 | return PdfFile(baseStr + ".pdf") 94 | } 95 | 96 | // referenceCompare compares the specified file with the file's reference copy 97 | // located in the 'reference' subdirectory. All bytes of the two files are 98 | // compared except for the value of the /CreationDate field in the PDF. This 99 | // function succeeds if both files are equivalent except for their 100 | // /CreationDate values or if the reference file does not exist. 101 | func referenceCompare(fileStr string) (err error) { 102 | var refFileStr, refDirStr, dirStr, baseFileStr string 103 | dirStr, baseFileStr = filepath.Split(fileStr) 104 | refDirStr = filepath.Join(dirStr, "reference") 105 | err = os.MkdirAll(refDirStr, 0755) 106 | if err == nil { 107 | refFileStr = filepath.Join(refDirStr, baseFileStr) 108 | err = gofpdf.ComparePDFFiles(fileStr, refFileStr, false) 109 | } 110 | return 111 | } 112 | 113 | // Summary generates a predictable report for use by test examples. If the 114 | // specified error is nil, the filename delimiters are normalized and the 115 | // filename printed to standard output with a success message. If the specified 116 | // error is not nil, its String() value is printed to standard output. 117 | func Summary(err error, fileStr string) { 118 | if err == nil { 119 | fileStr = filepath.ToSlash(fileStr) 120 | fmt.Printf("Successfully generated %s\n", fileStr) 121 | } else { 122 | fmt.Println(err) 123 | } 124 | } 125 | 126 | // SummaryCompare generates a predictable report for use by test examples. If 127 | // the specified error is nil, the generated file is compared with a reference 128 | // copy for byte-for-byte equality. If the files match, then the filename 129 | // delimiters are normalized and the filename printed to standard output with a 130 | // success message. If the files do not match, this condition is reported on 131 | // standard output. If the specified error is not nil, its String() value is 132 | // printed to standard output. 133 | func SummaryCompare(err error, fileStr string) { 134 | if err == nil { 135 | err = referenceCompare(fileStr) 136 | } 137 | if err == nil { 138 | fileStr = filepath.ToSlash(fileStr) 139 | fmt.Printf("Successfully generated %s\n", fileStr) 140 | } else { 141 | fmt.Println(err) 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /internal/example/example_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 Kurt Jung (Gmail: kurt.w.jung) 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | package example_test 18 | 19 | import ( 20 | "errors" 21 | 22 | "github.com/phpdave11/gofpdf/internal/example" 23 | ) 24 | 25 | // ExampleFilename tests the Filename() and Summary() functions. 26 | func ExampleFilename() { 27 | fileStr := example.Filename("example") 28 | example.Summary(errors.New("printer on fire"), fileStr) 29 | // Output: 30 | // printer on fire 31 | } 32 | -------------------------------------------------------------------------------- /internal/files/bin/Makefile: -------------------------------------------------------------------------------- 1 | TRG= ../files.go 2 | JSON= ../../../font/calligra.json 3 | Z= ../../../font/calligra.z 4 | 5 | ${TRG} : ${JSON} ${Z} ./bin 6 | echo "package files" > ${TRG} 7 | echo "" >> ${TRG} 8 | echo "// CalligraJson is embedded byte slice for calligra.json" >> ${TRG} 9 | echo "var CalligraJson = []byte{" >> ${TRG} 10 | ./bin < ${JSON} >> ${TRG} 11 | echo "}" >> ${TRG} 12 | echo "" >> ${TRG} 13 | echo "// CalligraZ is embedded byte slice for calligra.z" >> ${TRG} 14 | echo "var CalligraZ = []byte{" >> ${TRG} 15 | ./bin < ${Z} >> ${TRG} 16 | echo "}" >> ${TRG} 17 | gofmt -s -w ${TRG} 18 | 19 | ./bin : bin.go 20 | go build -v 21 | 22 | clean : 23 | rm -f ./bin ${TRG} 24 | 25 | -------------------------------------------------------------------------------- /internal/files/bin/bin.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "io/ioutil" 6 | "os" 7 | ) 8 | 9 | func main() { 10 | var buf []byte 11 | var pos int 12 | var b byte 13 | var err error 14 | buf, err = ioutil.ReadAll(os.Stdin) 15 | if err == nil { 16 | for _, b = range buf { 17 | fmt.Printf("0x%02X, ", b) 18 | pos++ 19 | if pos >= 16 { 20 | fmt.Println("") 21 | pos = 0 22 | } 23 | } 24 | } 25 | if err != nil { 26 | fmt.Fprintf(os.Stderr, "%s\n", err) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /label.go: -------------------------------------------------------------------------------- 1 | package gofpdf 2 | 3 | // Adapted from Nice Numbers for Graph Labels by Paul Heckbert from "Graphics 4 | // Gems", Academic Press, 1990 5 | 6 | // Paul Heckbert 2 Dec 88 7 | 8 | // https://github.com/erich666/GraphicsGems 9 | 10 | // LICENSE 11 | 12 | // This code repository predates the concept of Open Source, and predates most 13 | // licenses along such lines. As such, the official license truly is: 14 | 15 | // EULA: The Graphics Gems code is copyright-protected. In other words, you 16 | // cannot claim the text of the code as your own and resell it. Using the code 17 | // is permitted in any program, product, or library, non-commercial or 18 | // commercial. Giving credit is not required, though is a nice gesture. The 19 | // code comes as-is, and if there are any flaws or problems with any Gems code, 20 | // nobody involved with Gems - authors, editors, publishers, or webmasters - 21 | // are to be held responsible. Basically, don't be a jerk, and remember that 22 | // anything free comes with no guarantee. 23 | 24 | import ( 25 | "math" 26 | ) 27 | 28 | // niceNum returns a "nice" number approximately equal to x. The number is 29 | // rounded if round is true, converted to its ceiling otherwise. 30 | func niceNum(val float64, round bool) float64 { 31 | var nf float64 32 | 33 | exp := int(math.Floor(math.Log10(val))) 34 | f := val / math.Pow10(exp) 35 | if round { 36 | switch { 37 | case f < 1.5: 38 | nf = 1 39 | case f < 3.0: 40 | nf = 2 41 | case f < 7.0: 42 | nf = 5 43 | default: 44 | nf = 10 45 | } 46 | } else { 47 | switch { 48 | case f <= 1: 49 | nf = 1 50 | case f <= 2.0: 51 | nf = 2 52 | case f <= 5.0: 53 | nf = 5 54 | default: 55 | nf = 10 56 | } 57 | } 58 | return nf * math.Pow10(exp) 59 | } 60 | 61 | // TickmarkPrecision returns an appropriate precision value for label 62 | // formatting. 63 | func TickmarkPrecision(div float64) int { 64 | return int(math.Max(-math.Floor(math.Log10(div)), 0)) 65 | } 66 | 67 | // Tickmarks returns a slice of tickmarks appropriate for a chart axis and an 68 | // appropriate precision for formatting purposes. The values min and max will 69 | // be contained within the tickmark range. 70 | func Tickmarks(min, max float64) (list []float64, precision int) { 71 | if max > min { 72 | spread := niceNum(max-min, false) 73 | d := niceNum((spread / 4), true) 74 | graphMin := math.Floor(min/d) * d 75 | graphMax := math.Ceil(max/d) * d 76 | precision = TickmarkPrecision(d) 77 | for x := graphMin; x < graphMax+0.5*d; x += d { 78 | list = append(list, x) 79 | } 80 | } 81 | return 82 | } 83 | -------------------------------------------------------------------------------- /layer.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Kurt Jung (Gmail: kurt.w.jung) 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | package gofpdf 18 | 19 | // Routines in this file are translated from 20 | // http://www.fpdf.org/en/script/script97.php 21 | 22 | type layerType struct { 23 | name string 24 | visible bool 25 | objNum int // object number 26 | } 27 | 28 | type layerRecType struct { 29 | list []layerType 30 | currentLayer int 31 | openLayerPane bool 32 | } 33 | 34 | func (f *Fpdf) layerInit() { 35 | f.layer.list = make([]layerType, 0) 36 | f.layer.currentLayer = -1 37 | f.layer.openLayerPane = false 38 | } 39 | 40 | // AddLayer defines a layer that can be shown or hidden when the document is 41 | // displayed. name specifies the layer name that the document reader will 42 | // display in the layer list. visible specifies whether the layer will be 43 | // initially visible. The return value is an integer ID that is used in a call 44 | // to BeginLayer(). 45 | func (f *Fpdf) AddLayer(name string, visible bool) (layerID int) { 46 | layerID = len(f.layer.list) 47 | f.layer.list = append(f.layer.list, layerType{name: name, visible: visible}) 48 | return 49 | } 50 | 51 | // BeginLayer is called to begin adding content to the specified layer. All 52 | // content added to the page between a call to BeginLayer and a call to 53 | // EndLayer is added to the layer specified by id. See AddLayer for more 54 | // details. 55 | func (f *Fpdf) BeginLayer(id int) { 56 | f.EndLayer() 57 | if id >= 0 && id < len(f.layer.list) { 58 | f.outf("/OC /OC%d BDC", id) 59 | f.layer.currentLayer = id 60 | } 61 | } 62 | 63 | // EndLayer is called to stop adding content to the currently active layer. See 64 | // BeginLayer for more details. 65 | func (f *Fpdf) EndLayer() { 66 | if f.layer.currentLayer >= 0 { 67 | f.out("EMC") 68 | f.layer.currentLayer = -1 69 | } 70 | } 71 | 72 | // OpenLayerPane advises the document reader to open the layer pane when the 73 | // document is initially displayed. 74 | func (f *Fpdf) OpenLayerPane() { 75 | f.layer.openLayerPane = true 76 | } 77 | 78 | func (f *Fpdf) layerEndDoc() { 79 | if len(f.layer.list) > 0 { 80 | if f.pdfVersion < "1.5" { 81 | f.pdfVersion = "1.5" 82 | } 83 | } 84 | } 85 | 86 | func (f *Fpdf) layerPutLayers() { 87 | for j, l := range f.layer.list { 88 | f.newobj() 89 | f.layer.list[j].objNum = f.n 90 | f.outf("<>", f.textstring(utf8toutf16(l.name))) 91 | f.out("endobj") 92 | } 93 | } 94 | 95 | func (f *Fpdf) layerPutResourceDict() { 96 | if len(f.layer.list) > 0 { 97 | f.out("/Properties <<") 98 | for j, layer := range f.layer.list { 99 | f.outf("/OC%d %d 0 R", j, layer.objNum) 100 | } 101 | f.out(">>") 102 | } 103 | 104 | } 105 | 106 | func (f *Fpdf) layerPutCatalog() { 107 | if len(f.layer.list) > 0 { 108 | onStr := "" 109 | offStr := "" 110 | for _, layer := range f.layer.list { 111 | onStr += sprintf("%d 0 R ", layer.objNum) 112 | if !layer.visible { 113 | offStr += sprintf("%d 0 R ", layer.objNum) 114 | } 115 | } 116 | f.outf("/OCProperties <>>>", onStr, offStr, onStr) 117 | if f.layer.openLayerPane { 118 | f.out("/PageMode /UseOC") 119 | } 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /list/list.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | "path/filepath" 7 | "strings" 8 | ) 9 | 10 | func matchTail(str, tailStr string) (match bool, headStr string) { 11 | sln := len(str) 12 | ln := len(tailStr) 13 | if sln > ln { 14 | match = str[sln-ln:] == tailStr 15 | if match { 16 | headStr = str[:sln-ln] 17 | } 18 | } 19 | return 20 | } 21 | 22 | func matchHead(str, headStr string) (match bool, tailStr string) { 23 | ln := len(headStr) 24 | if len(str) > ln { 25 | match = str[:ln] == headStr 26 | if match { 27 | tailStr = str[ln:] 28 | } 29 | } 30 | return 31 | } 32 | 33 | func main() { 34 | var err error 35 | var ok bool 36 | var showStr, name string 37 | err = filepath.Walk("pdf/reference", func(path string, info os.FileInfo, err error) error { 38 | if info.Mode().IsRegular() { 39 | name = filepath.Base(path) 40 | ok, name = matchTail(name, ".pdf") 41 | if ok { 42 | name = strings.Replace(name, "_", " ", -1) 43 | ok, showStr = matchHead(name, "Fpdf ") 44 | if ok { 45 | fmt.Printf("[%s](%s)\n", showStr, path) 46 | } else { 47 | ok, showStr = matchHead(name, "contrib ") 48 | if ok { 49 | fmt.Printf("[%s](%s)\n", showStr, path) 50 | } 51 | } 52 | } 53 | } 54 | return nil 55 | }) 56 | if err != nil { 57 | fmt.Println(err) 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /makefont/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013 Kurt Jung 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | /* 18 | Command makefont generates a font definition file. 19 | 20 | This utility is used to generate a font definition file that allows TrueType 21 | and Type1 fonts to be used in PDFs produced with the fpdf package. 22 | */ 23 | package main 24 | -------------------------------------------------------------------------------- /makefont/makefont.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "flag" 5 | "fmt" 6 | "github.com/phpdave11/gofpdf" 7 | "os" 8 | ) 9 | 10 | func errPrintf(fmtStr string, args ...interface{}) { 11 | fmt.Fprintf(os.Stderr, fmtStr, args...) 12 | } 13 | 14 | func showHelp() { 15 | errPrintf("Usage: %s [options] font_file [font_file...]\n", os.Args[0]) 16 | flag.PrintDefaults() 17 | fmt.Fprintln(os.Stderr, "\n"+ 18 | "font_file is the name of the TrueType file (extension .ttf), OpenType file\n"+ 19 | "(extension .otf) or binary Type1 file (extension .pfb) from which to\n"+ 20 | "generate a definition file. If an OpenType file is specified, it must be one\n"+ 21 | "that is based on TrueType outlines, not PostScript outlines; this cannot be\n"+ 22 | "determined from the file extension alone. If a Type1 file is specified, a\n"+ 23 | "metric file with the same pathname except with the extension .afm must be\n"+ 24 | "present.") 25 | errPrintf("\nExample: %s --embed --enc=../font/cp1252.map --dst=../font calligra.ttf /opt/font/symbol.pfb\n", os.Args[0]) 26 | } 27 | 28 | func tutorialSummary(f *gofpdf.Fpdf, fileStr string) { 29 | if f.Ok() { 30 | fl, err := os.Create(fileStr) 31 | defer fl.Close() 32 | if err == nil { 33 | f.Output(fl) 34 | } else { 35 | f.SetError(err) 36 | } 37 | } 38 | if f.Ok() { 39 | fmt.Printf("Successfully generated %s\n", fileStr) 40 | } else { 41 | errPrintf("%s\n", f.Error()) 42 | } 43 | } 44 | 45 | func main() { 46 | var dstDirStr, encodingFileStr string 47 | var err error 48 | var help, embed bool 49 | flag.StringVar(&dstDirStr, "dst", ".", "directory for output files (*.z, *.json)") 50 | flag.StringVar(&encodingFileStr, "enc", "cp1252.map", "code page file") 51 | flag.BoolVar(&embed, "embed", false, "embed font into PDF") 52 | flag.BoolVar(&help, "help", false, "command line usage") 53 | flag.Parse() 54 | if help { 55 | showHelp() 56 | } else { 57 | args := flag.Args() 58 | if len(args) > 0 { 59 | for _, fileStr := range args { 60 | err = gofpdf.MakeFont(fileStr, encodingFileStr, dstDirStr, os.Stderr, embed) 61 | if err != nil { 62 | errPrintf("%s\n", err) 63 | } 64 | // errPrintf("Font file [%s], Encoding file [%s], Embed [%v]\n", fileStr, encodingFileStr, embed) 65 | } 66 | } else { 67 | errPrintf("At least one Type1 or TrueType font must be specified\n") 68 | showHelp() 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /makefont/makefont_test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "os/exec" 5 | "strings" 6 | "testing" 7 | ) 8 | 9 | func TestMakefont(t *testing.T) { 10 | var out []byte 11 | var err error 12 | const expect = "Font definition file successfully generated" 13 | // Make sure makefont utility has been built before generating font definition file 14 | err = exec.Command("go", "build").Run() 15 | if err != nil { 16 | t.Fatal(err) 17 | } 18 | out, err = exec.Command("./makefont", "--dst=../font", "--embed", 19 | "--enc=../font/cp1252.map", "../font/calligra.ttf").CombinedOutput() 20 | if err != nil { 21 | t.Fatal(err) 22 | } 23 | if !strings.Contains(string(out), expect) { 24 | t.Fatalf("Unexpected output from makefont") 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /pdf/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/.empty -------------------------------------------------------------------------------- /pdf/reference/Fpdf_AddFont.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_AddFont.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_AddLayer.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_AddLayer.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_AddPage.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_AddPage.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_AddUTF8Font.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_AddUTF8Font.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_Beziergon.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.3 2 | 3 0 obj 3 | <> 7 | endobj 8 | 4 0 obj 9 | <> 10 | stream 11 | 0 J 12 | 0 j 13 | 0.57 w 14 | 0.000 G 15 | 0.000 g 16 | BT /F0 15.00 Tf ET 17 | BT 176.34 801.54 Td (Demonstration of Beziergon function) Tj ET 18 | [2.27 2.27] 0.00 d 19 | 0.627 G 20 | 121.89 690.00 m 21 | 209.76378 690.00024 l 22 | 209.76378 602.12622 l 23 | 297.63780 602.12622 l 24 | 297.63780 514.25220 l 25 | 385.51181 514.25220 l 26 | 385.51181 426.37819 l 27 | 473.38583 426.37819 l 28 | 473.38583 338.50417 l 29 | 209.76378 338.50417 l 30 | 209.76378 426.37819 l 31 | 121.88976 426.37819 l 32 | 121.88976 690.00024 l 33 | S 34 | [] 0.00 d 35 | 0.251 0.251 0.502 RG 36 | 1.70 w 37 | 121.89 426.38 m 38 | 69.16535 479.10260 69.16535 637.27583 121.88976 690.00024 c 39 | 174.61417 742.72465 157.03937 742.72465 209.76378 690.00024 c 40 | 262.48819 637.27583 157.03937 654.85063 209.76378 602.12622 c 41 | 262.48819 549.40181 244.91339 654.85063 297.63780 602.12622 c 42 | 350.36220 549.40181 244.91339 566.97661 297.63780 514.25220 c 43 | 350.36220 461.52780 332.78740 566.97661 385.51181 514.25220 c 44 | 438.23622 461.52780 332.78740 479.10260 385.51181 426.37819 c 45 | 438.23622 373.65378 420.66142 479.10260 473.38583 426.37819 c 46 | 526.11024 373.65378 526.11024 391.22858 473.38583 338.50417 c 47 | 420.66142 285.77976 262.48819 285.77976 209.76378 338.50417 c 48 | 157.03937 391.22858 262.48819 373.65378 209.76378 426.37819 c 49 | 157.03937 479.10260 174.61417 373.65378 121.88976 426.37819 c 50 | S 51 | 52 | endstream 53 | endobj 54 | 1 0 obj 55 | <> 60 | endobj 61 | 5 0 obj 62 | <> 67 | endobj 68 | 2 0 obj 69 | << 70 | /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 71 | /Font << 72 | /F0 5 0 R 73 | >> 74 | /XObject << 75 | >> 76 | >> 77 | endobj 78 | 6 0 obj 79 | << 80 | /Producer (FPDF 1.7) 81 | /CreationDate (D:20000101000000) 82 | >> 83 | endobj 84 | 7 0 obj 85 | << 86 | /Type /Catalog 87 | /Pages 1 0 R 88 | >> 89 | endobj 90 | xref 91 | 0 8 92 | 0000000000 65535 f 93 | 0000001370 00000 n 94 | 0000001553 00000 n 95 | 0000000009 00000 n 96 | 0000000087 00000 n 97 | 0000001457 00000 n 98 | 0000001657 00000 n 99 | 0000001732 00000 n 100 | trailer 101 | << 102 | /Size 8 103 | /Root 7 0 R 104 | /Info 6 0 R 105 | >> 106 | startxref 107 | 1781 108 | %%EOF 109 | -------------------------------------------------------------------------------- /pdf/reference/Fpdf_Bookmark.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.3 2 | 3 0 obj 3 | <> 7 | endobj 8 | 4 0 obj 9 | <> 10 | stream 11 | 0 J 12 | 0 j 13 | 0.57 w 14 | 0.000 G 15 | 0.000 g 16 | BT /F0 15.00 Tf ET 17 | BT 31.19 800.54 Td (Paragraph 1) Tj ET 18 | BT 31.19 658.80 Td (Paragraph 2) Tj ET 19 | 20 | endstream 21 | endobj 22 | 5 0 obj 23 | <> 27 | endobj 28 | 6 0 obj 29 | <> 30 | stream 31 | 0 J 32 | 0 j 33 | 0.57 w 34 | BT /F0 15.00 Tf ET 35 | 0.000 G 36 | 0.000 g 37 | BT 31.19 800.54 Td (Paragraph 3) Tj ET 38 | 39 | endstream 40 | endobj 41 | 1 0 obj 42 | <> 47 | endobj 48 | 7 0 obj 49 | <> 54 | endobj 55 | 2 0 obj 56 | << 57 | /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 58 | /Font << 59 | /F0 7 0 R 60 | >> 61 | /XObject << 62 | >> 63 | >> 64 | endobj 65 | 8 0 obj 66 | <> 73 | endobj 74 | 9 0 obj 75 | <> 80 | endobj 81 | 10 0 obj 82 | <> 87 | endobj 88 | 11 0 obj 89 | <> 96 | endobj 97 | 12 0 obj 98 | <> 102 | endobj 103 | 13 0 obj 104 | <> 106 | endobj 107 | 14 0 obj 108 | << 109 | /Producer (FPDF 1.7) 110 | /CreationDate (D:20000101000000) 111 | >> 112 | endobj 113 | 15 0 obj 114 | << 115 | /Type /Catalog 116 | /Pages 1 0 R 117 | /Outlines 13 0 R 118 | /PageMode /UseOutlines 119 | >> 120 | endobj 121 | xref 122 | 0 16 123 | 0000000000 65535 f 124 | 0000000479 00000 n 125 | 0000000668 00000 n 126 | 0000000009 00000 n 127 | 0000000087 00000 n 128 | 0000000264 00000 n 129 | 0000000342 00000 n 130 | 0000000572 00000 n 131 | 0000000772 00000 n 132 | 0000000903 00000 n 133 | 0000001012 00000 n 134 | 0000001121 00000 n 135 | 0000001253 00000 n 136 | 0000001351 00000 n 137 | 0000001413 00000 n 138 | 0000001489 00000 n 139 | trailer 140 | << 141 | /Size 16 142 | /Root 15 0 R 143 | /Info 14 0 R 144 | >> 145 | startxref 146 | 1579 147 | %%EOF 148 | -------------------------------------------------------------------------------- /pdf/reference/Fpdf_CellFormat_align.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_CellFormat_align.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_CellFormat_codepage.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_CellFormat_codepage.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_CellFormat_codepageescape.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_CellFormat_codepageescape.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_ClipText.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_ClipText.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_CreateTemplate.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_CreateTemplate.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_EmbeddedFont.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_EmbeddedFont.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_HTMLBasicNew.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_HTMLBasicNew.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_LinearGradient_gradient.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.3 2 | 3 0 obj 3 | <> 7 | endobj 8 | 4 0 obj 9 | <> 10 | stream 11 | 0 J 12 | 0 j 13 | 0.57 w 14 | BT /F0 12.00 Tf ET 15 | 0.000 G 16 | 0.000 g 17 | q 0.00 841.89 595.28 -283.46 re W n 18 | 595.27559 0 0 283.46457 0.00000 558.42543 cm 19 | /Sh1 sh 20 | Q 21 | q 56.69 771.02 212.60 -212.60 re W n 22 | 212.59843 0 0 212.59843 56.69291 558.42543 cm 23 | /Sh2 sh 24 | Q 25 | 56.69 771.02 212.60 -212.60 re S 26 | q 325.98 771.02 212.60 -212.60 re W n 27 | 212.59843 0 0 212.59843 325.98425 558.42543 cm 28 | /Sh3 sh 29 | Q 30 | 325.98 771.02 212.60 -212.60 re S 31 | q 56.69 501.73 212.60 -212.60 re W n 32 | 212.59843 0 0 212.59843 56.69291 289.13409 cm 33 | /Sh4 sh 34 | Q 35 | 56.69 501.73 212.60 -212.60 re S 36 | q 325.98 501.73 212.60 -212.60 re W n 37 | 212.59843 0 0 212.59843 325.98425 289.13409 cm 38 | /Sh5 sh 39 | Q 40 | 325.98 501.73 212.60 -212.60 re S 41 | 42 | endstream 43 | endobj 44 | 1 0 obj 45 | <> 50 | endobj 51 | 5 0 obj 52 | <> 53 | endobj 54 | 6 0 obj 55 | <> 57 | endobj 58 | 7 0 obj 59 | <> 60 | endobj 61 | 8 0 obj 62 | <> 64 | endobj 65 | 9 0 obj 66 | <> 67 | endobj 68 | 10 0 obj 69 | <> 71 | endobj 72 | 11 0 obj 73 | <> 74 | endobj 75 | 12 0 obj 76 | <> 78 | endobj 79 | 13 0 obj 80 | <> 81 | endobj 82 | 14 0 obj 83 | <> 85 | endobj 86 | 15 0 obj 87 | <> 92 | endobj 93 | 2 0 obj 94 | << 95 | /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 96 | /Font << 97 | /F0 15 0 R 98 | >> 99 | /XObject << 100 | >> 101 | /Shading << 102 | /Sh1 6 0 R 103 | /Sh2 8 0 R 104 | /Sh3 10 0 R 105 | /Sh4 12 0 R 106 | /Sh5 14 0 R 107 | >> 108 | >> 109 | endobj 110 | 16 0 obj 111 | << 112 | /Producer (FPDF 1.7) 113 | /CreationDate (D:20000101000000) 114 | >> 115 | endobj 116 | 17 0 obj 117 | << 118 | /Type /Catalog 119 | /Pages 1 0 R 120 | >> 121 | endobj 122 | xref 123 | 0 18 124 | 0000000000 65535 f 125 | 0000000787 00000 n 126 | 0000002203 00000 n 127 | 0000000009 00000 n 128 | 0000000087 00000 n 129 | 0000000874 00000 n 130 | 0000000980 00000 n 131 | 0000001115 00000 n 132 | 0000001221 00000 n 133 | 0000001356 00000 n 134 | 0000001462 00000 n 135 | 0000001598 00000 n 136 | 0000001705 00000 n 137 | 0000001852 00000 n 138 | 0000001959 00000 n 139 | 0000002106 00000 n 140 | 0000002381 00000 n 141 | 0000002457 00000 n 142 | trailer 143 | << 144 | /Size 18 145 | /Root 17 0 R 146 | /Info 16 0 R 147 | >> 148 | startxref 149 | 2507 150 | %%EOF 151 | -------------------------------------------------------------------------------- /pdf/reference/Fpdf_MoveTo_path.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.3 2 | 3 0 obj 3 | <> 7 | endobj 8 | 4 0 obj 9 | <> 10 | stream 11 | 0 J 12 | 0 j 13 | 0.57 w 14 | 0.000 G 15 | 0.000 g 16 | 56.69 785.20 m 17 | 481.89 785.20 l 18 | 481.89 785.20 l 19 | 496.73193 785.19709 511.48271 779.08712 521.97771 768.59212 c 20 | 532.47271 758.09712 538.58268 743.34634 538.58268 728.50417 c 21 | 538.58268 558.42543 297.63780 558.42543 v 22 | 56.69291 558.42543 297.63780 274.96087 56.69291 274.96087 c 23 | h 24 | 0.784 g 25 | 8.50 w 26 | B 27 | 28 | endstream 29 | endobj 30 | 1 0 obj 31 | <> 36 | endobj 37 | 2 0 obj 38 | << 39 | /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 40 | /Font << 41 | >> 42 | /XObject << 43 | >> 44 | >> 45 | endobj 46 | 5 0 obj 47 | << 48 | /Producer (FPDF 1.7) 49 | /CreationDate (D:20000101000000) 50 | >> 51 | endobj 52 | 6 0 obj 53 | << 54 | /Type /Catalog 55 | /Pages 1 0 R 56 | >> 57 | endobj 58 | xref 59 | 0 7 60 | 0000000000 65535 f 61 | 0000000459 00000 n 62 | 0000000546 00000 n 63 | 0000000009 00000 n 64 | 0000000087 00000 n 65 | 0000000640 00000 n 66 | 0000000715 00000 n 67 | trailer 68 | << 69 | /Size 7 70 | /Root 6 0 R 71 | /Info 5 0 R 72 | >> 73 | startxref 74 | 764 75 | %%EOF 76 | -------------------------------------------------------------------------------- /pdf/reference/Fpdf_MultiCell.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_MultiCell.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_PageSize.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.3 2 | 3 0 obj 3 | <> 8 | endobj 9 | 4 0 obj 10 | <> 11 | stream 12 | 0 J 13 | 0 j 14 | 0.57 w 15 | BT /F0 14.00 Tf ET 16 | 0.000 G 17 | 0.000 g 18 | BT 400.11 96.60 Td (12 in x 3 in) Tj ET 19 | 20 | endstream 21 | endobj 22 | 5 0 obj 23 | <> 27 | endobj 28 | 6 0 obj 29 | <> 30 | stream 31 | 0 J 32 | 0 j 33 | 0.57 w 34 | BT /F0 14.00 Tf ET 35 | 0.000 G 36 | 0.000 g 37 | BT 187.61 204.60 Td (6 in x 6 in) Tj ET 38 | 39 | endstream 40 | endobj 41 | 7 0 obj 42 | <> 47 | endobj 48 | 8 0 obj 49 | <> 50 | stream 51 | 0 J 52 | 0 j 53 | 0.57 w 54 | BT /F0 14.00 Tf ET 55 | 0.000 G 56 | 0.000 g 57 | BT 76.11 420.60 Td (3 in x 12 in) Tj ET 58 | 59 | endstream 60 | endobj 61 | 1 0 obj 62 | <> 67 | endobj 68 | 9 0 obj 69 | <> 74 | endobj 75 | 2 0 obj 76 | << 77 | /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 78 | /Font << 79 | /F0 9 0 R 80 | >> 81 | /XObject << 82 | >> 83 | >> 84 | endobj 85 | 10 0 obj 86 | << 87 | /Producer (FPDF 1.7) 88 | /CreationDate (D:20000101000000) 89 | >> 90 | endobj 91 | 11 0 obj 92 | << 93 | /Type /Catalog 94 | /Pages 1 0 R 95 | >> 96 | endobj 97 | xref 98 | 0 12 99 | 0000000000 65535 f 100 | 0000000717 00000 n 101 | 0000000914 00000 n 102 | 0000000009 00000 n 103 | 0000000117 00000 n 104 | 0000000255 00000 n 105 | 0000000333 00000 n 106 | 0000000471 00000 n 107 | 0000000579 00000 n 108 | 0000000816 00000 n 109 | 0000001018 00000 n 110 | 0000001094 00000 n 111 | trailer 112 | << 113 | /Size 12 114 | /Root 11 0 R 115 | /Info 10 0 R 116 | >> 117 | startxref 118 | 1144 119 | %%EOF 120 | -------------------------------------------------------------------------------- /pdf/reference/Fpdf_SVGBasicWrite.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_SVGBasicWrite.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_SetFontLoader.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_SetFontLoader.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_SetLeftMargin_multicolumn.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_SetLeftMargin_multicolumn.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_SetLineJoinStyle_caps.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.3 2 | 3 0 obj 3 | <> 7 | endobj 8 | 4 0 obj 9 | <> 10 | stream 11 | 0 J 12 | 0 j 13 | 0.57 w 14 | 0.000 G 15 | 0.000 g 16 | 2 j 17 | 0.200 G 18 | 85.04 w 19 | 99.21 453.55 m 20 | 311.81 297.64 l 21 | 99.21 141.74 l 22 | S 23 | 1.000 0.200 0.200 RG 24 | 7.26 w 25 | 99.21 453.55 m 26 | 311.81 297.64 l 27 | 99.21 141.74 l 28 | S 29 | 2 J 30 | 0 j 31 | 0.200 G 32 | 85.04 w 33 | 311.81 453.55 m 34 | 524.41 297.64 l 35 | 311.81 141.74 l 36 | S 37 | 1.000 0.200 0.200 RG 38 | 7.26 w 39 | 311.81 453.55 m 40 | 524.41 297.64 l 41 | 311.81 141.74 l 42 | S 43 | 1 J 44 | 1 j 45 | 0.200 G 46 | 85.04 w 47 | 524.41 453.55 m 48 | 737.01 297.64 l 49 | 524.41 141.74 l 50 | S 51 | 1.000 0.200 0.200 RG 52 | 7.26 w 53 | 524.41 453.55 m 54 | 737.01 297.64 l 55 | 524.41 141.74 l 56 | S 57 | 58 | endstream 59 | endobj 60 | 1 0 obj 61 | <> 66 | endobj 67 | 2 0 obj 68 | << 69 | /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 70 | /Font << 71 | >> 72 | /XObject << 73 | >> 74 | >> 75 | endobj 76 | 5 0 obj 77 | << 78 | /Producer (FPDF 1.7) 79 | /CreationDate (D:20000101000000) 80 | >> 81 | endobj 82 | 6 0 obj 83 | << 84 | /Type /Catalog 85 | /Pages 1 0 R 86 | >> 87 | endobj 88 | xref 89 | 0 7 90 | 0000000000 65535 f 91 | 0000000615 00000 n 92 | 0000000702 00000 n 93 | 0000000009 00000 n 94 | 0000000087 00000 n 95 | 0000000796 00000 n 96 | 0000000871 00000 n 97 | trailer 98 | << 99 | /Size 7 100 | /Root 6 0 R 101 | /Info 5 0 R 102 | >> 103 | startxref 104 | 920 105 | %%EOF 106 | -------------------------------------------------------------------------------- /pdf/reference/Fpdf_SetProtection.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_SetProtection.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_Splitlines.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.3 2 | 3 0 obj 3 | <> 7 | endobj 8 | 4 0 obj 9 | <> 10 | stream 11 | 0 J 12 | 0 j 13 | 0.57 w 14 | BT /F0 18.00 Tf ET 15 | 0.000 G 16 | 0.000 g 17 | 0.502 G 18 | 1.000 1.000 0.824 rg 19 | 99.21 594.64 396.85 -347.39 re B 20 | q 0.000 g BT 195.39 523.55 Td (Lorem ipsum dolor sit amet,) Tj ET Q 21 | q 0.000 g BT 173.40 505.55 Td (consectetur adipisicing elit, sed do) Tj ET Q 22 | q 0.000 g BT 166.64 487.55 Td (eiusmod tempor incididunt ut labore) Tj ET Q 23 | q 0.000 g BT 170.91 469.55 Td (et dolore magna aliqua. Ut enim ad) Tj ET Q 24 | q 0.000 g BT 196.63 451.55 Td (minim veniam, quis nostrud) Tj ET Q 25 | q 0.000 g BT 172.65 433.55 Td (exercitation ullamco laboris nisi ut) Tj ET Q 26 | q 0.000 g BT 172.91 415.55 Td (aliquip ex ea commodo consequat.) Tj ET Q 27 | q 0.000 g BT 163.42 397.55 Td (Duis aute irure dolor in reprehenderit) Tj ET Q 28 | q 0.000 g BT 168.89 379.55 Td (in voluptate velit esse cillum dolore) Tj ET Q 29 | q 0.000 g BT 159.16 361.55 Td (eu fugiat nulla pariatur. Excepteur sint) Tj ET Q 30 | q 0.000 g BT 163.92 343.55 Td (occaecat cupidatat non proident, sunt) Tj ET Q 31 | q 0.000 g BT 172.90 325.55 Td (in culpa qui officia deserunt mollit) Tj ET Q 32 | q 0.000 g BT 223.64 307.55 Td (anim id est laborum.) Tj ET Q 33 | 34 | endstream 35 | endobj 36 | 1 0 obj 37 | <> 42 | endobj 43 | 5 0 obj 44 | <> 49 | endobj 50 | 2 0 obj 51 | << 52 | /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 53 | /Font << 54 | /F0 5 0 R 55 | >> 56 | /XObject << 57 | >> 58 | >> 59 | endobj 60 | 6 0 obj 61 | << 62 | /Producer (FPDF 1.7) 63 | /CreationDate (D:20000101000000) 64 | >> 65 | endobj 66 | 7 0 obj 67 | << 68 | /Type /Catalog 69 | /Pages 1 0 R 70 | >> 71 | endobj 72 | xref 73 | 0 8 74 | 0000000000 65535 f 75 | 0000001216 00000 n 76 | 0000001401 00000 n 77 | 0000000009 00000 n 78 | 0000000087 00000 n 79 | 0000001303 00000 n 80 | 0000001505 00000 n 81 | 0000001580 00000 n 82 | trailer 83 | << 84 | /Size 8 85 | /Root 7 0 R 86 | /Info 6 0 R 87 | >> 88 | startxref 89 | 1629 90 | %%EOF 91 | -------------------------------------------------------------------------------- /pdf/reference/Fpdf_TransformBegin.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.3 2 | 3 0 obj 3 | <> 7 | endobj 8 | 4 0 obj 9 | <> 10 | stream 11 | 0 J 12 | 0 j 13 | 0.57 w 14 | 0.000 G 15 | 0.000 g 16 | BT /F0 36.00 Tf ET 17 | BT 167.61 777.54 Td (Transformations) Tj ET 18 | q 19 | 1.00000 0.00000 0.00000 -1.00000 0.00000 1552.25244 cm 20 | q BT 167.60580 777.54354 Td 7 Tr (Transformations) Tj ET 21 | q 167.61 813.54 260.06 -47.34 re W n 22 | 260.06400 0 0 47.33858 167.60580 766.20496 cm 23 | /Sh1 sh 24 | Q 25 | Q 26 | Q 27 | BT /F0 12.00 Tf ET 28 | 0.784 G 29 | 141.73 671.81 113.39 -28.35 re S 30 | q 0.784 g BT 141.73 674.65 Td (Scale) Tj ET Q 31 | q 32 | 1.50000 0.00000 0.00000 1.50000 -70.86614 -321.73240 cm 33 | 0.000 G 34 | 141.73 671.81 113.39 -28.35 re S 35 | BT 141.73 674.65 Td (Scale) Tj ET 36 | Q 37 | 0.784 G 38 | 354.33 671.81 113.39 -28.35 re S 39 | q 0.784 g BT 354.33 674.65 Td (Translate) Tj ET Q 40 | q 41 | 1.00000 0.00000 0.00000 1.00000 19.84252 -14.17323 cm 42 | 0.000 G 43 | 354.33 671.81 113.39 -28.35 re S 44 | BT 354.33 674.65 Td (Translate) Tj ET 45 | Q 46 | 0.784 G 47 | 141.73 530.08 113.39 -28.35 re S 48 | q 0.784 g BT 141.73 532.91 Td (Rotate) Tj ET Q 49 | q 50 | 0.93969 0.34202 -0.34202 0.93969 180.15013 -18.21712 cm 51 | 0.000 G 52 | 141.73 530.08 113.39 -28.35 re S 53 | BT 141.73 532.91 Td (Rotate) Tj ET 54 | Q 55 | 0.784 G 56 | 354.33 530.08 113.39 -28.35 re S 57 | q 0.784 g BT 354.33 532.91 Td (Skew) Tj ET Q 58 | q 59 | 1.00000 0.00000 0.57735 1.00000 -306.04124 -0.00000 cm 60 | 0.000 G 61 | 354.33 530.08 113.39 -28.35 re S 62 | BT 354.33 532.91 Td (Skew) Tj ET 63 | Q 64 | 0.784 G 65 | 141.73 388.35 113.39 -28.35 re S 66 | q 0.784 g BT 141.73 391.18 Td (Mirror horizontal) Tj ET Q 67 | q 68 | -1.00000 0.00000 0.00000 1.00000 283.46457 0.00000 cm 69 | 0.000 G 70 | 141.73 388.35 113.39 -28.35 re S 71 | BT 141.73 391.18 Td (Mirror horizontal) Tj ET 72 | Q 73 | 0.784 G 74 | 354.33 388.35 113.39 -28.35 re S 75 | q 0.784 g BT 354.33 391.18 Td (Mirror vertical) Tj ET Q 76 | q 77 | 1.00000 0.00000 0.00000 -1.00000 0.00000 720.00047 cm 78 | 0.000 G 79 | 354.33 388.35 113.39 -28.35 re S 80 | BT 354.33 391.18 Td (Mirror vertical) Tj ET 81 | Q 82 | 0.784 G 83 | 141.73 246.61 113.39 -28.35 re S 84 | q 0.784 g BT 141.73 249.45 Td (Mirror point) Tj ET Q 85 | q 86 | -1.00000 0.00000 0.00000 -1.00000 283.46457 436.53591 cm 87 | 0.000 G 88 | 141.73 246.61 113.39 -28.35 re S 89 | BT 141.73 249.45 Td (Mirror point) Tj ET 90 | Q 91 | 0.784 G 92 | 354.33 246.61 113.39 -28.35 re S 93 | q 0.784 g BT 354.33 249.45 Td (Mirror line) Tj ET Q 94 | q 95 | 0.93969 -0.34202 0.34202 0.93969 -54.13803 129.50388 cm 96 | 337.32 221.10 m 342.99 215.43 l S 97 | 337.32 215.43 m 342.99 221.10 l S 98 | 325.98 218.27 m 510.24 218.27 l S 99 | Q 100 | q 101 | -1.00000 0.00000 0.00000 1.00000 680.31496 0.00000 cm 102 | -0.76604 -0.64279 0.64279 -0.76604 460.43329 604.11992 cm 103 | 0.000 G 104 | 354.33 246.61 113.39 -28.35 re S 105 | BT 354.33 249.45 Td (Mirror line) Tj ET 106 | Q 107 | 108 | endstream 109 | endobj 110 | 1 0 obj 111 | <> 116 | endobj 117 | 5 0 obj 118 | <> 119 | endobj 120 | 6 0 obj 121 | <> 123 | endobj 124 | 7 0 obj 125 | <> 130 | endobj 131 | 2 0 obj 132 | << 133 | /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 134 | /Font << 135 | /F0 7 0 R 136 | >> 137 | /XObject << 138 | >> 139 | /Shading << 140 | /Sh1 6 0 R 141 | >> 142 | >> 143 | endobj 144 | 8 0 obj 145 | << 146 | /Producer (FPDF 1.7) 147 | /CreationDate (D:20000101000000) 148 | >> 149 | endobj 150 | 9 0 obj 151 | << 152 | /Type /Catalog 153 | /Pages 1 0 R 154 | >> 155 | endobj 156 | xref 157 | 0 10 158 | 0000000000 65535 f 159 | 0000002527 00000 n 160 | 0000002951 00000 n 161 | 0000000009 00000 n 162 | 0000000087 00000 n 163 | 0000002614 00000 n 164 | 0000002720 00000 n 165 | 0000002855 00000 n 166 | 0000003081 00000 n 167 | 0000003156 00000 n 168 | trailer 169 | << 170 | /Size 10 171 | /Root 9 0 R 172 | /Info 8 0 R 173 | >> 174 | startxref 175 | 3205 176 | %%EOF 177 | -------------------------------------------------------------------------------- /pdf/reference/Fpdf_UnderlineThickness.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_UnderlineThickness.pdf -------------------------------------------------------------------------------- /pdf/reference/Fpdf_WriteAligned.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/pdf/reference/Fpdf_WriteAligned.pdf -------------------------------------------------------------------------------- /pdf/reference/basic.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.3 2 | 3 0 obj 3 | <> 7 | endobj 8 | 4 0 obj 9 | <> 10 | stream 11 | 0 J 12 | 0 j 13 | 0.57 w 14 | 0.000 G 15 | 0.000 g 16 | BT /F0 16.00 Tf ET 17 | BT 31.19 794.57 Td (Hello World!) Tj ET 18 | 19 | endstream 20 | endobj 21 | 1 0 obj 22 | <> 27 | endobj 28 | 5 0 obj 29 | <> 34 | endobj 35 | 2 0 obj 36 | << 37 | /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 38 | /Font << 39 | /F0 5 0 R 40 | >> 41 | /XObject << 42 | >> 43 | >> 44 | endobj 45 | 6 0 obj 46 | << 47 | /Producer (FPDF 1.7) 48 | /CreationDate (D:20000101000000) 49 | >> 50 | endobj 51 | 7 0 obj 52 | << 53 | /Type /Catalog 54 | /Pages 1 0 R 55 | >> 56 | endobj 57 | xref 58 | 0 8 59 | 0000000000 65535 f 60 | 0000000225 00000 n 61 | 0000000413 00000 n 62 | 0000000009 00000 n 63 | 0000000087 00000 n 64 | 0000000312 00000 n 65 | 0000000517 00000 n 66 | 0000000592 00000 n 67 | trailer 68 | << 69 | /Size 8 70 | /Root 7 0 R 71 | /Info 6 0 R 72 | >> 73 | startxref 74 | 641 75 | %%EOF 76 | -------------------------------------------------------------------------------- /protect.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013-2014 Kurt Jung (Gmail: kurt.w.jung) 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | // PDF protection is adapted from the work of Klemen VODOPIVEC for the fpdf 18 | // product. 19 | 20 | package gofpdf 21 | 22 | import ( 23 | "crypto/md5" 24 | "crypto/rc4" 25 | "encoding/binary" 26 | "math/rand" 27 | ) 28 | 29 | // Advisory bitflag constants that control document activities 30 | const ( 31 | CnProtectPrint = 4 32 | CnProtectModify = 8 33 | CnProtectCopy = 16 34 | CnProtectAnnotForms = 32 35 | ) 36 | 37 | type protectType struct { 38 | encrypted bool 39 | uValue []byte 40 | oValue []byte 41 | pValue int 42 | padding []byte 43 | encryptionKey []byte 44 | objNum int 45 | rc4cipher *rc4.Cipher 46 | rc4n uint32 // Object number associated with rc4 cipher 47 | } 48 | 49 | func (p *protectType) rc4(n uint32, buf *[]byte) { 50 | if p.rc4cipher == nil || p.rc4n != n { 51 | p.rc4cipher, _ = rc4.NewCipher(p.objectKey(n)) 52 | p.rc4n = n 53 | } 54 | p.rc4cipher.XORKeyStream(*buf, *buf) 55 | } 56 | 57 | func (p *protectType) objectKey(n uint32) []byte { 58 | var nbuf, b []byte 59 | nbuf = make([]byte, 8, 8) 60 | binary.LittleEndian.PutUint32(nbuf, n) 61 | b = append(b, p.encryptionKey...) 62 | b = append(b, nbuf[0], nbuf[1], nbuf[2], 0, 0) 63 | s := md5.Sum(b) 64 | return s[0:10] 65 | } 66 | 67 | func oValueGen(userPass, ownerPass []byte) (v []byte) { 68 | var c *rc4.Cipher 69 | tmp := md5.Sum(ownerPass) 70 | c, _ = rc4.NewCipher(tmp[0:5]) 71 | size := len(userPass) 72 | v = make([]byte, size, size) 73 | c.XORKeyStream(v, userPass) 74 | return 75 | } 76 | 77 | func (p *protectType) uValueGen() (v []byte) { 78 | var c *rc4.Cipher 79 | c, _ = rc4.NewCipher(p.encryptionKey) 80 | size := len(p.padding) 81 | v = make([]byte, size, size) 82 | c.XORKeyStream(v, p.padding) 83 | return 84 | } 85 | 86 | func (p *protectType) setProtection(privFlag byte, userPassStr, ownerPassStr string) { 87 | privFlag = 192 | (privFlag & (CnProtectCopy | CnProtectModify | CnProtectPrint | CnProtectAnnotForms)) 88 | p.padding = []byte{ 89 | 0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, 90 | 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, 91 | 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, 92 | 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A, 93 | } 94 | userPass := []byte(userPassStr) 95 | var ownerPass []byte 96 | if ownerPassStr == "" { 97 | ownerPass = make([]byte, 8, 8) 98 | binary.LittleEndian.PutUint64(ownerPass, uint64(rand.Int63())) 99 | } else { 100 | ownerPass = []byte(ownerPassStr) 101 | } 102 | userPass = append(userPass, p.padding...)[0:32] 103 | ownerPass = append(ownerPass, p.padding...)[0:32] 104 | p.encrypted = true 105 | p.oValue = oValueGen(userPass, ownerPass) 106 | var buf []byte 107 | buf = append(buf, userPass...) 108 | buf = append(buf, p.oValue...) 109 | buf = append(buf, privFlag, 0xff, 0xff, 0xff) 110 | sum := md5.Sum(buf) 111 | p.encryptionKey = sum[0:5] 112 | p.uValue = p.uValueGen() 113 | p.pValue = -(int(privFlag^255) + 1) 114 | } 115 | -------------------------------------------------------------------------------- /splittext.go: -------------------------------------------------------------------------------- 1 | package gofpdf 2 | 3 | import ( 4 | "math" 5 | // "strings" 6 | "unicode" 7 | ) 8 | 9 | // SplitText splits UTF-8 encoded text into several lines using the current 10 | // font. Each line has its length limited to a maximum width given by w. This 11 | // function can be used to determine the total height of wrapped text for 12 | // vertical placement purposes. 13 | func (f *Fpdf) SplitText(txt string, w float64) (lines []string) { 14 | cw := f.currentFont.Cw 15 | wmax := int(math.Ceil((w - 2*f.cMargin) * 1000 / f.fontSize)) 16 | s := []rune(txt) // Return slice of UTF-8 runes 17 | nb := len(s) 18 | for nb > 0 && s[nb-1] == '\n' { 19 | nb-- 20 | } 21 | s = s[0:nb] 22 | sep := -1 23 | i := 0 24 | j := 0 25 | l := 0 26 | for i < nb { 27 | c := s[i] 28 | l += cw[c] 29 | if unicode.IsSpace(c) || isChinese(c) { 30 | sep = i 31 | } 32 | if c == '\n' || l > wmax { 33 | if sep == -1 { 34 | if i == j { 35 | i++ 36 | } 37 | sep = i 38 | } else { 39 | i = sep + 1 40 | } 41 | lines = append(lines, string(s[j:sep])) 42 | sep = -1 43 | j = i 44 | l = 0 45 | } else { 46 | i++ 47 | } 48 | } 49 | if i != j { 50 | lines = append(lines, string(s[j:i])) 51 | } 52 | return lines 53 | } 54 | -------------------------------------------------------------------------------- /subwrite.go: -------------------------------------------------------------------------------- 1 | package gofpdf 2 | 3 | // Adapted from http://www.fpdf.org/en/script/script61.php by Wirus and released with the FPDF license. 4 | 5 | // SubWrite prints text from the current position in the same way as Write(). 6 | // ht is the line height in the unit of measure specified in New(). str 7 | // specifies the text to write. subFontSize is the size of the font in points. 8 | // subOffset is the vertical offset of the text in points; a positive value 9 | // indicates a superscript, a negative value indicates a subscript. link is the 10 | // identifier returned by AddLink() or 0 for no internal link. linkStr is a 11 | // target URL or empty for no external link. A non--zero value for link takes 12 | // precedence over linkStr. 13 | // 14 | // The SubWrite example demonstrates this method. 15 | func (f *Fpdf) SubWrite(ht float64, str string, subFontSize, subOffset float64, link int, linkStr string) { 16 | if f.err != nil { 17 | return 18 | } 19 | // resize font 20 | subFontSizeOld := f.fontSizePt 21 | f.SetFontSize(subFontSize) 22 | // reposition y 23 | subOffset = (((subFontSize - subFontSizeOld) / f.k) * 0.3) + (subOffset / f.k) 24 | subX := f.x 25 | subY := f.y 26 | f.SetXY(subX, subY-subOffset) 27 | //Output text 28 | f.write(ht, str, link, linkStr) 29 | // restore y position 30 | subX = f.x 31 | subY = f.y 32 | f.SetXY(subX, subY+subOffset) 33 | // restore font size 34 | f.SetFontSize(subFontSizeOld) 35 | } 36 | -------------------------------------------------------------------------------- /svgwrite.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Kurt Jung (Gmail: kurt.w.jung) 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | package gofpdf 18 | 19 | // SVGBasicWrite renders the paths encoded in the basic SVG image specified by 20 | // sb. The scale value is used to convert the coordinates in the path to the 21 | // unit of measure specified in New(). The current position (as set with a call 22 | // to SetXY()) is used as the origin of the image. The current line cap style 23 | // (as set with SetLineCapStyle()), line width (as set with SetLineWidth()), 24 | // and draw color (as set with SetDrawColor()) are used in drawing the image 25 | // paths. 26 | func (f *Fpdf) SVGBasicWrite(sb *SVGBasicType, scale float64) { 27 | originX, originY := f.GetXY() 28 | var x, y, newX, newY float64 29 | var cx0, cy0, cx1, cy1 float64 30 | var path []SVGBasicSegmentType 31 | var seg SVGBasicSegmentType 32 | var startX, startY float64 33 | sval := func(origin float64, arg int) float64 { 34 | return origin + scale*seg.Arg[arg] 35 | } 36 | xval := func(arg int) float64 { 37 | return sval(originX, arg) 38 | } 39 | yval := func(arg int) float64 { 40 | return sval(originY, arg) 41 | } 42 | val := func(arg int) (float64, float64) { 43 | return xval(arg), yval(arg + 1) 44 | } 45 | for j := 0; j < len(sb.Segments) && f.Ok(); j++ { 46 | path = sb.Segments[j] 47 | for k := 0; k < len(path) && f.Ok(); k++ { 48 | seg = path[k] 49 | switch seg.Cmd { 50 | case 'M': 51 | x, y = val(0) 52 | startX, startY = x, y 53 | f.SetXY(x, y) 54 | case 'L': 55 | newX, newY = val(0) 56 | f.Line(x, y, newX, newY) 57 | x, y = newX, newY 58 | case 'C': 59 | cx0, cy0 = val(0) 60 | cx1, cy1 = val(2) 61 | newX, newY = val(4) 62 | f.CurveCubic(x, y, cx0, cy0, newX, newY, cx1, cy1, "D") 63 | x, y = newX, newY 64 | case 'Q': 65 | cx0, cy0 = val(0) 66 | newX, newY = val(2) 67 | f.Curve(x, y, cx0, cy0, newX, newY, "D") 68 | x, y = newX, newY 69 | case 'H': 70 | newX = xval(0) 71 | f.Line(x, y, newX, y) 72 | x = newX 73 | case 'V': 74 | newY = yval(0) 75 | f.Line(x, y, x, newY) 76 | y = newY 77 | case 'Z': 78 | f.Line(x, y, startX, startY) 79 | x, y = startX, startY 80 | default: 81 | f.SetErrorf("Unexpected path command '%c'", seg.Cmd) 82 | } 83 | } 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /text/20k_c1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpdave11/gofpdf/cb47a268fb6d3af7c24bb522c912b80a43a3d09f/text/20k_c1.txt -------------------------------------------------------------------------------- /text/countries.txt: -------------------------------------------------------------------------------- 1 | Austria;Vienna;83859;8075 2 | Belgium;Brussels;30518;10192 3 | Denmark;Copenhagen;43094;5295 4 | Finland;Helsinki;304529;5147 5 | France;Paris;543965;58728 6 | Germany;Berlin;357022;82057 7 | Greece;Athens;131625;10511 8 | Ireland;Dublin;70723;3694 9 | Italy;Roma;301316;57563 10 | Luxembourg;Luxembourg;2586;424 11 | Netherlands;Amsterdam;41526;15654 12 | Portugal;Lisbon;91906;9957 13 | Spain;Madrid;504790;39348 14 | Sweden;Stockholm;410934;8839 15 | United Kingdom;London;243820;58862 16 | -------------------------------------------------------------------------------- /text/utf-8test.txt: -------------------------------------------------------------------------------- 1 | English: 2 | Eat some more of these soft French buns and drink some tea. 3 | 4 | Greek: 5 | Φάτε μερικά από αυτά τα μαλακά γαλλικά κουλουράκια και πίνετε λίγο τσάι. 6 | 7 | Polish: 8 | Zjedz trochę tych miękkich francuskich bułeczek i wypij herbatę. 9 | 10 | Portuguese: 11 | Coma um pouco mais desses delicados pãezinhos franceses e beba um pouco de chá. 12 | 13 | Russian: 14 | Ешьте еще эти мягкие французские булочки и пейте чай. 15 | 16 | Vietnamese: 17 | Ăn thêm một số bánh Pháp mềm và uống một ít trà. 18 | 19 | Arabic: 20 | أكل بعض أكثر من هذه الكعك الفرنسي لينة وشرب بعض الشاي. 21 | 22 | Armenian: 23 | Կերեք այս փափուկ ֆրանսիական բանջարեղեններից մի քանիսը եւ մի քանի թեյ խմեք: 24 | 25 | Georgian: 26 | ჭამე კიდევ უფრო ამ რბილი ფრანგული buns და ვსვავ გარკვეული ჩაი. 27 | 28 | Hebrew: 29 | לאכול קצת יותר אלה לחמניות צרפתית רכה לשתות תה. 30 | 31 | Icelandic: 32 | Borða meira af þessum mjúka franska bollum og drekkaðu te. 33 | 34 | Igbo: 35 | Rie ụfọdụ n'ime ndị na-asụ French bun ma ṅụọ ụfọdụ tii. 36 | 37 | Kazakh: 38 | Осы жұмсақ француз көкөністерінің кейбіреулерін жеп, кейбір шай ішіңіз. 39 | -------------------------------------------------------------------------------- /text/utf-8test2.txt: -------------------------------------------------------------------------------- 1 | Η μορφή φορητού εγγράφου (PDF) είναι μια ανοικτή ηλεκτρονική μορφή εγγράφων, η οποία αναπτύχθηκε αρχικά από την Adobe Systems, χρησιμοποιώντας μια ποικιλία λειτουργιών γλώσσας PostScript. Πρώτα απ 'όλα προορίζεται για την παρουσίαση έντυπων προϊόντων σε ηλεκτρονική μορφή. Για να δείτε υπάρχουν πολλά προγράμματα, καθώς και το επίσημο δωρεάν πρόγραμμα Adobe Reader. Ένα σημαντικό μέρος του σύγχρονου επαγγελματικού εξοπλισμού εκτύπωσης έχει υποστήριξη υλικού για τη μορφή PDF, η οποία επιτρέπει την εκτύπωση εγγράφων σε αυτή τη μορφή χωρίς τη χρήση λογισμικού. Ο παραδοσιακός τρόπος δημιουργίας εγγράφων PDF είναι ένας εικονικός εκτυπωτής, δηλαδή το ίδιο το έγγραφο είναι έτοιμο στο εξειδικευμένο του πρόγραμμα - ένα γραφικό πρόγραμμα ή ένα πρόγραμμα επεξεργασίας κειμένου. 2 | -------------------------------------------------------------------------------- /ttfparser_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013-2015 Kurt Jung (Gmail: kurt.w.jung) 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | package gofpdf_test 18 | 19 | import ( 20 | "bytes" 21 | "fmt" 22 | 23 | "github.com/phpdave11/gofpdf" 24 | "github.com/phpdave11/gofpdf/internal/example" 25 | ) 26 | 27 | func ExampleTtfParse() { 28 | ttf, err := gofpdf.TtfParse(example.FontDir() + "/calligra.ttf") 29 | if err == nil { 30 | fmt.Printf("Postscript name: %s\n", ttf.PostScriptName) 31 | fmt.Printf("unitsPerEm: %8d\n", ttf.UnitsPerEm) 32 | fmt.Printf("Xmin: %8d\n", ttf.Xmin) 33 | fmt.Printf("Ymin: %8d\n", ttf.Ymin) 34 | fmt.Printf("Xmax: %8d\n", ttf.Xmax) 35 | fmt.Printf("Ymax: %8d\n", ttf.Ymax) 36 | } else { 37 | fmt.Printf("%s\n", err) 38 | } 39 | // Output: 40 | // Postscript name: CalligrapherRegular 41 | // unitsPerEm: 1000 42 | // Xmin: -173 43 | // Ymin: -234 44 | // Xmax: 1328 45 | // Ymax: 899 46 | } 47 | 48 | func hexStr(s string) string { 49 | var b bytes.Buffer 50 | b.WriteString("\"") 51 | for _, ch := range []byte(s) { 52 | b.WriteString(fmt.Sprintf("\\x%02x", ch)) 53 | } 54 | b.WriteString("\":") 55 | return b.String() 56 | } 57 | 58 | func ExampleFpdf_GetStringWidth() { 59 | pdf := gofpdf.New("", "", "", example.FontDir()) 60 | pdf.SetFont("Helvetica", "", 12) 61 | pdf.AddPage() 62 | for _, s := range []string{"Hello", "世界", "\xe7a va?"} { 63 | fmt.Printf("%-32s width %5.2f, bytes %2d, runes %2d\n", 64 | hexStr(s), pdf.GetStringWidth(s), len(s), len([]rune(s))) 65 | if pdf.Err() { 66 | fmt.Println(pdf.Error()) 67 | } 68 | } 69 | pdf.Close() 70 | // Output: 71 | // "\x48\x65\x6c\x6c\x6f": width 9.64, bytes 5, runes 5 72 | // "\xe4\xb8\x96\xe7\x95\x8c": width 13.95, bytes 6, runes 2 73 | // "\xe7\x61\x20\x76\x61\x3f": width 12.47, bytes 6, runes 6 74 | } 75 | --------------------------------------------------------------------------------