gpt4 book ai didi

javascript - 在 wickedpdf 上使用 javascript 的页码

转载 作者:行者123 更新时间:2023-11-30 08:02:34 25 4
gpt4 key购买 nike

这是我的 Controller

class WelcomeController < ApplicationController
def index
respond_to do |format|
format.html
format.pdf do
render :pdf => "my_pdf", # pdf will download as my_pdf.pdf
:layout => 'pdf', # uses views/layouts/pdf.haml
:margin => { :top => 30 },
:header => {template: 'layouts/pdf_header.html'},
:show_as_html => params[:debug].present? # renders html version if you set debug=true in URL
end
end
end
end

我的 View 很完美,但页眉中没有任何页码对于页码,我使用了这段代码

pdf_header.html.erb

<html>
<head>
<script>
function number_pages() {
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]];
}
}
</script>
</head>
<body onload="number_pages()">
Page <span class="page"></span> of <span class="topage"></span>
</body>
</html>

当我将其检查为纯 html 时,我得到一个关于 x 的错误,说它是空的。当我研究 x 接受的内容时,我意识到没有参数被传递给 URL 并且因此出现错误,我如何将参数传递给 URL?它直接传来吗?

我尝试过的其他事情是

:header => {content: render_to_string(template: 'layouts/pdf_header.html')},
:header => {content: render_to_string(layout: 'pdf_header.html')},

但都没有用。我知道我可以直接使用这个获取页码

'[page] of [topage]' 

但我想把它用于其他目的..

最佳答案

找到答案...我不得不重新安装 wkhtmltopdf。从此站点下载最新版本的 wkhtmltopdf http://wkhtmltopdf.org/downloads.html

接下来,按照官方网站的说明操作即可https://github.com/mileszs/wicked_pdf

无论如何,这是我的完整工作示例

这是我的 Controller

class PdfexampleController < ApplicationController
def index
WickedPdf.new.pdf_from_string(
render :pdf => 'hello',
:template => "pdfexample/index.html.erb",
:margin => {:top => 36, :bottom =>45 },
:footer => {
:content => render_to_string(:template => 'pdfexample/footer.pdf.erb')
}
)
end
end

我的 index.html.erb

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<%= javascript_include_tag "http://code.jquery.com/jquery-1.10.0.min.js" %>
<%= javascript_include_tag "http://code.jquery.com/ui/1.10.3/jquery-ui.min.js" %>
</head>
<body>
Add some text here .........................................................................................
</body>
</html>

页脚.pdf.erb

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<%= javascript_include_tag "http://code.jquery.com/jquery-1.10.0.min.js" %>
<%= javascript_include_tag "http://code.jquery.com/ui/1.10.3/jquery-ui.min.js" %>
<script>
function number_pages() {
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]];
}
}
</script>

</head>
<body onload="number_pages()">
Page <span class="page"></span> of <span class="topage"></span>
</body>

</html>

关于javascript - 在 wickedpdf 上使用 javascript 的页码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24299002/

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