You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mdpdf转换Markdown为PDF时如何添加含动态日期的页脚/页眉

问题根因

异常来自mdpdf处理自定义页眉/页脚的三个已知机制问题:

  • 脚本执行时机错误:将<script>标签放在页脚DOM元素之前时,mdpdf注入HTML会优先解析执行脚本,此时目标节点<span id="datetime">还未渲染到DOM树,getElementById返回null,动态内容无法写入指定位置,会因为作用域泄露被注入到页面顶层默认页眉区域(即左上角异常显示日期的位置)。
  • 页脚容器缺少定位约束:使用废弃的<center>标签仅能实现文本居中,没有绑定页脚的固定位置规则,导致静态文本偏移到左下角,无法对齐到底部居中位置。
  • 缓存干扰:清空页脚文件后仍显示旧日期,是mdpdf本地临时缓存未清理导致的,之前执行失败的脚本残留在临时生成目录中被重复加载。

正确配置步骤

  1. 先清理本地mdpdf缓存,终端执行命令:
    rm -rf ~/.cache/mdpdf/*

  2. 重写test_footer.html,遵循两个规则:脚本放在DOM元素之后,等待节点渲染完成再执行;给页脚容器加固定定位样式,废弃旧的<center>标签,文件内容如下:

<div style="position: fixed; bottom: 0; left: 0; right: 0; text-align: center; font-size: 10px;">
    FOOTER with locale date: <span id="datetime"></span>
</div>
<script>
window.onload = function() {
    const currentDate = new Date();
    document.getElementById("datetime").textContent = currentDate.toLocaleDateString();
}
</script>
  1. 执行转换命令时加上--no-cache参数,避免旧缓存干扰,命令如下:
    mdpdf /Users/felix/test.md --footer=/Users/felix/test_footer.html --no-cache

注意事项

  • 自定义页眉/页脚内的脚本禁止放在目标DOM元素之前,必须等对应节点渲染完成后再执行DOM操作
  • 页眉/页脚的外层容器必须加position: fixed定位规则,绑定到对应显示位置,否则会被PDF默认页边距挤压偏移
  • 调试页眉/页脚配置时始终加--no-cache参数,避免旧文件缓存导致的异常复现

内容的提问来源于stack exchange,提问作者soundflix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 00:36:18