htmlpdf

HTML zu PDF · Ruby

HTML zu PDF mit Ruby und Grover

Grover ist eine Ruby-Bibliothek, die ueber eine Node-Bruecke Puppeteer und Chromium ansteuert. Damit bringt sie die volle Browser-Treue in Ruby- und Rails-Anwendungen und wandelt HTML-Strings oder URLs in PDF-Bytes um.

Code-Beispiel

require "grover"

html = "<h1>Beleg</h1><p>Summe: 49,90 Euro</p>"

grover = Grover.new(html, format: "A4",
                          print_background: true,
                          margin: { top: "20mm", bottom: "20mm" })

pdf = grover.to_pdf

File.binwrite("beleg.pdf", pdf)

Hinweise

Grover schlaegt die Bruecke zwischen Ruby und Puppeteer. Da im Hintergrund Chromium ueber Node laeuft, erbt Grover dessen vollstaendige CSS-Unterstuetzung: Flexbox, Grid, Webfonts, SVG und JavaScript-gerenderte Inhalte werden korrekt verarbeitet. Voraussetzung ist eine installierte Node-Umgebung samt Puppeteer, da Grover diese Werkzeuge aufruft. In Rails laesst sich Grover bequem mit erblichen Views kombinieren: Man rendert ein Template zu HTML und uebergibt das Ergebnis an Grover.new. Die Optionen entsprechen weitgehend den Puppeteer-PDF-Optionen, etwa format, print_background, margin sowie display_header_footer mit Templates fuer Seitenzahlen. Auch Optionen fuer Viewport und Warten auf Netzwerkleerlauf werden durchgereicht. Der Kompromiss ist die zusaetzliche Node-Abhaengigkeit neben Ruby, was die Deployment-Umgebung etwas schwerer macht. Wer in Ruby pixelgenaue, modern gestaltete PDFs braucht und die Node-Bruecke akzeptiert, erhaelt mit Grover Browser-Qualitaet ohne den Umweg ueber ein separates Microservice.

Anzeige

FAQ

Häufige Fragen

Braucht Grover Node neben Ruby?

Ja. Grover ruft Puppeteer ueber eine Node-Bruecke auf. Node und das Puppeteer-Paket muessen in der Umgebung installiert sein, damit Chromium gestartet werden kann.

Wie binde ich Grover in Rails ein?

Rendere zuerst dein View-Template zu einem HTML-String, etwa mit render_to_string, und uebergib diesen an Grover.new. Das Ergebnis von to_pdf sendest du als Datei aus.

Ohne Code geht es auch: Der HTML-zu-PDF-Converter wandelt direkt im Browser um, ohne Installation und ohne Upload.

Anzeige
Anzeige
Anzeige
Anzeige