我正在尝试使用`'wicked_pdf'宝石来打印我的视图的PDF。这是我第一次使用这个宝石。我已经阅读了文档和Google搜索,我也在Stack Overflow上发现了一些类似的问题但似乎没有什么可以做到的。
我已经验证了二进制文件(参见下面的编辑),它们工作正常,所以问题不存在。
我在运行rails s
时在终端中发现了两条奇怪的行(请参见底部的编辑)
我一直在寻找解决方案,连续三天,并且无法解决这个问题。
我在这里错过了什么吗?
服务器不断挂起终端
中的输出Rendered pages/partials/_travel_part.html.erb (36.6ms)
Rendered users/show.html.erb within layouts/application (531.7ms)
Rendered layouts/_navbar.html.erb (2.6ms)
Rendered shared/_footer.html.erb (0.8ms)
Completed 200 OK in 1640ms (Views: 1115.4ms | ActiveRecord: 136.0ms)
"***************[\"/usr/local/bin/wkhtmltopdf\", \"-q\", \"file:////var/folders/sm/zwm8cy0x73qb6q1pq22r4bjh0000gn/T/wicked_pdf20160913-35465-hkw9b8.html\", \"/var/folders/sm/zwm8cy0x73qb6q1pq22r4bjh0000gn/T/wicked_pdf_generated_file20160913-35465-10go9dt.pdf\"]***************"
以下是我到目前为止的情况。
我想打印views/users/show.html.erb
所以users_controller.rb
我在show
方法中有此代码
def show
@user = User.find(params[:id])
@users = User.order('created_at DESC').paginate(page: params[:page], per_page: 30)
@paper = current_user.papers.build
@electro = current_user.electros.build
@hwater = current_user.hwaters.build
@cleaning = current_user.cleanings.build
@transport = current_user.transports.build
@papers = current_user.papers
respond_to do |format|
format.html {render layout:'application'}
format.pdf {render pdf:"test",javascript_delay:2000,
layout:'application',template:'users/show.pdf.erb'}
end
end
在application.html.erb
我使用head
wicked pdf helper
中有此内容
<%= wicked_pdf_stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= wicked_pdf_javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= javascript_include_tag "http://www.google.com/jsapi"%>
<%= wicked_pdf_javascript_include_tag 'chartkick'%>
<%= csrf_meta_tags %>
views/users/show.html.erb
中的按钮是
<%= link_to 'Download Pdf', user_path(current_user, format: :pdf) %>
在config/initializers/mime_types.rb
我有这段代码
Mime::Type.register "application/pdf", :pdf
在config/initializers/wicked_pdf.rb
我有这段代码
WickedPdf.config = {
#:wkhtmltopdf => '/usr/local/bin/wkhtmltopdf',
#:layout => "pdf.html",
:exe_path => '/usr/local/bin/wkhtmltopdf'
}
在gemfile.rb
我有两个宝石:
gem 'wicked_pdf', '~> 1.0', '>= 1.0.6'
gem 'wkhtmltopdf-binary-edge'
修改*
好的,我已通过在终端中键入此wkhtmltopdf google.com google
验证了二进制文件是否正常工作。所以我的结论是问题出在其他地方,而不是wkhtmltopdf
。但是哪里?我还是找不到......
(AddingWickedPdf) $ wkhtmltopdf google.com google
Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
(AddingWickedPdf) $
另一个编辑
当我早些时候启动服务器rails s
到晚上时,我注意到终端中有这些行,我不知道这意味着什么,但我确定它与渲染pdf时挂起的应用程序有关:
/Users/dadi/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.5/lib/action_dispatch/http/mime_type.rb:163: warning: already initialized constant Mime::PDF
/Users/dadi/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack- 4.2.5/lib/action_dispatch/http/mime_type.rb:163: warning: previous definition of PDF was here
如果有人可以看一下这个并引导我走上正确的道路,那就太棒了。
提前谢谢 DH答案 0 :(得分:1)