sample.erb.html
<p>Page 1</p1>
<p>Page 2</p2>
というわけで、 「Page 1」以降はすべて2ページ目に印刷したい。
これどうやってするの?
SOには1つの解決策がありますが、うまくいきませんでした。
たとえば、Prawn の場合、start_new_pageという便利な機能があります。
sample.erb.html
<p>Page 1</p1>
<p>Page 2</p2>
というわけで、 「Page 1」以降はすべて2ページ目に印刷したい。
これどうやってするの?
SOには1つの解決策がありますが、うまくいきませんでした。
たとえば、Prawn の場合、start_new_pageという便利な機能があります。
あなたのCSSで
p{page-break-after: always;}
いくつかの質問の後、回答とそれをアプリでどのように使用するかについて説明します。
_config/initializers/wiked_pdf.rb_
module WickedPdfHelper
def wicked_pdf_stylesheet_link_tag(*sources)
sources.collect { |source|
"<style type='text/css'>#{Rails.application.assets.find_asset("#{source}.css")}</style>"
}.join("\n").gsub(/url\(['"](.+)['"]\)(.+)/,%[url("#{wicked_pdf_image_location("\\1")}")\\2]).html_safe
end
def wicked_pdf_image_tag(img, options={})
image_tag wicked_pdf_image_location(img), options
end
def wicked_pdf_image_location(img)
"file://#{Rails.root.join('app', 'assets', 'images', img)}"
end
def wicked_pdf_javascript_src_tag(source)
"<script type='text/javascript'>#{Rails.application.assets.find_asset("#{source}.js").body}</script>"
end
def wicked_pdf_javascript_include_tag(*sources)
sources.collect{ |source| wicked_pdf_javascript_src_tag(source) }.join("\n").html_safe
end
WickedPdf.config = {
}
end
_app/controllers/application_controller.rb_
class ApplicationController < ActionController::Base
def pdf_config
WickedPdf.config = {
:wkhtmltopdf => "/usr/local/bin/wkhtmltopdf",
:orientation => 'Landscape',
:layout => "pdf.html",
:footer => {
:left => "Rectores Lideres Transformadores",
#:left => "#{Entidad.find(@current_user.entidad).nombre}",
:right => "#{Time.now}",
:font_size => 5,
:center => '[page] de [topage]'
},
:disposition => 'attachment'
}
end
end
アプリ/レイアウト/pdf.html.erb
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<%= wicked_pdf_stylesheet_link_tag "application" %> ----- HERE YOUR APPLICATION CSS -----
</head>
<div id="content">
<%= yield %>
</div>
</body>
</html>
_app/controllers/users_controller.rb_
def index
@users = User.all
respond_to do |format|
format.pdf do
pdf_config
render :pdf => "filename"
end
end
end
#brake{page-break-after: always;}
私は同じ問題を抱えていて、役立つかもしれない何かを発見しました。これは私の改ページCSSコードでした:
.page-break {
display: block;
clear: both;
page-break-after: always;
}
これは、次の2 つの理由で機能しませんでした。
I. SASSインポートファイルの1つに、次のコード行がありました。
html, body overflow-x: hidden !important
Ⅱ.他の問題はブートストラップでした
@import "bootstrap"
次のように見えますfloat: left
。
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
float: left;
}
改ページが機能しなくなりました。したがって、ブートストラップをインポートした後にこれを追加するだけです。
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
float: initial !important;
}