Konvertieren Sie ein PDF-Dokument in ein Vorschaubild in PHP

John Wachira 20 Juni 2023
  1. Konvertieren Sie PDF-Dokumente mit PHP und Ghostscript in ein Vorschaubild
  2. Konvertieren Sie PDF-Dokumente mit PHP und ImageMagick in ein Vorschaubild
Konvertieren Sie ein PDF-Dokument in ein Vorschaubild in PHP

In diesem Tutorial werden zwei Methoden erläutert, mit denen Sie ein PDF-Dokument in PHP in eine Reihe von Vorschaubildern konvertieren können.

Die Vorschau fügt Ihren Inhalten eine Sicherheitsebene hinzu, da der Inhalt von Bildern nicht kopiert und eingefügt werden kann. Sie bieten auch andere Funktionalitäten, auf die wir nicht näher eingehen werden.

Der einfachste Weg, PDF-Dokumente in Vorschaubilder umzuwandeln, ist die Verwendung von Bibliotheken von Drittanbietern. Diese sind:

  1. Ghostscript
  2. ImageMagick

Konvertieren Sie PDF-Dokumente mit PHP und Ghostscript in ein Vorschaubild

Dieses Befehlszeilendienstprogramm ist unter Windows, Linux und Mac verfügbar. Befolgen Sie diese Schritte, um PDF-Dokumente in Vorschaubilder umzuwandeln.

  1. Um die Installation zu starten, gehen Sie zur offiziellen Website von Ghostscript, laden Sie die ausführbare Datei herunter und folgen Sie den Installationsanweisungen.

  2. Führen Sie den folgenden Code aus, um die Installation zu überprüfen.

    $gs --version
    
  3. Führen Sie im Verzeichnis Ihrer PDF-Datei den folgenden Befehl aus.

    $gs -dSAFER -dBATCH -sDEVICE=jpeg \
    -dTextAlphaBits=4 -dGraphicsAlphaBits=4 \
    -dFirstPage=1 -dLastPage=1 -r300 \
    -sOutputFile=preview.jpg input.pdf
    
  4. Der obige Befehl erstellt ein Bild der Startseite Ihres Dokuments. Wir rufen die Funktion exec() auf, um den Befehl in PHP zu verwenden, wie unten gezeigt.

    <?php
    exec( "ls -l", $output_str, $return_val );
    foreach ( $output_str as $line ) {
        echo $line . "\n";
    }
    ?>
    

    Der obige Code lädt alle Verzeichnisse und Dateien in die Konsole. Wir können jetzt PHP-Code verwenden, um den Ghostscript-Befehl auszuführen.

  5. Hier ist das von uns verwendete PHP-Skript.

<?php

function my_pdf ( $file ) {
    $file_info = file_get_contents( $file );

    if ( preg_match( "/^%PDF-[0-1]\.[0-9]+/", $file_info ) ) {
        return true;
    }
    else {
        return false;
    }
}
function our_preview ( $file ) {
    $our_format = "png";
    $prvw_page = "1";
    $resolution = "300";
    $our_file = "prvw.jpg";

    $command  = "gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=" . $our_format . " ";
    $command .= "-dTextAlphaBits=" . " -dGraphicsAlphaBits=" . . " ";
    $command .= "-dFirstPage=" . $prvw_page . " -dLastPage=" . $prvw_page . " ";
    $command .= "-r" . $resolution . " ";
    $command .= "-sOutputFile=" . $our_file . " '" . $file . "'";
    echo "Running command...\n";
    exec( $command, $com_output, $ret_val );
    foreach( $com_output as $line ) {
        echo $line . "\n";
    }
    if ( !$ret_val ) {
        echo "Preview created !!\n";
    }
    else {
        echo "Error while creating.\n";
    }
}
function __main__() {
    global $arg;
    $inp_file = $arg[1];

    if ( my_pdf( $inp_file ) ) {
        // Preview for the pdf
        create_preview( $inp_file );
    }
    else {
        echo "The  file " . $inp_file . " is not a valid PDF document.\n";
    }
}
__main__();
?>
Die Codeausführung beginnt bei der Funktion `_main_()`, wo sie die PDF-Datei auf der Befehlszeile abruft und ihre Gültigkeit überprüft. Wenn die Datei gültig ist, führt PHP den Ghostscript-Befehl aus.

Ausgang:
$ php pdf_preview.php input.pdf
Executing command...
GPL Ghostscript 9.22 (2022-08-05)
Copyright (C) 2022 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
Preview created !!

Konvertieren Sie PDF-Dokumente mit PHP und ImageMagick in ein Vorschaubild

  1. Installieren Sie zunächst alle ImageMagick-Binärdateien auf Ihrem System. Führen Sie den folgenden Befehl aus, um ImageMagick-Abhängigkeiten zu installieren.

    $sudo dnf install gcc php-devel php-pear
    
  2. Führen Sie den folgenden Befehl aus, um ImageMagick zu installieren.

    $ sudo dnf install ImageMagick ImageMagick-devel
    
  3. Lassen Sie uns dann die PHP-Wrapper-Klassen installieren.

    $ sudo pecl install imagick
    $ sudo bash -c "echo "extension=imagick.so" > /etc/php.d/imagick.ini"
    
  4. Sie müssen Ihren Apache-Webserver für diejenigen neu starten, die ihn auf einem LAMP-Server verwenden.

    $ sudo service httpd restart
    
  5. An diesem Punkt ist alles, was wir brauchen, bereit. Wir können jetzt das frühere PHP-Skript verwenden und die Funktion create_preview() bearbeiten.

    Verwenden Sie den folgenden Code:

    function create_preview ( $file ) {
        $output_format = "jpeg";
        $preview_page = "1";
        $resolution = "300";
        $output_file = "imagick_preview.jpg";
    
        echo "Fetching preview...\n";
        $img_data = new Imagick();
        $img_data->setResolution( $resolution, $resolution );
        $img_data->readImage( $file . "[" . ($preview_page - 1) . "]" );
        $img_data->setImageFormat( $output_format );
    
        file_put_contents( $output_file, $img_data, FILE_USE_INCLUDE_PATH );
    }
    

    Ausgang:

    $ php pdf_preview.php input.pdf
    Fetching preview...
    

So erstellen wir Vorschaubilder aus PDF-Dokumenten auf PHP. Beide Methoden haben eine ähnliche Grundfunktionalität. Ihre Wahl hängt von Ihren Vorlieben ab.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Verwandter Artikel - PHP PDF