一、完整的 Python 服务代码
from flask import Flask, request, send_file
from docx import Document
from docx.shared import Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
import io
import re # 新增正则模块,用于识别一级标题app = Flask(__name__)class OfficialDocGenerator:def __init__(self, data):self.data = dataself.doc = Document()self._set_page_style()def _set_page_style(self):"""设置页边距、纸张大小(符合GB/T 9704-2012)"""section = self.doc.sections[0]section.page_width = Cm(21) # A4section.page_height = Cm(29.7)section.left_margin = Cm(2.8)section.right_margin = Cm(2.6)section.top_margin = Cm(3.7)section.bottom_margin = Cm(3.5)def _set_font(self, para, font_name="仿宋", size=16, align=WD_ALIGN_PARAGRAPH.LEFT):"""设置字体(解决中文显示问题)"""for run in para.runs:run.font.name = font_namerun._element.rPr.rFonts.set(qn('w:eastAsia'), font_name) # 强制中文显示run.font.size = Pt(size)para.alignment = aligndef generate(self):"""生成完整公文"""# 1. 发文字号(版头)self.doc.add_paragraph()self.doc.add_paragraph()文号 = self.doc.add_paragraph(self.data["发文字号"])self._set_font(文号, align=WD_ALIGN_PARAGRAPH.CENTER)# 2. 标题self.doc.add_paragraph()title = self.doc.add_paragraph(self.data["标题"])self._set_font(title,