from datetime import datetime import os import re from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont def convert_markdown_to_pdf(markdown_text): """将Markdown文本转换为PDF格式的纯文本""" if not markdown_text: return "" # 标准化换行符 markdown_text = markdown_text.replace('\r\n', '\n').replace('\r', '\n') # 处理标题、粗体、斜体 markdown_text = re.sub(r'^#\s+(.+)$', r'\1', markdown_text, flags=re.MULTILINE) markdown_text = re.sub(r'\*\*(.+?)\*\*', r'\1', markdown_text) markdown_text = re.sub(r'\*(.+?)\*', r'\1', markdown_text) # 处理列表 markdown_text = re.sub(r'^\s*[-*+]\s+(.+?)(?=\n|$)', r'• \1', markdown_text, flags=re.MULTILINE) markdown_text = re.sub(r'^\s*\d+\.\s+(.+?)(?=\n|$)', r'\1', markdown_text, flags=re.MULTILINE) # 处理链接 markdown_text = re.sub(r'\[([^\]]+)\]\(([^)]+)\)', r'\1', markdown_text) # 处理段落 markdown_text = re.sub(r'\n{2,}', '\n', markdown_text) markdown_text = re.sub(r'(?