Сообщить об ошибке.

Вставка математических формул в создаваемый PDF-документ

Модуль fpdf2 может вставлять математические формулы только в виде изображений. В следующих примерах объясняется, как создавать и вставлять такие изображения.

Использование API Google Charts.

Смотрим пример:

from urllib.parse import quote
from urllib.request import urlopen
from fpdf import FPDF
from PIL import Image

pdf = FPDF()
# директория где лежат системные шрифты OS Linux
font_dir = '/usr/share/fonts/truetype/freefont'
# добавляем TTF-шрифт, поддерживающий кириллицу.
pdf.add_font("Serif", style="", fname=f"{font_dir}/FreeSerif.ttf", uni=True)
pdf.set_font("Serif", size=14)
pdf.add_page()
# начинаем вывод текста
pdf.cell(txt='Формула')
# создание формулы
formula = 'x^n + y^n = a/b'
height = 170 #(пиксели)
# отправка формулы в API Google Charts
url = f"https://chart.googleapis.com/chart?cht=tx&chs={height}&chl={quote(formula)}"
# открываем картинку Google Charts по URL
with Image.open(urlopen(url)) as img:
    # ширина и высота картинки формулы
    _width, _height = img.size
    # вычисляем (аппроксимируем) ширину картинки
    width = _width*pdf.font_size/_height
    # вставка формулы, как картинки
    pdf.image(img, h=pdf.font_size, w=width)
# рассчитываем координаты для продолжения вывода текста
pdf.set_xy(x=pdf.get_x()+width, y=pdf.get_y()-pdf.font_size)
# выводим текст далее
pdf.cell(txt='была создана при помощи API Google Charts.')
pdf.output("equation-with-gcharts.pdf")

Справочную информацию по методу FPDF.image() смотрите в материале "Добавление картинок в PDF-документ".

Использование модуля Matplotlib.

Смотрим пример:

from fpdf import FPDF
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
import numpy
from PIL import Image

# создание формулы
fig = Figure(figsize=(6, 2), dpi=100)
canvas = FigureCanvas(fig)
axes = fig.gca()
# синтаксис LaTeX
axes.text(0, .5, r"$x^n + y^n = \frac{a}{b}$", fontsize=60) 
axes.axis("off")
canvas.draw()
img = Image.fromarray(numpy.asarray(canvas.buffer_rgba()))

pdf = FPDF()
pdf.add_page()
# вставка формулы, как картинки
pdf.image(img, w=30, x=50, y=20)
pdf.output("equation-with-matplotlib.pdf")