【问题标题】:Wicked pdf footer at the bottom of the last page最后一页底部的邪恶 pdf 页脚
【发布时间】:2013-10-31 17:32:33
【问题描述】:

我渲染了一个没有固定高度的 pdf。 我只想在最后一页的底部添加一个页脚,我尝试过使用 css,但它仍然显示在第一页的页脚上。

有什么想法吗?

此时我有一个这样的css

body {
  # tried with height: 100% too
  height: 269mm; # a standard A4 height
}

div.footer {
  position: absolute; # tried with fixed too
  bottom: 0px;
  height: 200px;
}

我认为最好的解决方案是使用 javascript 并检查最后一页何时到来,但我该怎么做?

另一个注意事项,似乎有:

body { height: (nr_pages * 269)mm }

是一个可行的解决方案(可能不太好)。如何检索总页数(视图内)?

【问题讨论】:

  • 嗨,你能得到这个问题的答案吗?
  • 嗨,不是真的。就我而言,pdf 只是一个固定的 n 页文档。我使用了解决方法高度:nr_pages * 269。但是对于动态文档,我真的不知道如何检索页面数。
  • 对我来说,我只想在我的 pdf 的末尾放一个页脚..但我做不到..

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


【解决方案1】:

通过检查page属性和topage属性是否相同可以找到最后一页,在js中可以在page footer layout中使用sn-p

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]);
  }
  var x = ['frompage', 'topage', 'page', 'webpage', 'section', 'subsection', 'subsubsection'];
  for (var i in x) {
    var y = document.getElementsByClassName(x[i]);
    for (var j = 0; j < y.length; ++j) y[j].textContent = vars[x[i]];
    if (vars["topage"] == vars["page"]) {} else {
      document.getElementById("pdf-footer").innerHTML = ""
    }
  }
}

【讨论】:

  • 感谢您的建议,下次有需要我会试试! [如果在其他用途​​之前确认我您的答案的有效性 - 我会接受它]
  • 您在底部添加的 if 语句 (if (vars["topage"] == vars["page"])...) 应该在 for 循环之外。它只需要在最后运行一次。
猜你喜欢
  • 2017-05-25
  • 2013-06-07
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多