T&R splet blog o spletnih storitvah. Razgaljamo tehnologijo!

reference spletnih strani
1st April

Predogled PDF-ja – pretvorba PDF v jpeg s pomočjo PHP-ja

Pisal sem že, da je mogoče narediti predogled PDF-ja in tudi druge tipe datotek skozi HTML Object tag. Problem nastane, ker ima veliko uporabnikov inštalirane različne plugine za prikaz PDF-ja, kjer nekateri ne podpirajo takojšen predogled v brskalniku, nekateri javijo napako in tako dalje.

Da bi rešili to težavo in dodali možnost predogleda PDF datotek lahko uporabimo ImageMagic knjižnico s katero bomo prvo stran (poljubno) PDF-ja pretvorili v jpeg sliko. S tem bomo zagotovili enako delovanje na vseh brskalnikih ne glede na nameščene dodatke (plugin-e) s strani uporabnika. Poglejmo si PHP kodo, ki pretvori prvo PDF v jpeg sliko in postavi pravilne header-je:

[php]
$filename = ‘test.pdf';
$jpegPDFPreview = $filename . “.jpg”;
$im = new imagick($filename . “[0]“); // [0] -> prva stran, [1] -> druga stran, itd..
$im->setCompressionQuality(90); // Nastavimo kvaliteto slike
$im->setImageFormat(“jpg”); // Nastavimo format slike

if (file_put_contents($jpegPDFPreview, $im->getImageBlob())) { // dobimo sliko kot binary data in jo shranimo
header(“Content-length: “.filesize($jpegPDFPreview));
header(“Content-type: image/jpeg”);
header(“Content-Disposition: attachment; filename=$jpegPDFPreview”);
header(‘Cache-Control: must-revalidate, post-check=0, pre-check=0′);
} else {
header(“HTTP/1.0 404 Not Found”);
echo ‘error_saving_preview_picture.jpg';
}
[/php]

S pomočjo ImageMagic knjižnice in komadne vrstice je moč pretvoriti tudi celotni PDF v sliko. ImageMagic pa ne podpira le PDF formata, ampak tudi druge. Celotna lista podprtih formatov.

Dodatne informacije:


1 komentar na “Predogled PDF-ja – pretvorba PDF v jpeg s pomočjo PHP-ja”

  1. .: TRSplet - internetne storitve .: » Blog Archive » Uporabni HTML meta tagi - PHP header je napisal:

    [...] Predogled PDF-ja – pretvorba PDF v jpeg s pomočjo PHP-ja [...]

Dodaj komentar

You must be logged in to post a comment.