現在我有:header => {:html => {:template => "layouts/pdf_header.html.erb"}}
設置。有什麼我可以通過,只會顯示在文檔的第一頁上的標題?wicked_pdf:只能在最後一頁顯示頁眉和頁腳纔可以顯示頁眉?
我可以爲頁腳做這個嗎?在這裏幾乎更重要,因爲我不能想出任何其他方式來讓頁腳動態地粘貼到頁面的底部,因爲每次頁面的長度和頁數都不相同。
現在我有:header => {:html => {:template => "layouts/pdf_header.html.erb"}}
設置。有什麼我可以通過,只會顯示在文檔的第一頁上的標題?wicked_pdf:只能在最後一頁顯示頁眉和頁腳纔可以顯示頁眉?
我可以爲頁腳做這個嗎?在這裏幾乎更重要,因爲我不能想出任何其他方式來讓頁腳動態地粘貼到頁面的底部,因爲每次頁面的長度和頁數都不相同。
一些快速的JavaScript可以照顧到這一點。請按照「頁腳和頁眉」下的樣板文件打印wkhtmltopdf
這些是您的頁眉和頁腳模板。 跟蹤的關鍵變量是可從URL哈希獲得的'page'。 你的頭看起來是這樣的:
<div class="headerContent" style="display:none">
...my awesome html
<hr />
</div>
<script type="text/javascript">
var headerCheck = function() {
var x=document.location.search.substring(1).split('&');
for (var i in x) {
if(x[i] == "page=1")
document.getElementsByClassName("headerContent")[0].style.display = "block";
}
}();
</script>
同樣爲您的頁腳代碼將是這個樣子:
<div class="footerContent" style="display: none">
...awesome footer html
</div>
<script type="text/javascript">
var footerCheck = function() {
var x=document.location.search.substring(1).split('&');
var currentPage = 1;
for (var i in x) {
var z=x[i].split('=',2);
if(z[0] == "page")
currentPage = unescape(z[1]);
if(z[0] == "topage" && currentPage == unescape(z[1]))
document.getElementsByClassName("footerContent")[0].style.display = "block";
}
}();
</script>
附加信息:https://gist.github.com/shamithc/812db92bc78d8525304a –
這是偉大的,有點修改,它將工作爲偶數/奇數頁呈現不同的頁眉/頁腳:) – unmultimedio
添加布局渲染PDF
format.pdf do
render :pdf => "my_pdf",
:layout => 'pdf
end
的意見/佈局時/pdf.haml
%html
%head
%body
= render "layouts/header"
= yield
= render "layouts/footer"
也許如果你沒有提供標題,但在第一頁上執行'render:partial =>'/ path/to/my/header''? – MrYoshiji
@MrYoshiji我意識到我可以做到這一點,但我希望不必在每個頁面中都包含頁眉和頁腳部分,這些頁面將被渲染爲pdf。除了pdf之外,我還使用其他內容的視圖,所以不希望在那裏粘貼邏輯。 – thatmiddleway