我目前正在使用 php 的 imagick 将一些 PDF 转换为图像 - 这对于图像在输出过程中被“切碎”的小细节非常有效。
这是由于 PDF 中包含的信息与实际内容尺寸存在差异。
PDF 报告为 612x792 72ppi 文档,但是当我通过 Mac 上的预览从中导出图像时,图像为 1651x1275 - 这怎么可能?
显然,导出是正确的,因为在这些维度上可以正确查看图像 - 难道是 PDF 在宽度和高度混合的地方被错误地编码?如何通过代码检测到这一点?此外,图像导出的大小不同(大得多),大约是大小的两倍,这让我相信 imagick 没有正确读取某些信息。
基本上我想知道是否有适当的方法来确定实际的 PDF 内容大小,以便从中导出的图像质量尽可能好。
谢谢!
编辑:(添加代码)
<?php
$im = new Imagick();
$im->readImage("SomeTest.pdf");
$im->setImageColorspace(255);
$im->setCompression(Imagick::COMPRESSION_JPEG);
$im->setCompressionQuality(60);
$im->setImageFormat('jpeg');
$im->writeImages("SampleImage.jpg");
?>
使用的pdf如下: http ://www.pantone.com/pages/MYP_mypantone/software_downloader.aspx?f=3
此外,这是 identifyImage() 函数的 imagick 输出,从文件大小来看似乎有点错误。
Array
(
[imageName] => /tmp/magick-XXehkI8e
[format] => PDF (Portable Document Format)
[geometry] => Array
(
[width] => 612
[height] => 792
)
[type] => TrueColor
[colorSpace] => RGB
[resolution] => Array
(
[x] => 72
[y] => 72
)
[units] => Undefined
[fileSize] => 50mb
[compression] => Undefined
[signature] => 9426f3fc4f45afd71941435a37d585d01e01d32458f3ca241e72892c2f7f35d5
)