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.'">';
Code-Sprache: PHP (php)
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);
Code-Sprache: PHP (php)