move pdf handler to handlers from services

This commit is contained in:
swrneko
2025-09-11 13:25:04 +03:00
parent 07485f9a23
commit e05e05f829
2 changed files with 1 additions and 1 deletions

View File

@@ -0,0 +1,36 @@
import re
from pylatexenc.latex2text import LatexNodes2Text
from markdown_pdf import MarkdownPdf
from markdown_pdf import Section
class ConvertMdToPdf:
# Конвертирует md в pdf
def convertLatexToText(self, text:str):
'''
Функция для конвертации LaTeX в текст;
Args:
:param text: текст содержащий LaTeX.
'''
# Обрабатываем только математические выражения
text = re.sub(
r'\$\$(.*?)\$\$|\$(.*?)\$',
self.replace_math,
text,
flags=re.DOTALL
)
pdf = MarkdownPdf(toc_level=0, optimize=True)
pdf.add_section(Section(text))
return pdf, text
def replace_math(self, match):
math_content = match.group(1) or match.group(2) # $$...$$ или $...$
try:
# Преобразуем только математическое выражение
converted = LatexNodes2Text().latex_to_text(math_content)
return converted
except:
return math_content # В случае ошибки оставляем как есть