imagick - 设置输出pdf的纸张大小
Posted
技术标签:
【中文标题】imagick - 设置输出pdf的纸张大小【英文标题】:Imagick - set paper size of output pdf 【发布时间】:2022-01-16 20:56:49 【问题描述】:我有一个 php 辅助函数,它接受 base64 png 并输出一个 pdf 文件:
public static function base64PngToPdf($b64, $filePath)
$imagick = new Imagick();
$imagick->readImageBlob(base64_decode($b64));
// Create PDF File
$pdfFile = new Imagick();
$pdfFile->setFormat('pdf');
// Add image to pdf
$pdfFile->addImage($imagick->getImage());
file_put_contents($filePath, $pdfFile->getImagesBlob());
return $filePath;
我的问题是,我拥有的 png 是 800w x 1200h 像素。上面的代码输出一个 211 x 317mm 的标签。我想要一个缩小到 101 毫米宽或 152 毫米高的标签(最好不缩放像素本身,只改变物理尺寸)。
我做了一些谷歌搜索,发现 imagick 有一个密度参数,但我不能 100% 确定在这种情况下是否是我想要的,而且我的库没有 ->setDensity
函数。
【问题讨论】:
【参考方案1】:我找到了一种相关的解决方案。我可以使用$pdfFile->setResolution($resolution[0], $resolution[1]);
,在setResolution
中我可以设置例如72的ppi。
【讨论】:
以上是关于imagick - 设置输出pdf的纸张大小的主要内容,如果未能解决你的问题,请参考以下文章
windows7下Wamp安装php扩展imagick(转)