gpt4 book ai didi

ruby-on-rails - WickedPDF 第一页的页边距设置不同?

转载 作者:行者123 更新时间:2023-12-05 03:14:07 24 4
gpt4 key购买 nike

使用:

wkhtmltopdf-binary 0.9.9.1
wicked_pdf 0.10.2
rails 4.1.7
ruby 2.1.3
OS X 10.10.1 (64-bit)

我的标题占用了一些空间,所以我不得不在我的 WickedPDF 选项中使用 :margin => { :top => 40 }(连同标题间距)。但是,我不想在我的第一页上使用这个,因为标题只用在第 2 页及以上的页面上。我如何实现这一目标?

尝试

  1. 对于第一页中的内容,我尝试通过 CSS:

    position: absolute;
    top: -20;

    这会导致内容被边距区域“剪裁”。应用 :margin => {:top=>40} 似乎在标题片段和 PDF 内容之间创建了一个阻塞的白色矩形。

  2. 我尝试对第一页使用 :cover 选项。不幸的是,边距设置也适用于封面模板。此外,wkhtmltopdf 0.12 中似乎存在语法差异,因此它中断了

我能想到的一些解决方案:

  1. 创建 2 个单独的 PDF 并将它们合并在一起。需要找到 PDF 合并 gem 等。
  2. 通过 Javascript 生成持久 header 。老实说,这很棘手。特别是当有表格中断时(表格高度超过一页)。此外,每个内容部分的标题都不同。我目前通过 wkhtmltopdf javascript 助手(frompagetopagepagesection 等)

如有任何帮助,我们将不胜感激。

最佳答案

添加一个脚本,将 --header-html 设置为以下内容:

<!DOCTYPE html>
<html>
<head>
<script>
function subst() {
var vars = {};
var x = document.location.search.substring(1).split('&');
for (var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}

if(vars['page'] == 1) { // If page is 1, do not show the header
document.getElementById("doc-header").style.display = 'none';
}
}
</script>
</head>
<body onload="subst()">
<div id="doc-header">
... your content here ...
</div>
</body>
</html>

这应该适用于最新的 wkhtmltopdf 稳定版本 (0.12.1) -- 这个示例取自 crash which was fixed in this release .

关于ruby-on-rails - WickedPDF 第一页的页边距设置不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27010261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com