У меня есть отчет, в котором я настраиваю одно представление для отображения таблицы в двух отдельных столбцах, чтобы сэкономить место для печати. Я заставил его работать в представлении HTML с использованием как встроенного, так и обычного стиля CSS (.crew-report
), но когда я запускаю его через представление PDF, изменение не отображается. Как я могу получить column-count:2
, чтобы придерживаться?
Я опускаю большинство определений атрибутов, так как сам отчет визуализируется нормально, и проблема проявляется в утраченном оформлении при рендеринге в формате pdf:
Вот соответствующий вид:
_report_base.html.erb:
<% if params[:type] == "crew" %>
<div class="crew-report">
<%= render 'listings/reports/report_base_table.html.erb' %>
</div>
<%else%>
<%= render 'listings/reports/report_base_table.html.erb' %>
<% end %>
</div>
Вот CSS (повторяющийся, но я пытаюсь бесстыдно зеленый, прежде чем я его уточнить):
.crew-report {
column-count: 2;
}
@media print {
.crew-report {
column-count: 2;
}
}
PDF отображается через этот вызов, который работает вне зависимости от класса отчета экипажа:
report.pdf.erb:
<%= wicked_pdf_stylesheet_link_tag "application" -%>
<div class="pdf-wrapper">
<%= render 'listings/reports/report_base.html.erb', total_column_count: @total_column_count, attributes: @attributes, attributes_for_totaling: @attributes_for_totaling %>
</div>
и, наконец, вызов wicked_pdf:
listings_controller.rb:
respond_to do |format|
format.html { render 'listings/reports/report' }
format.pdf do
@file_name = "$$$#{params[:type]}_report_"
@file_name += "#{params[:state]}_products_" if params[:state].present?
@file_name += "grouped_by_#{params[:grouped_by]}_" if
params[:grouped_by].present?
@file_name += "for_listing_#
{@listing.name.downcase.parameterize.underscore}"
render template: 'listings/reports/report.pdf.erb',
pdf: @file_name,
encoding: "UTF-8",
page_size: "Letter",
zoom: 0.6,
image_quality: 300,
grayscale: true,
disposition: params.key?('download') ? 'attachment' : 'inline',
show_as_html: params.key?('debug')
end
end