在wickedpdf上使用javascript的页码
这是我的控制器在wickedpdf上使用javascript的页码,javascript,ruby-on-rails,wkhtmltopdf,wicked-pdf,Javascript,Ruby On Rails,Wkhtmltopdf,Wicked Pdf,这是我的控制器 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/la
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
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
但都没用。我知道我可以用这个直接得到页码
'[page] of [topage]'
但我想把它用于其他目的。找到了答案。。。
我不得不重新安装wkhtmltopdf。
从该站点下载wkhtmltopdf的最新版本
接下来,只需按照官方网站的说明进行操作
无论如何,这是我完整的工作示例
这是我的控制器
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
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
classpdfexamplecontroller“你好”,
:template=>“pdfexample/index.html.erb”,
:margin=>{:top=>36,:bottom=>45},
:页脚=>{
:content=>render_to_string(:template=>'pdfexample/footer.pdf.erb')
}
)
结束
结束
My 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>
在此添加一些文本。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
footer.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>
函数编号\u页(){
var vars={};
var x=document.location.search.substring(1).split('&');
对于(x中的vari){varz=x[i]。拆分('=',2);vars[z[0]]=unescape(z[1]);}
var x=['frompage'、'topage'、'page'、'webpage'、'section'、'subsection'、'subsubsection'];
对于(x中的变量i){
var y=document.getElementsByClassName(x[i]);
对于(var j=0;j找到了答案。。。
我不得不重新安装wkhtmltopdf。
从该站点下载wkhtmltopdf的最新版本
接下来,只需按照官方网站的说明进行操作
无论如何,这是我完整的工作示例
这是我的控制器
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
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
classpdfexamplecontroller“你好”,
:template=>“pdfexample/index.html.erb”,
:margin=>{:top=>36,:bottom=>45},
:页脚=>{
:content=>render_to_string(:template=>'pdfexample/footer.pdf.erb')
}
)
结束
结束
My 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>
在此添加一些文本。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
footer.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>
函数编号\u页(){
var vars={};
var x=document.location.search.substring(1).split('&');
对于(x中的vari){varz=x[i]。拆分('=',2);vars[z[0]]=unescape(z[1]);}
var x=['frompage'、'topage'、'page'、'webpage'、'section'、'subsection'、'subsubsection'];
对于(x中的变量i){
var y=document.getElementsByClassName(x[i]);
对于(var j=0;j