Должно было сработать вот это:
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase.pdfmetrics import registerFontFamily
pdfmetrics.registerFont(TTFont('OpenSansR', 'OpenSans-Regular.ttf'))
pdfmetrics.registerFont(TTFont('OpenSansL', 'OpenSans-Light.ttf'))
pdfmetrics.registerFont(TTFont('OpenSansB', 'OpenSans-Bold.ttf'))
registerFontFamily('OpenSans', normal='OpenSansR', bold='OpenSansB', italic='OpenSansL', boldItalic='OpenSansB')
Но в итоге сработало вот это:
pdfmetrics.registerFont(TTFont('DejaVuSerif', 'fonts/DejaVuSerif.ttf', 'UTF-8'))
pdfmetrics.registerFont(TTFont('DejaVuSerifB', 'fonts/DejaVuSerif-Bold.ttf', 'UTF-8'))
pdfmetrics.registerFont(TTFont('DejaVuSerifI', 'fonts/DejaVuSerif-Italic.ttf', 'UTF-8'))
pdfmetrics.registerFont(TTFont('DejaVuSerifBI','fonts/DejaVuSerif-BoldItalic.ttf', 'UTF-8'))
doc = SimpleDocTemplate(filename + '.pdf', pagesize = A4, title='Basic thing', author='Gogol')
styleSheet = getSampleStyleSheet()
styleSheet['Normal'].fontName='DejaVuSerif'
styleSheet['Heading1'].fontName='DejaVuSerifB'
styleSheet['Heading1'].fontSize = 8
styleSheet['Heading1'].alignment=TA_CENTER
styleSheet['Heading2'].fontName='DejaVuSerif'
addMapping('DejaVuSerif', 0, 0, 'DejaVuSerif') #normal
addMapping('DejaVuSerif', 1, 0, 'DejaVuSerifB') #bold
addMapping('DejaVuSerif', 0, 1, 'DejaVuSerifI') #italic
addMapping('DejaVuSerif', 1, 1, 'DejaVuSerifBI') #italic and bold