Преобразование файла csv в формат таблицы pdf в Action Mailer (Rails) - PullRequest
0 голосов
/ 27 мая 2020

У меня есть файл CSV, и я конвертирую его в pdf, используя PDFkit, но PDF-файл не отформатирован.

I am sending both file CSV and pdf as an attachment.

Это просто значения, разделенные запятыми, в загроможденном формат.

Code

inventory_csv = File.open(csv_file).read.lines.to_a.join
kit = PDFKit.new(inventory_csv,page_size: 'A4',
                 :orientation => 'Landscape',
                 :margin_top => '0in',
                 :margin_right => '0in',
                 :margin_bottom => '0in',
                 :margin_left => '0in')
kit.stylesheets << "#{Rails.root}/app/assets/stylesheets/pdf/finance_report.css"
pdf = kit.to_pdf

, и это дает мне такой PDF-файл enter image description here

Интересно, как этот веб-сайт фактически конвертирует мои CSV в формат таблицы скважин. Как я могу добиться этого в моем коде Action mailer?

https://www.convertcsv.com/csv-to-pdf.htm

Ниже приведен снимок экрана pdf, созданный указанным выше веб-сайтом

enter image description here

Как я могу добиться этого программно с помощью PDFkit?

1 Ответ

0 голосов
/ 03 августа 2020
lines = File.open(csv_file).read.lines.to_a.join

table = ActionController::Base.helpers.content_tag :table, class: "table" do
    lines.map do |line|
      ActionController::Base.helpers.content_tag :tr do 
        line.split(",").map{|cell| ActionController::Base.helpers.content_tag :td, cell}.join.html_safe
      end
    end.join.html_safe
end

kit = PDFKit.new(table, page_size: 'A4',
             :orientation => 'Landscape',
             :margin_top => '0in',
             :margin_right => '0in',
             :margin_bottom => '0in',
             :margin_left => '0in')
kit.stylesheets << "#{Rails.root}/public/stylesheets/pdf/style.css"
pdf = kit.to_pdf
...