在imagick

时间:2019-02-02 10:48:51

标签: php fopen imagick mpdf

在Imagick中,我尝试执行以下操作: 当访问.php已经开始下载.jpg时,我什至不需要预览就可以下载多个,因为有问题的.pdf总是有两页,而由于某种原因,我只能下载第一页。不下载第二页。

pdf_file = './programming/'.$date.'.pdf';
$mpdf->Output($pdf_file);

$img = new imagick();
$img->setResolution(200,200);
$img->readImage($pdf_file);
$img->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$img->setImageFormat('jpg');
$img->setImageCompressionQuality(85);

$pages = $img->getNumberImages();
if ( $pages ) {
        foreach($img as $i => $img_file){
            $img_file->writeImage('./programming/('.$i.') '.$date.'.jpg');
            $img_path = './programming/('.$i.') '.$date.'.jpg';
            header('Content-Type: application/download');
            header('Content-Disposition: attachment; filename="('.$i.') '.$date.'.jpg"');
            header("Content-Length: " . filesize($img_path));

            $fp = fopen($img_path, "rb");
            fpassthru($fp);
            fclose($fp);
        }
} else {
        echo '<h2>Not Found.</h2>';
}

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

如果有人可以指导我,我可能已经错过了一些东西!

提前感谢您的关注!

注意:代表.pdf页1和2的图像已经保存在./programming/文件夹中,在这种情况下,代码运行良好,然后foreach达到了我的预期,创建了两个图像并将其存储,但是仅使用fopen下载一个

0 个答案:

没有答案