J'ai travaillé avec wicked_pdf pour générer des fichiers PDF dans Rails, et cela fonctionne très bien dans mon environnement de développement, mais je reçois une erreur de 500 (mais pas d'erreurs spécifiques dans mon log) quand j'essaie d'en générer un sur mon environnement de production. La première chose que j'ai remarqué est que le binaire wkhtmltopdf était dans un autre endroit sur ma boîte de production, donc je l'ai ajouté ce qui suit à mon wicked_pdf.rb initialiseur:Wicked_pdf fonctionne bien en développement, mais pas en production
if Rails.env == "production"
WickedPdf.config = {
:exe_path => '/usr/bin/wkhtmltopdf'
}
end
Voilà comment j'appelle dans mon contrôleur:
def certificate
@inspection = Inspection.find(params[:id])
@council = Council.find(@inspection.councilid)
respond_to do |format|
format.pdf do
render :pdf => @inspection.slug,
:show_as_html => params[:debug].present?,
:margin => {:top => 0,
:bottom => 0,
:left => 0,
:right => 0}
end
end
end
et voici le contenu de mon avis:
# certificate.pdf.erb
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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" />
<style type="text/css">
body {
margin: 0;
padding: 0;
font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, sans-serif;
}
img#bg {
width: 800px;
height: 1130px;
position: absolute;
}
#date p, #council p {
line-height: 17px;
font-size: 12px;
}
#council {
position: absolute;
top: 650px;
left: 445px;
}
#logo {
position: absolute;
top: 965px;
left: 98px;
}
#logo img {
height: 65px;
}
#address {
position: absolute;
top: 425px;
left: 300px;
}
#address p {
font-size: 22px;
line-height: 27px;
}
#date {
position: absolute;
top: 650px;
left: 98px;
}
</style>
</head>
<body>
<%= wicked_pdf_image_tag "certificate#{@inspection.rating}.jpg", :id => "bg" %>
<div id="address">
<p><%= @inspection.name %><br />
<%= @inspection.address("<br />").html_safe %> </p>
</div>
<div id="date">
<p><%= @inspection.date.strftime("%B %d %Y") %></p>
</div>
<div id="council">
<p><%= @council.address.html_safe %><br /><br />
<strong>Tel: </strong><%= @council.tel %></p>
</div>
<div id="logo">
<%= wicked_pdf_image_tag "certificates/#{@council.logo}.png" %>
</div>
</body>
</html>
Quand j'ajoute debug=true
à la chaîne de requête, il semble générer OK (et le wicked_pdf_image_tag
helper semble générer l'emplacement correct, ce qui semblait être un gotcha dans Rails 3.1). Des idées? Je suis assez nouveau à Ruby/Rails, alors s'il vous plaît soyez gentil!
Excellent, qui a obtenu, merci! – Pezholio
Juste upvote si cela ne vous dérange pas alors! Merci! – TheDelChop
Aucun problème. Terminé! :) – Pezholio