def dotest(outputname, nostamp): try: from bidi.algorithm import get_display except ImportError: from unittest import SkipTest raise SkipTest("Need python-bidi") pdf = FPDF() if nostamp: pdf._putinfo = lambda: common.test_putinfo(pdf) pdf.compress = False pdf.add_page() pdf.add_font('DejaVu', '', \ os.path.join(common.basepath, 'font/DejaVuSans.ttf'), uni=True) pdf.set_font('DejaVu', '', 14) # this will be displayed wrong as actually it is stored LTR: text= u"این یک متن پارسی است. This is a Persian text !!" pdf.write(8, text) pdf.ln(8) # Reverse the RLT using the Bidirectional Algorithm to be displayed correctly: # (http://unicode.org/reports/tr9/) rtl_text = get_display(text) pdf.write(8, rtl_text) pdf.output(outputname, 'F')
def dotest(outputname, nostamp): pdf = FPDF() if nostamp: pdf._putinfo = lambda: common.test_putinfo(pdf) pdf.add_page() pdf.add_font('DejaVu', '', os.path.join(common.basepath, 'font/DejaVuSansCondensed.ttf'), uni=True) pdf.set_font('DejaVu', '', 14) # Note: this line cause syntax error in Python 3.0-3.2 text = u""" Veľké písmená A Á Ä B C Č D Ď DZ DŽ E É F G H CH I Í J K L Ĺ Ľ Malé písmená a á ä b c č d ď dz dž e é f g h ch i í j k l ĺ ľ Veľké písmená M N Ň O Ó Ô P Q R Ŕ S Š T Ť U Ú V W X Y Ý Z Ž Malé písmená m n ň o ó ô p q r ŕ s š t ť u ú v w x y ý z ž """ pdf.write(8, text) pdf.ln(8) pdf.output(outputname, 'F')
def dotest(outputname, nostamp): pdf = FPDF() if nostamp: pdf._putinfo = lambda: common.test_putinfo(pdf) pdf.add_page() pdf.set_font('Arial', '', 14) pdf.ln(10) if nostamp: data = "TEST-TEST-TEST" else: data = sys.version #áéíóúüñ # This string converted with errors in py2.x pdf.write(5, ('hello world %s áéíóúüñ' % data)) pdf.output(outputname, 'F')
def dotest(outputname, nostamp): pdf = FPDF() if nostamp: pdf._putinfo = lambda: common.test_putinfo(pdf) pdf.add_page() pdf.set_font('Arial', '', 14) pdf.ln(10) if nostamp: data = "TEST-TEST-TEST" else: data = sys.version pdf.write(5, 'hello world %s' % data) path = os.path.join(common.basepath, os.pardir, "tutorial", "logo.png") pdf.image(path, 50, 50) pdf.image(os.path.join(common.basepath, "flower2.jpg"), 100, 50) pdf.image(os.path.join(common.basepath, "lena.gif"), 50, 75) pdf.output(outputname, 'F')
def dotest(outputname, nostamp): plane = genbar() palette = (0, 0, 0, 255, 255, 255) + (128, 128, 128) * 254 img = Image.fromstring("P", plane.size, plane.tostring()) img.putpalette(palette) with tempfile.NamedTemporaryFile(delete=False, suffix=".gif") as f: gif1 = f.name with tempfile.NamedTemporaryFile(delete=False, suffix=".gif") as f: gif2 = f.name img.save(gif1, "GIF", optimize=0) img.save(gif2, "GIF", transparency=1, optimize=0) pdf = FPDF() if nostamp: pdf._putinfo = lambda: common.test_putinfo(pdf) pdf.add_page() pdf.set_font('Arial', '', 16) pdf.write(8, "Transparency") pdf.ln() pdf.write(8, " Transparency") pdf.ln() pdf.write(8, " Transparency") pdf.ln() pdf.image(gif1, x=15, y=15) pdf.write(8, "Transparency") pdf.ln() pdf.write(8, " Transparency") pdf.ln() pdf.write(8, " Transparency") pdf.ln() pdf.image(gif2, x=15, y=39) pdf.output(outputname, 'F') os.unlink(gif1) os.unlink(gif2)
pdf.set_font('DejaVu', '', 14) text = u""" English: Hello World Greek: Γειά σου κόσμος Polish: Witaj świecie Portuguese: Olá mundo Russian: Здравствуй, Мир Vietnamese: Xin chào thế giới Arabic: مرحبا العالم Hebrew: שלום עולם """ for txt in text.split('\n'): pdf.write(8, txt) pdf.ln(8) # Add a Indic Unicode font (uses UTF-8) # Supports: Bengali, Devanagari, Gujarati, # Gurmukhi (including the variants for Punjabi) # Kannada, Malayalam, Oriya, Tamil, Telugu, Tibetan pdf.add_font('gargi', '', 'gargi.ttf', uni=True) pdf.set_font('gargi', '', 14) pdf.write(8, u'Hindi: नमस्ते दुनिया') pdf.ln(20) # Add a AR PL New Sung Unicode font (uses UTF-8) # The Open Source Chinese Font (also supports other east Asian languages) pdf.add_font('fireflysung', '', 'fireflysung.ttf', uni=True) pdf.set_font('fireflysung', '', 14) pdf.write(8, u'Chinese: 你好世界\n')
with open(os.path.join(base, 'HelloWorld.txt')) as file: txt = file.read() # Add a Unicode font (uses UTF-8) for font in os.listdir(font_dir): if font.lower().endswith('.ttf'): fontpath = os.path.join(font_dir, font) print(fontpath) t0 = time.time() pdf.add_font(font, '', fontpath, uni=True) t1 = time.time() pdf.set_font(font, '', 14) t2 = time.time() pdf.write(8, font) pdf.ln() pdf.write(8, txt) pdf.ln() t3 = time.time() print("ttf loading time", t1 - t0) print("ttf total time", t3 - t0) print() fn = 'unifonts.pdf' pdf.output(fn, 'F') import os try: os.startfile(fn) except: os.system("xdg-open \"%s\"" % fn)