macht einen Seitenumbruch, wenn die pdf-Datei generiert mit wicked_pdf
sample.erb.html
<p>Page 1</p1>
<p>Page 2</p2>
So, alles nach "Seite 1" ich drucken möchten, auf der 2. Seite.
Wie kann ich dies tun?
Gibt es eine Lösung in SO aber es hat nicht funktioniert für mich.
Beispielsweise im Fall von Garnelen, es hat ein nettes feature namens " start_new_page
Du musst angemeldet sein, um einen Kommentar abzugeben.
in der css -
Update
Nach ein paar Fragen, werde ich erweitere meine Antwort und wie ich es in meine apps.
1 Einige Male, die wickedpdf Helfer nicht funktioniert, also habe ich noch eine Initialisierung
_config/- Initialisierungen/wiked_pdf.rb_
2 In Anwendungs-controller-erstellen Sie eine config-Methode mit der Allgemeinen config params
_app/Controller/application_controller.rb_
3 Erstellen Sie ein gemeinsames layout für alle Ihre pdf-Dateien. Hier nutze ich die Anwendung von css, um den gleichen look und feel der web-Seite in pdf-berichten, nur dass ich die gleichen Klassen und id ' s
app/layouts/pdf.html-Code.erb
4 Hinzufügen von pdf-Umleitung in Ihrem Controller
_app/Controller/users_controller.rb_
5 Jetzt, in deinem css ist, wählen Sie die html-id wird die Seite Bremse
Ich hatte das gleiche problem, und ich entdeckte etwas, was helfen könnte. Dies war mein Seitenumbruch CSS-code:
Dieser hat nicht funktioniert, weil der ZWEI Gründe:
I. In einer der SASS importierten Datei hatte ich diese Zeile im code:
II. Das andere problem war, bootstrap
Es aussieht, weil der
float: left
in:wird der Seitenumbruch funktioniert nicht mehr. So, fügen Sie einfach diese nach Sie importieren bootstrap.
Für noch jemand mit diesem problem aber keiner von diesen Antworten, wie bei mir, die einfach nicht arbeiten:
Ich habe bis auf die Verwendung von CSS zu beheben, die Seite bricht und stattdessen generiert 2 PDF-Dateien und fusioniert Sie zusammen, und verwendet die resultierende Datei statt, so gibt es keine Möglichkeit für einen Seitenumbruch nicht vorhanden.
Zusammenführen
files
ist, ein array von pdf-Datei-Namen, die ich verwendet,Update
Ich weiß nicht, wo ich generiert 2 PDF-Dateien, aber ich habe es geschafft, das zu tun diese Seitenumbrüche in einer einzigen pdf-Datei durch manuelles zählen der Pixel in der
.html.erb
- Dateien.<% @pixel_height = 0 %>
und<% @page_height = 980 %>
. die pdf-Datei anzeigen als html, um zu sehen, wie viele Pixel jeder Abschnitt nimmt. Hinzufügen@pixel_height
.In Orten, die Sie eine Seite brechen würde Sinn machen, ich check
@pixel_height + 20 >= @page_height
(20 wird die Anzahl von Pixeln, die ein<tr>
nahm für die meisten unserer PDF-Dateien) und Rendern Sie einen manuellen Seitenumbruch ein-und umrichten@pixel_height
zu0
. Der manuelle Seitenumbruch schließt alle html-tags, fügt eine0
pixel hoch div mit einerpage-break-after: always
, und öffnet die html-tags wieder.Ich habe nur 2 Probleme mit dieser Methode:
@pixel_count
verursacht einen automatischen Seitenumbruch in eine ungerade Stelle und einen manuellen Seitenumbruch auch in eine ungerade StelleGegen diese 2 Probleme, wir haben langsam unsere PDF-Dateien zu Garnelen, speziell Garnelen::Tabelle. Es ist viel schneller und es berechnet die Höhe jeder Zeile vor, es zieht ein pdf-Dokument Seitenumbrüche werden von mehr konsistente und vorhersagbare
ruby page1=render_to_string(partial: 'page1.html.erb') page2=render_to_string(partial: 'page2.html.erb') pdf1 = WickedPdf.new.pdf_from_string(page1) pdf2 = WickedPdf.new.pdf_from_string(page2) files = ["#{Rails.root}/public/downloads/#{SecureRandom.hex(20)}.pdf"] File.open(files[0], 'wb+') do |f| f << pdf f.rewind end files << "#{Rails.root}/public/downloads/#{SecureRandom.hex(20)}.pdf" File.open(files[1], 'wb+') do |f| f << pdf f.rewind end
rufen Sie dann den Seriendruck aus der Antwort