Bitte verwenden sie die "Drucken" Funktion am Seitenende, um ein PDF zu erstellen.
Für Webhosting Linux-Pakete, IONOS Performance Hosting und Managed Dedicated Server
ImageMagick ist eine Sammlung von Anwendungen zum Erstellen, Bearbeiten und Konvertieren von Bilddateien.
In den Webhosting-Paketen und auf den IONOS Managed Servern steht Ihnen ImageMagick in Form der Anwendung convert unter /usr/bin/convert bereits vorinstalliert zur Verfügung. Mit dem convert-Befehl können Sie Dateiformate für Bilder konvertieren, skalieren, weichzeichnen, zuschneiden und vieles mehr. Der Zugriff auf convert erfolgt über Skripte oder per direktem Shell-Befehl.
Verwendungsbeispiele
Verbinden Sie sich per SSH mit Ihrem Webspace und führen Sie den Befehl convert im Terminalfenster aus.
Einfache Konvertierung, z.B. einer JPG-Datei in eine PNG-Datei:
convert beispiel.jpg beispiel.png
Konvertierung einer Bilddatei mit Reduzierung der Größe der PNG-Zieldatei um z.B. 50%:
convert beispiel.jpg -resize 50% beispiel.png
Konvertieren und die Auflösung der PNG-Zieldatei auf z.B. 480x95 Pixel setzen:
convert -resize 480x95 beispiel.jpg beispiel.png
Hinweis
Bei Verwendung des Parameters resize versucht ImageMagick, das Seitenverhältnis des Quellbildes in etwa beizubehalten. Wenn das Zielbild genau die angegebene Größe haben soll, müssen Sie in Ihrem Befehl ein Ausrufezeichen hinter die Zielgröße setzen. Beispiel:
convert -resize 480x95! beispiel.jpg beispiel.png
PDF-Unterstützung aktivieren
In der Standardeinstellung ist es aus Sicherheitsgründen nicht möglich, Dateien vom oder ins PDF-Format zu konvertieren. Sie können die PDF-Unterstützung jedoch wie folgt aktivieren:
- Erstellen Sie das Verzeichnis .config/ImageMagick im Hauptverzeichnis Ihres Webspace.
- Erstellen Sie eine Textdatei mit dem Namen policy.xml und kopieren Sie den folgenden Code in diese Datei:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policymap [
<!ELEMENT policymap (policy)+>
<!ATTLIST policymap xmlns CDATA #FIXED ''>
<!ELEMENT policy EMPTY>
<!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED
stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
]>
<!--
Configure ImageMagick policies.
Derived from /etc/ImageMagick-6/policy.xml.
-->
<policymap>
<!-- <policy domain="system" name="shred" value="2"/> -->
<!-- <policy domain="system" name="precision" value="6"/> -->
<!-- <policy domain="system" name="memory-map" value="anonymous"/> -->
<!-- <policy domain="system" name="max-memory-request" value="256MiB"/> -->
<!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
<policy domain="resource" name="memory" value="256MiB"/>
<policy domain="resource" name="map" value="512MiB"/>
<policy domain="resource" name="width" value="16KP"/>
<policy domain="resource" name="height" value="16KP"/>
<!-- <policy domain="resource" name="list-length" value="128"/> -->
<policy domain="resource" name="area" value="128MB"/>
<policy domain="resource" name="disk" value="1GiB"/>
<!-- <policy domain="resource" name="file" value="768"/> -->
<policy domain="resource" name="thread" value="2"/>
<!-- <policy domain="resource" name="throttle" value="0"/> -->
<!-- <policy domain="resource" name="time" value="3600"/> -->
<!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
<!-- <policy domain="module" rights="none" pattern="{PS,PDF,XPS}" /> -->
<!-- <policy domain="delegate" rights="none" pattern="HTTPS" /> -->
<!-- <policy domain="path" rights="none" pattern="@*" /> -->
<!-- <policy domain="cache" name="memory-map" value="anonymous"/> -->
<!-- <policy domain="cache" name="synchronize" value="True"/> -->
<!-- <policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/> -->
<!-- <policy domain="system" name="pixel-cache-memory" value="anonymous"/> -->
<!-- <policy domain="system" name="shred" value="2"/> -->
<!-- <policy domain="system" name="precision" value="6"/> -->
<!-- not needed due to the need to use explicitly by mvg: -->
<!-- <policy domain="delegate" rights="none" pattern="MVG" /> -->
<!-- use curl -->
<policy domain="delegate" rights="none" pattern="URL" />
<policy domain="delegate" rights="none" pattern="HTTPS" />
<policy domain="delegate" rights="none" pattern="HTTP" />
<!-- in order to avoid to get image with password text -->
<policy domain="path" rights="none" pattern="@*"/>
<!-- enable processing on data types PDF, PNG -->
<policy domain="coder" rights="read | write" pattern="{PS,PS2,PS3,EPS,XPS,PDF,PNG}" />
<policy domain="module" rights="read | write" pattern="{PS,PS2,PS3,EPS,XPS,PDF,PNG}" />
</policymap>
Laden Sie die fertige Datei policy.xml in das Verzeichnis .config/ImageMagick hoch.
Die PDF-Unterstützung ist jetzt aktiv.
Verwenden der PDF-Konvertierung in PHP-Skripten
Damit die PDF-Konvertierung auch innerhalb der PHP-Umgebung funktioniert, muss im Skript vor dem Aufruf von Convert die PHP-Umgebungsvariable HOME nach folgendem Schema gesetzt werden:
putenv("HOME=<Serverpfad zu Kundenwebspace>">
Wie Sie den Serverfpfad zu Ihrem Webspace ermitteln, zeigen wir Ihnen hier.
Das folgende Beispiel zeigt, wie Sie die PDF-Konvertierung mit Ihren Skripten nutzen können:
<?php
putenv("HOME=/homepages/12/d123456789/htdocs");
$cmd = '/usr/bin/convert /homepages/12/d123456789/htdocs/document.pdf /homepages/12/d123456789/htdocs/document.jpg';
shell_exec($cmd);
?>