Über Web, Tech, Games, Art,
Code & Design

5. Januar 2024

PDF in JPG konvertieren – so kannst du in WordPress ein Thumbnail eines PDFs generieren

Mit folgendem Code, kannst du aus der ersten Seite eines PDFs ein JPG generieren. Z.B. um eine Vorschau des PDFs darzustellen und das PDF zu verlinken. Dieser Code kann z.B. in WordPress in einem LazyBlock-Block verwendet werden.

$pdf_url = esc_url( $attributes['pdf']['url'] ); 

$filename = basename($pdf_url);
$filename = str_replace('.pdf', '', $filename);
$output_filename = $filename . '.jpg';

$pos = strpos(__DIR__, '/wp-content');
$part1 = substr(__DIR__, 0, $pos);

$site_url = get_site_url();

$part2 = str_replace($site_url, "", $pdf_url);
$pdf_path = $part1 . $part2;

$jpg_path = $part1 . '/wp-content/uploads/images/' . $output_filename;
$jpg_url = $site_url . '/wp-content/uploads/images/' . $output_filename;

if (!file_exists($jpg_path)) {
   
$imagick = new Imagick();
$imagick->setResolution(72, 72); 
$imagick->readImage($pdf_path . '[0]');
$imagick->setImageFormat('jpeg');
$imagick->thumbnailImage(300, 0);
$imagick->writeImage($jpg_path);

$imagick->clear();
$imagick->destroy();

} 

echo '<img src="'.$jpg_url.'">';

Auch in Kombination mit dem WordPress-Plugin „DearFlip“ lässt sich das Script nutzen. Um die URL des PDFs zu ermitteln muss folgender Code statt der ersten Zeile des obenstehenden eingesetzt werden:

$code = do_shortcode('[dflip id="36"][/dflip]');

$start_pos = strpos($code, '"source":"') + strlen('"source":"');
$end_pos = strpos($code, '"', $start_pos);
$pdf_url = substr($code, $start_pos, $end_pos - $start_pos);
$pdf_url = str_replace('\/', '/', $pdf_url);


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert