# -*- coding: utf-8 -*-
import os.path
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm, inch
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont, TTFError
from reportlab.pdfgen import canvas
from . import _formatPrice
from .InvoiceObjects import InvoiceTable, InvoiceText, InvoiceImage, GUTSCHRIFT
def find_font_file(filename):
for n in range(4):
candidate = os.path.abspath(os.path.join(os.path.dirname(__file__), '../' * n, 'ressource/fonts', filename))
if os.path.exists(candidate):
return candidate
def _registerFonts():
fonts = [
("DejaVu", "DejaVuSans.ttf"),
("DejaVu-Bold", "DejaVuSans-Bold.ttf"),
("DejaVu-Italic", "DejaVuSans-Oblique.ttf"),
("DejaVu-BoldItalic", "DejaVuSans-BoldOblique.ttf")
]
for fontname, fontfile in fonts:
found = False
try:
pdfmetrics.registerFont(TTFont(fontname, fontfile))
found = True
except TTFError:
pass
if not found:
f = find_font_file(fontfile)
if f:
pdfmetrics.registerFont(TTFont(fontname, f))
class PDF(object):
# Set default font size
default_font_size = 8
font = 'DejaVu'
# set margins
topmargin = 2 * cm
bottommargin = 2.2 * cm
leftmargin = 2 * cm
rightmargin = 2 * cm
rightcolumn = 13 * cm