任意の画像をA4サイズのPDFに変換するPHPスクリプトのメモです。
ブラウザ上で、アップロードした画像をPDFに変換するスクリプトを作成する必要があり、その一部分をメモとして残します。
解像度は100dpiや150dpiを超える値は時間が非常にかかり、サーバにも負荷をかけるので注意が必要です。
以下では、’output.pdf’というPDFファイルに出力しています。
// ファイルの書き出し $image->writeImage('output.pdf');
または、以下のようなコードで、作成したPDFファイルをそのまま表示することも可能です。
// ファイルの表示 header('Content-type: application/pdf'); echo $image;
以下が、コードの全体です。
<?php // JPG画像のPDFへの変換 // 初期値の設定 $img = 'lenna.jpg'; // 読み込む画像 $dpi = 100; // PDFの解像度 [dpi] $w = 210.0; // PDFの横幅 [mm] $h = 297.0; // PDFの縦幅 [mm] // mm -> px $pw = intval($w/25.4*$dpi); $ph = intval($h/25.4*$dpi); // 画像の読み込み $image = new Imagick(); $image->setResolution($dpi, $dpi); $image->setPage($pw, $ph, 0, 0); $image->readImage($img); // 画像の再サンプル $image->resampleImage($pw, $ph, imagick::FILTER_UNDEFINED, 1); $image->setImageFormat('pdf'); // ファイルの書き出し $image->writeImage('output.pdf'); // ファイルの表示 /* header('Content-type: application/pdf'); echo $image; */ ?>