【问题标题】:Insert page break when using "markdown-pdf" nodejs module?使用“markdown-pdf”nodejs模块时插入分页符?
【发布时间】:2019-12-08 06:32:06
【问题描述】:

我正在使用 node.js 模块“Markdown-PDF”(https://www.npmjs.com/package/markdown-pdf,版本 9.0)将 markdown 转换为 PDF,我需要添加一些分页符来清理 PDF 输出中的演示文稿。

我尝试了在这个论坛和其他论坛上可以找到的所有建议,包括内联 HTML 标签,例如:

<div style="page-break-after: always;"></div>

还有一些 CSS hack,比如对所有 div 标签应用分页符(如这里所述:http://forums.apricitysoftware.com/t/include-pdf-pagebreak-instructions-in-markdown/152)。这些都不起作用,markdown(源)文档中的所有标签都出现在未呈现的 PDF(输出)文档中。

预期的(理想的)行为是将分页符添加到降价文件中,并让 PDF 反映所需的更改。像这样的东西,在我的降价文件中:

markdown 文字
markdown 文字
markdown 文字
[分页命令]
markdown 文本
markdown 文本
markdown 文本

提前感谢任何人提供的任何帮助或建议!

【问题讨论】:

    标签: node.js pdf pdf-generation markdown


    【解决方案1】:

    得到朋友的帮助并想通了这一点。 Markdown-pdf 使用 HTML5Boilerplate,因此您可以编辑 index.html 文件,在我的系统上找到:

    /usr/local/lib/node_modules/markdown-pdf/html5bp/index.html

    我添加了此处描述的 CSS:http://forums.apricitysoftware.com/t/include-pdf-pagebreak-instructions-in-markdown/152

    它奏效了。能够包含帖子中描述的 HTML 标记并强制分页。成功!

    【讨论】:

      【解决方案2】:

      你提到的样式化 div 标签只有在 options 参数中显式对象的 html 参数设置为 true 时才有效:

      var markdownpdf = require("markdown-pdf")
        , fs = require("fs")
      let options = {
        paperFormat: "A4",
        paperOrientation: "landscape",
        remarkable: {
          html: true
        }
      }
      fs.createReadStream("teste.md")
        .pipe( markdownpdf( options))
        .pipe( fs.createWriteStream("document.pdf"))
      

      为了使用 md 标记(而不是使用 html div 标签),我想您应该使用 preProcessMd 并将特定模式更改为样式化的 div 标签。

      希望我能提供一些帮助!

      【讨论】:

        猜你喜欢
        • 2014-05-01
        • 2014-04-29
        • 2015-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-04
        • 1970-01-01
        相关资源
        最近更新 更多