将Markdown电子实验报告转换为手写体PDF。继承handwrite-transmit功能,新增自动页眉(白底居中机构名称+下划线)、支持禁用页眉。当用户要求"生成手写体PDF"、"将报告转为手写"、"手写风格PDF"、"handwritten PDF"时触发。
将Markdown电子实验报告转换为手写风格的PDF文档,模拟真实的手写效果。
字体搜索路径(按优先级):
C:/Windows/Fonts/liguofu.ttf (推荐: 先将字体安装到此)C:/Windows/Fonts/simhei.ttf (备用)C:/Windows/Fonts/msyh.ttc (微软雅黑)Markdown格式的实验报告应位于:
实验x: (实验名)/实验报告/实验报告.md
手写体PDF将保存在实验报告同目录下:
实验x: (实验名)/实验报告/实验报告_手写体.pdf
页眉参数(可在脚本中修改常量):
| 参数 | 默认值 | 说明 |
|---|---|---|
HEADER_TEXT | "电工电子国家级实验教学示范中心(哈尔滨工业大学)实验报告" | 页眉文字 |
HEADER_FONT_SIZE | 11 | 页眉字体大小(pt) |
HEADER_HEIGHT | 50 | 页眉白底区域高度(pt) |
HEADER_MARGIN_TOP | 18 | 页眉上边距(pt) |
HEADER_LINE_MARGIN | 4 | 页眉文字到下划线距离(pt) |
用户需要提供Markdown格式的实验报告文件。询问确认:
实验x: (实验名)/实验报告/实验报告.md实验报告_手写体.pdf# 检查Python依赖
python -c "import handright; import PIL; import reportlab; print('依赖正常')"
如果依赖缺失:
python -m pip install handright Pillow reportlab
运行转换脚本:
python ${SKILL_DIR}/scripts/generate_handwritten_pdf.py \
--input "实验报告.md" \
--output "实验报告_手写体.pdf" \
--font "C:/Windows/Fonts/liguofu.ttf"
禁用页眉(生成纯手写体):
python ${SKILL_DIR}/scripts/generate_handwritten_pdf.py \
--input "实验报告.md" \
--no-header
检查生成的PDF文件,告知用户输出路径。
| 参数 | 说明 | 默认值 |
|---|---|---|
--input | 输入Markdown文件路径 | 必填 |
--output | 输出PDF文件路径 | {input}_手写体.pdf |
--font | 字体文件路径 | 自动搜索 |
--font-size | 字体大小 | 80 |
--line-height | 行高 | 100 |
--no-header | 禁用自动页眉 | false |
采用双层随机扰动机制,模拟真实手写效果:
整体扰动:
笔画级扰动(核心!):
额外随机效果:
当Markdown文件中包含图片时(如 ),图片会:
自动移除以下标点:
,。!?;:""''【】()、·—…,!?;:"'()[]数学公式简化:
\frac{a}{b} → (a)/(b)\sqrt{x} → 根号(x)\sum → 求和\int → 积分\alpha → α| 错误 | 处理方式 |
|---|---|
| 字体文件不存在 | 尝试备选字体,报告错误 |
| 输入文件不存在 | 告知用户并要求提供正确路径 |
| PDF生成失败 | 检查reportlab依赖,显示详细错误 |
如果用户反馈字体无法加载,指导用户:
liguofu.ttf 复制到 C:/Windows/Fonts/ 目录FALLBACK_FONTS 列表添加自定义路径安装命令:
pip install handright Pillow reportlab