AddOn


PDFout - PDF-Generator

Beschreibung

Generator und Viewer für PDF-Dokumente. Das AddOn vereint den PDF-Generator DOMpdf (http://dompdf.github.io) und den Viewer PDFjs.

Erstellt PDFs direkt in REDAXO und zeigt sie mit PDFJs an.


github.com/FriendsOfREDAXO/pdfout

Umsetzung

Versionen

10.3.1

Für REDAXO
^5.15.1
Veröffentlicht am
02.04.2026
Require / PHP
>=8.1
Require / PHP Extensions
gd
  • PHP Vendor Pakete aktualisiert (dompdf, fpdf, tcpdf, etc.)
  • PDF.js auf Version 5.6.205 aktualisiert

10.3.0

Für REDAXO
^5.15.1
Veröffentlicht am
20.02.2026
Require / PHP
>=8.1
Require / PHP Extensions
gd

10.3.0 – 20.02.2026

Neue Features

  • PNG als Standardformat: Das Ausgabeformat wurde von JPEG auf PNG umgestellt, um eine bessere Farberhaltung bei dunklen Farben und Transparenz zu gewährleisten
  • Gamma-Korrektur (optional): Neue Einstellung im Media-Manager-Effekt zur Helligkeitsanpassung (Werte 0.8–1.4). Standard: 1.0 (keine Korrektur). Empfohlen: 1.2 für eine Darstellung, die der PDF-Vorschau in macOS Preview entspricht. Nutzt Imagick bevorzugt, convert (ImageMagick CLI) als zweiten Fallback, GD als dritten Fallback
  • ICC-Profil-Einbettung (optional): sRGB ICC-Profil kann in das Thumbnailbild eingebettet werden, damit Browser und Bildprogramme die Farben korrekt interpretieren. Nutzt automatisch das mitgelieferte TCPDF sRGB-Profil – keine zusätzliche Installation nötig. Unterstützt Imagick und convert (ImageMagick CLI) als Fallback

Verbesserungen

  • PdfThumbnail: Neue Methoden setGamma(), setEmbedIccProfile(), applyGammaCorrection(), embedSrgbIccProfile(), findSrgbIccProfile(), findSrgbIccProfilePath(), getIccProfilePaths()
  • rex_effect_pdf_thumbnail: Zwei neue Parameter im Media-Manager-Effekt (Gamma-Korrektur, ICC-Farbprofil)
  • checkAvailableTools() zeigt nun auch convert (ImageMagick CLI) Verfügbarkeit an
  • Gamma-Korrektur: Dreistufige Fallback-Kette (Imagick → convert CLI → GD)
  • ICC-Profil: Zweistufiger Fallback (Imagick → convert CLI)
  • Cache-Key berücksichtigt nun auch Gamma- und ICC-Einstellungen
  • Sprachdateien: Neue Übersetzungen für Gamma und ICC-Profil (DE/EN)

Hintergrund

PDF-Viewer wie macOS Preview nutzen Display Color Management (z.B. Display P3), wodurch dunkle Farben satter und heller erscheinen. Browser zeigen Thumbnails ohne dieses Mapping, was insbesondere bei dunklen Grüntönen zu einem nahezu schwarzen Ergebnis führen kann. Der Wechsel auf PNG als Standardformat sowie die optionalen Gamma- und ICC-Features lösen dieses Problem.

10.2.0

Für REDAXO
^5.15.1
Veröffentlicht am
12.02.2026
Require / PHP
>=8.1
Require / PHP Extensions
gd

PdfOut 10.2.0 – PDF-Thumbnails ohne ImageMagick

Das Problem

Ubuntu/Debian blockiert seit 2018 die PDF-zu-Bild-Konvertierung über ImageMagick (Policy in /etc/ImageMagick-6/policy.xml). Der bisherige Media-Manager-Effekt convert2img funktioniert dadurch für PDFs nicht mehr zuverlässig.

Die Lösung

PdfOut liefert ab sofort einen eigenen Media-Manager-Effekt „PDF-Thumbnail (pdfout)", der pdftoppm aus poppler-utils verwendet – nicht von der ImageMagick-Policy betroffen.

Neue Features

  • Media-Manager-Effekt rex_effect_pdf_thumbnail – erzeugt Vorschaubilder der ersten (oder beliebigen) PDF-Seite
  • PdfThumbnail-Klasse (FriendsOfRedaxo\PdfOut\PdfThumbnail) – auch direkt im Code nutzbar
  • Intelligente Tool-Erkennung mit automatischem Fallback: pdftoppm → pdftocairo → Ghostscript → Imagick
  • Status-Anzeige im Backend – zeigt im Effekt-Dialog an, welche Tools verfügbar sind (✓/✗)
  • Caching – generierte Thumbnails werden gecacht und bei PDF-Änderung automatisch neu erzeugt
  • Konfigurierbar: Ausgabeformat (JPG/PNG), DPI, JPEG-Qualität, Seitennummer, Hintergrundfarbe

Voraussetzung

**Ubuntu/Debian**
apt install poppler-utils

**macOS**
brew install poppler

Weitere Installationsanleitungen für Alpine, CentOS, Arch, openSUSE und Docker in der README.

Verwendung

Im Media Manager: Neuen Typ anlegen → Effekt „PDF-Thumbnail (pdfout)" hinzufügen → optional resize dahinter.

Im Template/Modul:

$thumbUrl = rex_media_manager::getUrl('pdf_thumb', 'dokument.pdf');
echo '<img src="' . $thumbUrl . '" alt="PDF-Vorschau">';

Direkt im Code:

use FriendsOfRedaxo\PdfOut\PdfThumbnail;

$thumb = new PdfThumbnail();
$imagePath = $thumb->setDpi(200)->setMaxWidth(800)->generate(rex_path::media('dokument.pdf'));

Hinweis

Der Effekt prüft die Dateiendung – bei Nicht-PDFs wird das Medium unverändert durchgereicht, genau wie bei convert2img.

10.1.1

Für REDAXO
^5.15.1
Veröffentlicht am
04.12.2025
Require / PHP
>=8.1
Require / PHP Extensions
gd

Vendor-Update TCPDF to [6.10.1]

10.1.0

Für REDAXO
^5.15.1
Veröffentlicht am
03.11.2025
Require / PHP
>=8.1
Require / PHP Extensions
gd

Neustes dompdf und ausführliche pdfjs demo ergänzt.
Neu: PDFjs auf 5.x angehoben und pdfjs kann nun über ein Workflow aktualisiert werden

What's Changed

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/10.0.1...10.1.0

10.0.1

Für REDAXO
^5.15.1
Veröffentlicht am
01.10.2025
Require / PHP
>=8.1
Require / PHP Extensions
gd

What's Changed

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/10.0.0...10.0.1

Sponsors ##

Version 10.0.0

10.0.0

Für REDAXO
^5.15.1
Veröffentlicht am
01.10.2025
Require / PHP
>=8.1
Require / PHP Extensions
gd

10.00 :: Alles neu - Sehr neu!

  • 🌈 HTML zu PDF: Wandelt HTML in hochwertige PDFs um
  • 🎨 Anpassbar: Ausrichtung, Schriftart, DPI und mehr
  • 🖼 Media Integration: Bilder direkt aus dem REDAXO Media Manager
  • 💾 Flexibel: Speichern oder direktes Streaming an Browser
  • 🔢 Automatik: Seitenzahlen und -zählung automatisch
  • 🔍 Viewer: Integrierter PDF-Viewer mit pdf.js
  • 🔒 Sicher: Passwortschutz und Berechtigungen
  • ✍️ Signiert: Digitale Signaturen für Authentizität
  • 📋 Zertifikatsverwasltung
  • 🚀 Workflow: Optimierter REDAXO-Workflow (dompdf → Cache → Signierung)

👋 Seht euch die Demo an

Major-Release: Es kann zu Inkompatibilitäten kommen, habe ich aber soweit möglich vermieden.

Es muss immer mit Namespace gearbeitet werden

use FriendsOfRedaxo\PdfOut\PdfOut; 

10.0.0-beta1

Für REDAXO
^5.15.1
Veröffentlicht am
23.06.2025
Require / PHP
>=8.1
Require / PHP Extensions
gd

10.00 :: Alles neu

  • 🌈 HTML zu PDF: Wandelt HTML in hochwertige PDFs um
  • 🎨 Anpassbar: Ausrichtung, Schriftart, DPI und mehr
  • 🖼 Media Integration: Bilder direkt aus dem REDAXO Media Manager
  • 💾 Flexibel: Speichern oder direktes Streaming an Browser
  • 🔢 Automatik: Seitenzahlen und -zählung automatisch
  • 🔍 Viewer: Integrierter PDF-Viewer mit pdf.js
  • 🔒 Sicher: Passwortschutz und Berechtigungen
  • ✍️ Signiert: Digitale Signaturen für Authentizität
  • 🚀 Workflow: Optimierter REDAXO-Workflow (dompdf → Cache → Signierung)

👋 Seht euch die Demo an

Major-Release: Es kann zu Inkompatibilitäten kommen, habe ich aber soweit möglich vermieden.

Es muss immer mit Namespace gearbeitet werden

use FriendsOfRedaxo\PdfOut\PdfOut; 

9.1.0

Für REDAXO
^5.15.1
Veröffentlicht am
31.01.2025
Require / PHP
>=8.1
Require / PHP Extensions
gd

9.0.1

Für REDAXO
^5.15.1
Veröffentlicht am
03.01.2025
Require / PHP
>=8.1
Require / PHP Extensions
gd

What's Changed

New Contributors

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/9.0.0...9.0.1

9.0.0

Für REDAXO
^5.15.1
Veröffentlicht am
28.10.2024
Require / PHP
>=8.1
Require / PHP Extensions
gd

Major Release

Wichtig:
Ab jetzt bitte use FriendsOfRedaxo\PdfOut\PdfOut; verwenden.
Die alte Class ist noch nutzbar und wird im nächsten Major entfernt.

Neu:
setPaperSize() ermöglicht mehr Seitenformate

What's Changed

  • Neue Property $paperSize für das Papierformat
  • Neue Methode setPaperSize() zum Setzen von Format und Orientierung
  • Bisherige Standardwerte (A4, portrait) bleiben erhalten
  • Unterstützung für Standard-Formate und benutzerdefinierte Größen

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/8.4.0...8.5.0

8.4.0

Für REDAXO
^5.15.1
Veröffentlicht am
24.09.2024
Require / PHP
>=8.1
Require / PHP Extensions
gd

Neu:

  1. Unterstützung für ein optionales Grundtemplate
  2. Direkte Integration von REDAXO-Artikeln

What's Changed

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/8.3.1...8.4.0

8.3.1

Für REDAXO
^5.15.1
Veröffentlicht am
11.09.2024
Require / PHP
>=8.1
Require / PHP Extensions
gd

8.3.0

Für REDAXO
^5.15.1
Veröffentlicht am
31.05.2024
Require / PHP
>=8.1
Require / PHP Extensions
gd

Neu:

Diese Version fügt eine Funktion hinzu, die den Platzhalter DOMPDF_PAGE_COUNT_PLACEHOLDER mit der Gesamtzahl an Seiten ersetzt, wenn vorhanden. Der Aufruf nach dem Rendern hat keine Auswirkungen, wenn der Platzhalter nicht vorhanden ist.

What's Changed

New Contributors

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/8.2.0...8.3.0

8.2.0

Für REDAXO
^5.15.1
Veröffentlicht am
24.05.2024
Require / PHP
>=8.1
Require / PHP Extensions
gd

What's Changed

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/8.1.3...8.2.0

8.1.3

Für REDAXO
^5.15.1
Veröffentlicht am
01.05.2024
Require / PHP
>=8.1
Require / PHP Extensions
gd

What's Changed

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/8.1.2...8.1.3

8.1.2

Für REDAXO
^5.15.1
Veröffentlicht am
26.04.2024
Require / PHP
>=8.1
Require / PHP Extensions
gd

Vendor update to 2.0.7

8.1.1

Für REDAXO
^5.15.1
Veröffentlicht am
13.12.2023
Require / PHP
>=8.1
Require / PHP Extensions
gd

What's Changed

version: '8.1.1'
vendor: '2.0.4'
pdfjs: '4.0.269'

added htaccess for mime-type mjs

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/8.0.1...8.1.1

8.1.0

Für REDAXO
^5.15.1
Veröffentlicht am
13.12.2023
Require / PHP
>=8.1
Require / PHP Extensions
gd

Achtung! Für den Viewer muss der MIME-Type mjms bekannt gemacht werden
z.B: in der .htaccess
AddType text/javascript .mjs

What's Changed

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/8.0.1...8.1.0

8.0.1

Für REDAXO
^5.14.0
Veröffentlicht am
24.09.2023
Require / PHP
>=8.0
Require / PHP Extensions
gd

8.0.0

Für REDAXO
^5.14.0
Veröffentlicht am
23.09.2023
Require / PHP
>=8.0
Require / PHP Extensions
gd

Achtung: sendPDF() wurde entfernt. Bitte auf die neue Schreibweise seit 7.x umstellen.

Vendor-Update pdfjs v3.10.111

Major Changes

removed deprecated sendPDF

What's Changed

New Contributors

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/7.1.4...8.0.0

7.1.4

Für REDAXO
^5.14.0
Veröffentlicht am
29.06.2023
Require / PHP
>=8.0
Require / PHP Extensions
gd

7.0 - 7.1.4

Vollständig überarbeitete Version.
Neu: Setting-Methoden zur einfacheren Konfiguration
Neu: Der REDAXO-Outputfilter kann direkt ausgeführt werden
Neu: Gleichzeitige Ausgabe und Speicherung der PDF möglich
Neu: DPI kann eingestellt werden
Neu: Readme überarbeitet

Deprecated: sendPdf(), die Methode wird mit 8.0.0 entfernt. Daher bitte schon jetzt auf die neue Schreibweise umstellen.

Da die Methode als deprecated markiert ist wird empfohlen, folgende Schreibweise zu nutzen (siehe Beispiel-Code oben):

<?php

// alte Schreibweise (deprecated)
PdfOut::sendPdf(…);

// neue Schreibweise
$pdf = new PdfOut();
// Setter-Methoden verwenden - Siehe Readme
// Bsp.: $pdf->setName('meindateiname');
$pdf->setSaveToPath(rex_path::base() . 'media/')
->setSaveAndSend(false);
?>

Fix: In der sendPDF() fehlte setSaveToPath()

Added dompdf 2.0.3
PDF.js with pinch to zoom

Readme korrigiert
Corrected CS

6.2.1

Für REDAXO
^5.13.0
Veröffentlicht am
04.10.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd

Vendor: Security fix: https://github.com/dompdf/dompdf/issues/2994

Vendor: Change highlights since 2.0.0

Improved font-face declaration parsing and handling
Improved layout of images with percentage-based dimensions

6.2.0

Für REDAXO
^5.13.0
Veröffentlicht am
08.09.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd

Update: pdf.js v2.16.105

6.1.0

Für REDAXO
^5.13.0
Veröffentlicht am
30.06.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd

6.0.0

Für REDAXO
^5.13.0
Veröffentlicht am
28.06.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd

What's Changed

Thanks to @staabm & REXStan it's also a bit better in code

Full Changelog: https://github.com/FriendsOfREDAXO/pdfout/compare/5.2.0...6.0.0

Updated to version 2 of @dompdf - thanks

Change highlights since 1.2.x

  • Addresses multiple security vulnerabilities (see below)
  • Modifies callback and page_script/page_text handling (breaking change, see below)
  • Switches the HTML5 parser to Masterminds/HTML5
  • Improves CSS property parsing and representation
  • Improves border, outline, and background rendering for inline elements
  • Switches installed fonts and font metrics cache file format to JSON
  • Adds support for the inset CSS shorthand property and the legacy break-word keyword for word-break
  • Adds "end_document" callback event
Vulnerability References Type Severity
Improper Restriction of XML External Entity Reference #2564 Information Disclosure TBD
Deserialization of Untrusted Data #2564 Remote Code Execution Critical
External Control of File Name or Path #2564 Information Disclosure TBD
Server-Side Request Forgery #2564 Information Disclosure TBD

and much more

More Information https://github.com/dompdf/dompdf/releases/tag/v2.0.0

6.0.0-beta1

Für REDAXO
^5.13.0
Veröffentlicht am
27.06.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd

Updated to version 2 of @dompdf

Change highlights since 1.2.x

  • Addresses multiple security vulnerabilities (see below)
  • Modifies callback and page_script/page_text handling (breaking change, see below)
  • Switches the HTML5 parser to Masterminds/HTML5
  • Improves CSS property parsing and representation
  • Improves border, outline, and background rendering for inline elements
  • Switches installed fonts and font metrics cache file format to JSON
  • Adds support for the inset CSS shorthand property and the legacy break-word keyword for word-break
  • Adds "end_document" callback event
Vulnerability References Type Severity
Improper Restriction of XML External Entity Reference #2564 Information Disclosure TBD
Deserialization of Untrusted Data #2564 Remote Code Execution Critical
External Control of File Name or Path #2564 Information Disclosure TBD
Server-Side Request Forgery #2564 Information Disclosure TBD

and much more

More Information https://github.com/dompdf/dompdf/releases/tag/v2.0.0

5.2.0

Für REDAXO
^5.10.0
Veröffentlicht am
02.05.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd
  • PDF auf dem Server speichern

Mit dem Parameter "$saveToPath" kann man einen Pfad definieren, auf welchem die generierte PDF auf dem Server gespeichert wird.

https://github.com/FriendsOfREDAXO/pdfout/issues/49
@danspringer

Vendor 1.2.2
@skerbis

5.1.0

Für REDAXO
^5.10.0
Veröffentlicht am
13.04.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd

Menüpunkt entfernt.
Die Readme ist weiterhin in AddOns erreichbar.

5.0.3

Für REDAXO
^5.10.0
Veröffentlicht am
08.04.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd

5.0.2

Für REDAXO
^5.10.0
Veröffentlicht am
18.02.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd

Dpi wieder auf 100
@olien

5.0.1

Für REDAXO
^5.10.0
Veröffentlicht am
17.02.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd

Kleine Textkorrekturen in der Readme

5.0.0

Für REDAXO
^5.10.0
Veröffentlicht am
16.02.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd
  • Deprecated Methoden durch neue getOptions() ersetzt.
  • Ausgangspfad ist jetzt rex_path::frontend()

Sofern keine eigenen Änderungen oder abgewandelte Classes verwendet werden, sollte das Update keine Probleme verursachen.

4.3.0

Für REDAXO
^5.8.0
Veröffentlicht am
14.02.2022
Require / PHP
>=7.4
Require / PHP Extensions
gd

vendor: 'v1.2.0'

4.0 – 4.3.0

  • New class: PdfOut
  • New PdfOut::sendPdf($filename,$html)
  • New PdfOut::viewer($file)

Die neue Methode PdfOut::sendPdf() ermöglicht es schnell und unkompliziert DIN A4 Dokumente mit allen erforderlichen Einstellungen zu erstellen.
PdfOut::viewer() liefert immer die korrekte URL zum Viewer.