У меня есть некоторые успехи в создании PDF-файлов с помощью PDFKit, но изображения не загружаются из ресурсов active_storage и ресурсов. Сбой каждый раз, когда я создаю PDF, используя show.pdf.erb. Я использую image_tag по умолчанию и ресурсы предварительно скомпилированы для производства. Как я могу получить PDFKit, чтобы найти предварительно скомпилированную папку ресурсов для изображений, а также найти изображения active_storage, которые должны загружаться в представлении show.pdf.erb? Он отлично работает в обычном действии show.html.erb. Я использую Windows 10 Pro x64. Все стили встроены в тег html / блок стиля на самой странице.
журнал разработки сервера
Rendered books/show.pdf.erb (338.2ms)
Loading pages (1/6)
Warning: Failed to load file:///rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBHQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--4528619d26f56f1272afd5cd7641c666137e55e3/book-wallpaper.jpg (ignore)
Warning: Failed to load file:///assets/book_assets/book_white_pendant_50x50-8bf2d07feef7eeec22156e327c618aa02b531c2b7df4eb42308121ce55749b12.png (ignore)
Warning: Failed to load file:///rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBHUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--bb21bd1f8363f10691f76d305829078e20c66c13/cookies.jpg (ignore)
Warning: Failed to load file:///assets/book_assets/user_photo_white40x40-2b2a6064512b3fc938bd24dc94f813bc96a259c9c68e53e6fc101cb7db758aa0.png (ignore)
Warning: Failed to load file:///assets/book_assets/published-icon-888d2e09f6bd152718c2b03ee0ad753e766a2fc767fea6f932f539185a1a29ad.png (ignore)
Warning: Failed to load file:///assets/book_assets/unpublished_icon_white_40x40-e05d35d6e8818e7a06aad4c86c0a6f213d7d1c1461905ce4f612e8562a6995eb.png (ignore)
Warning: Failed to load file:///assets/book_assets/book_search_icon_50x50-184ff833a61c48ebd7fc5e728c0de77aaee09720ebae47ab86535850eb03c350.png (ignore)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
Rendering text template
Rendered text template (0.0ms)
Sent data Jamie-book-pjxr6Fu4sJC1.pdf (1.0ms)
Completed 200 OK in 7351ms (Views: 0.6ms | ActiveRecord: 466.2ms)
теги изображений
<%= image_tag "book_assets/user_photo_white40x40" %>
active_storage
<%= image_tag url_for(@book.profile_photo), class: 'd-flex align-self-start mr-3 img-fluid' %>
books_controller.rb
def show
impressionist(@book)
respond_to do |format|
format.html
format.pdf do
html = render_to_string(:action => "show.pdf.erb")
kit = PDFKit.new(html)
send_data(kit.to_pdf, :filename => "book-info.pdf", :type => 'application/pdf', :disposition => "inline")
end
end
end
Инициализаторы / pdfkit.rb
PDFKit.configure do |config|
if ["development"].include?(Rails.env)
config.wkhtmltopdf = ENV['WKHTMLTOPDF_PATH'] || "C:\\wkhtml_setup\\wkhtmltopdf\\bin\\wkhtmltopdf.exe"
else
#if your site is hosted on heroku or any other hosting server which is 64bit
config.wkhtmltopdf = Rails.root.join('bin', 'wkhtmltopdf-amd64').to_s
end
config.verbose = true
config.default_options = {
:encoding=>"UTF-8",
:page_size=>"A4", #or "Letter" or whatever needed
:margin_top=>"0in",
:margin_right=>"0in",
:margin_bottom=>"0in",
:margin_left=>"0in",
:disable_smart_shrinking => false
}
end