FattView/fpdf/tests/charmap.py
"Print all charters"
from fpdf import FPDF, FPDF_VERSION, TTFontFile
print FPDF_VERSION
class MyTTFontFile(TTFontFile):
def getCMAP4(self, unicode_cmap_offset, glyphToChar, charToGlyph):
TTFontFile.getCMAP4(self, unicode_cmap_offset, glyphToChar, charToGlyph)
self.saveChar = charToGlyph
def getCMAP12(self, unicode_cmap_offset, glyphToChar, charToGlyph):
TTFontFile.getCMAP12(self, unicode_cmap_offset, glyphToChar, charToGlyph)
self.saveChar = charToGlyph
pdf=FPDF()
pdf.compression = True
pdf.add_page()
fontpath = "DroidSansFallback.ttf"
pdf.add_font("font", '', fontpath, uni = True)
ttf = MyTTFontFile()
ttf.getMetrics(fontpath)
pdf.set_font("font", '', 10)
# create PDF with first 999 charters in font
cnt = 0
for char in ttf.saveChar:
cnt += 1
pdf.write(8, u"%03d) %06x - " % (cnt, char) + unichr(char))
pdf.ln()
if cnt >= 999:
break
fn = 'charmap.pdf'
pdf.output(fn,'F')
import os
try:
os.startfile(fn)
except:
os.system("xdg-open \"%s\"" % fn)