【问题标题】:How to add a header to each page in a pdf created by wickedpdf using pdf_from_string如何在 wickedpdf 使用 pdf_from_string 创建的 pdf 中为每个页面添加页眉
【发布时间】:2022-06-22 19:18:24
【问题描述】:

我正在使用一个完整的堆栈 rails 应用程序,试图为每个“打印”的页面添加一个标题。 pdf 是通过使用 PdfController.renderer.render 创建一个字符串并将其传递给 html 页面的模板来生成的,然后将其传递给 wickedpdf 的 pdf_from_string 方法。我尝试使用打印媒体查询来设置标题的样式,生成 pdf 时似乎没有受到影响,因为它在技术上没有被“打印”(我认为?)

有人有这方面的经验吗?

【问题讨论】:

  • 我对 wicked_pdf 有很多经验。您能否发布一些您所描述的代码?您是否将完整的 HTML 文档传递给标题(包括 doctype/head/body?您可以尝试设置背景颜色并将边距/填充选项调整为 0 开始。有时默认边距和填充使它看起来像标题不是在那里,但它只是被边距覆盖,或者被填充到可见的“标题”区域之外。
  • 另外,一些安装wkhtmltopdf 的系统包使用的版本不是用QT 构建的,并且不能提供一些高级功能,例如页眉和页脚。你是如何在你的系统上安装wkhtmltopdf 的?
  • 还可以尝试使用print_media_type: true 选项来使用打印样式表,默认情况下wkhtmltopdf 使用屏幕媒体类型。
  • @Unixmonkey 我不确定我是否可以发布代码 sn-p 因为这是我的工作,哈哈,但为了更具体一点,我在 html 正文中添加了一个 div被传递给 wickedpdf,并希望该 div 出现在创建的每个页面的顶部。我尝试使用 position: fixed 和 top: 0 进行样式设置,这确实被应用了,当我使用媒体屏幕查询时我可以看到它(这是有道理的,因为你说它默认使用它),但是它不会重复每一页,只有第一页

标签: css ruby-on-rails wicked-pdf


【解决方案1】:

如 wicked_pdf README 文件中所述,它是这样的:

pdf = WickedPdf.new.pdf_from_string(
  render_to_string('templates/full_pdf_template'),
  header: {
    content: my_header_html_as_string
  }
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-06
    • 2021-08-26
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    相关资源
    最近更新 更多