Ich habe eine PDF-Ausgabefunktion mit den Edelsteinen "wicked_pdf" und "wkhtmltopdf-binary" hinzugefügt, aber der folgende Fehler tritt in der Produktionsumgebung auf, obwohl er in der Entwicklungsumgebung gut funktioniert. Die Rails-Version ist 4.2.
RuntimeError (Failed to execute:
["/var/www/~~~/shared/bundle/ruby/2.4.0/gems/wkhtmltopdf-binary-0.12.6.3/bin/wkhtmltopdf", "--encoding", "UTF-8", "--page-size", "A4", "file:////tmp/wicked_pdf20201007-11835-gppxfs.html", "/tmp/wicked_pdf_generated_file20201007-11835-j83wu8.pdf"]
Error: PDF could not be generated!
Command Error: /var/www/~~~/shared/bundle/ruby/2.4.0/gems/wkhtmltopdf-binary-0.12.6.3/bin/wkhtmltopdf_centos_7_amd64: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
):
Es scheint, dass es keine Bibliothek namens "libpng15.so.15" gibt, aber ich habe im Internet nach dem gleichen Fehler gesucht und verschiedene Dinge ausprobiert, aber es wurde nicht gelöst.
Dies ist ein Artikel aus dem Jahr 2016, aber das Folgende war hilfreich. https://qiita.com/s-mori/items/00aef46e6a10499f8254 https://qiita.com/yaboojp/items/526c9397070ca5d05256
wkhtmltopdf-binary
scheint Amazon Linux nicht zu unterstützen,
Es funktionierte gut mit wkhtmltopdf-binary-aml
, das mit Amazon Linux kompatibel ist.
Gemfile vor der Änderung
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary-aml'
Gemfile geändert
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary-aml', git: 'https://github.com/insphire/wkhtmltopdf-binary-aml'
wicked_pdf
vor der Änderung
config/initializers/wicked_pdf.rb
WickedPdf.config = {
:exe_path => "#{Gem.loaded_specs['wkhtmltopdf-binary'].full_gem_path}/bin/wkhtmltopdf"
}
Wicked_pdf
geändert
config/initializers/wicked_pdf.rb
WickedPdf.config = {
:exe_path => "#{Gem.loaded_specs['wkhtmltopdf-binary-aml'].full_gem_path}/bin/wkhtmltopdf"
}
Ich habe die Bundle-Installation durchgeführt, damit sich die Version von Bundler nicht ändert.
$ bundle _1.16.1_ install
Als ich es in der Produktionsumgebung bereitstellte, wurde es nicht auf Japanisch angezeigt. Installieren Sie also die IPA-Schriftart auf dem Produktionsserver.
cd /usr/share/fonts
$ yum install -y ipa-gothic-fonts ipa-mincho-fonts
Da das Layout durch Ändern der Schriftart beschädigt wurde, konnte ich die Empfangsfunktion durch Anpassen des CSS usw. vervollständigen.
Beim Wechsel zu einem mit Amazon Linux kompatiblen Gem tritt diesmal ein Fehler in der Entwicklungsumgebung auf.
RuntimeError - PDF could not be generated!
Command Error: /Users/~~~/vendor/bundle/ruby/2.4.0/bundler/gems/wkhtmltopdf-binary-aml-e5340ed88aa8/bin/wkhtmltopdf:15:in `exec': Bad CPU type in executable - /Users/~~~/vendor/bundle/ruby/2.4.0/bundler/gems/wkhtmltopdf-binary-aml-e5340ed88aa8/libexec/wkhtmltopdf-darwin-x86 (Errno::E086)
Um dies sowohl in Entwicklungs- als auch in Produktionsumgebungen gut zu machen, können Sie "wicked_pdf.rb" mit "if Rails.env.production?" Verwenden Sie können dies tun, indem Sie die Gem-Datei für jede Umgebung wie folgt wechseln.
group :development do
gem 'wkhtmltopdf-binary'
end
gem 'wkhtmltopdf-binary', group: :development
Recommended Posts