Как вставить MathML в PDF с помощью Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как вставить MathML в PDF с помощью Python?

Сообщение Anonymous »

Я работаю над приложением Python, которое генерирует PDF-файлы для экзаменов. Данные экзамена извлекаются с сервера, и все математические выражения в данных сохраняются в формате MathML. У меня возникли проблемы со вставкой этих выражений MathML в PDF-файл.
Я попробовал сначала преобразовать MathML в Latex, а затем в изображение, используя этот ответ и Matplotlib, это сработало для простых выражений, но не помогло. работаю с очень сложными объектами, я думаю, потому, что он не охватывает все объекты MathML, потому что я продолжаю видеть такие ошибки, как Entity not определенный или ожидаемый токен.
Я знаю, что полученный MathML действителен, потому что я пытался отобразить его на браузер, и он работает.
Я также пытался найти способы вставить MathML напрямую, чтобы избежать преобразования, но не смог найти ни одного.
Вот пример, который я попробовал, но он не удался.
import matplotlib.pyplot as plt
from lxml import etree

def mathml_to_tex(mathml):
xslt = etree.parse('./mathml/mmltex.xsl')
transform = etree.XSLT(xslt)
mathml_tree = etree.fromstring(mathml)
svg_tree = transform(mathml_tree)
return str(svg_tree)

def latex_to_image(latex_code):
fig, ax = plt.subplots(figsize=(5, 1))
ax.text(0.5, 0.5, latex_code, fontsize=20, ha='center', va='center')
ax.axis('off')

buffer = io.BytesIO()

fig.savefig(buffer, format='png', bbox_inches='tight', pad_inches=0)
buffer.seek(0)

plt.close(fig)

return buffer

def show_tex(mathml, output_file):
tex = mathml_to_tex(mathml)
img = latex_to_image(tex)
with open(output_file, "wb") as temp_file:
temp_file.write(img.read())

mathml_data = '''


x
 
+
 
y

 
+
 




i


j


k




5


7


8




θ


η


x




×


log
2




sin


ln



B
B






 

 

 

'''

show_tex(mathml_data, 'output.png')

ValueError:
\sqrt{x + y} + \left(\begin{array}{ccc}i& j& k\\ 5& 7& 8\\ \theta & \eta & x\end{array}\right)\times ∯{\mathrm{log}}_{2}\left(\partial \mathrm{sin}\left(\mathrm{ln}\left(\sum _{\mathfrak{B}}^{\mathcal{B}}\right)\right)\right) \in \mathrm{ℝ}
^
ParseSyntaxException: Expected token, found '\' (at char 22), (line:1, col:23)


Подробнее здесь: https://stackoverflow.com/questions/788 ... ing-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как правильно отображать большие вложенные математические уравнения с помощью MathML?
    Anonymous » » в форуме CSS
    0 Ответы
    50 Просмотры
    Последнее сообщение Anonymous
  • Как правильно отформатировать «Δ » с помощью MathML?
    Anonymous » » в форуме Html
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • C# Определите дочерний узел XmlDocument, который загружает MathML
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • C# Определите дочерний узел XmlDocument, который загружает MathML
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Добавить курсор в mathml
    Anonymous » » в форуме IOS
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»