为啥 Imagick 类不能将 pdf 文件转换为图像文件?
Posted
技术标签:
【中文标题】为啥 Imagick 类不能将 pdf 文件转换为图像文件?【英文标题】:Why isn't it possible for Imagick class to convert pdf files to image files?为什么 Imagick 类不能将 pdf 文件转换为图像文件? 【发布时间】:2022-01-13 08:54:07 【问题描述】:我想用 php 将 pdf 文件转换为图像。
我遇到了一些这样的异常:
致命错误:未捕获的 ImagickException:UnableToOpenBlob './sample.pdf':D:\Task\Clients\James\toImage\toImage.php:4 中没有这样的文件或目录@error/blob.c/OpenBlob/3533堆栈跟踪:#0 D:\Task\Clients\James\toImage\toImage.php(4): Imagick->readImage('./sample.pdf') #1 main throw in D:\Task\Clients\ James\toImage\toImage.php 第 4 行
我写了一些代码如下。
<?php
$pdf_url = ('./sample.pdf');
$imagick = new Imagick();
$imagick->readImage($pdf_url);
$imagick->resizeImage( 200, 200, imagick::FILTER_LANCZOS, 0);
$imagick->setImageFormat( "png" );
$imagick->writeImage('pdfAsImage.png');
请帮帮我!
【问题讨论】:
“没有这样的文件或目录”听起来文件不存在 为什么是./sample.pdf
? sample.pdf
怎么了?
你能显示 $pdf_url 的值吗?
【参考方案1】:
这是我以前使用过的代码。 使用图片的完整路径,例如:
$image = new Imagick($_SERVER['DOCUMENT_ROOT'] . '/pdfs/sample.pdf');
它应该像魅力一样工作!!!
【讨论】:
非常感谢!你救了我的命!!!以上是关于为啥 Imagick 类不能将 pdf 文件转换为图像文件?的主要内容,如果未能解决你的问题,请参考以下文章
Imagick 无法将 PDF 转换为 JPEG,但 ImageMagick 可以
PHP Imagick 不适用于 Laravel 8 中的 PDF 文件,简单的 ImagickException
PHP Imagick 类 - 将 JPEG 转换为渐进式 JPEG?隔行不工作