gpt4 book ai didi

php - PDF 尺寸与实际内容尺寸

转载 作者:可可西里 更新时间:2023-11-01 01:08:42 24 4
gpt4 key购买 nike

我目前正在使用 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

此外,这是 imagick 的 identifyImage() 函数的输出,从文件大小来看似乎有点不对。

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
)

最佳答案

您应该知道 PDF 本身是一种无分辨率格式。页面以数学方式描述,除 float 外,不受任何特定分辨率限制的限制。

PDF 只有在呈现给特定设备时才真正具有分辨率(并且可能是也可能不是设备的分辨率)。

“但是图像呢?PDF 中的图像肯定能解决问题!”有点。 PDF 中的图像表示为无单位样本,并且在页面上实例化之前它们本身没有分辨率。我可以拍摄一张 300 dpi 的 8.5"x11"1 位图像并将其嵌入到 PDF 中,但同样的图像可以放入一个页面的内容流中一个充满整个 8.5"x11"空间的空间,从而保持分辨率或者它可以呈现为更小的缩略图(通过比例创建更高的分辨率) - 即使这些“分辨率”在页面实际呈现到设备之前也不适用。此外,不会阻止 PDF 渲染器进行双线性(或其他一些)插值以增加图像的表观分辨率。

举一个更具体的例子,如果我在 96 dpi 显示器上以 100% 渲染 PDF 页面,该页面的分辨率不会超过 96 dpi。如果我在 1800 dpi 的照排机上渲染该 PDF 页面,则该页面的分辨率不会超过 1800 dpi。

如果我在 96 dpi 监视器上以 100% 呈现的 PDF 页面上以 100% 呈现 300 dpi 图像,则页面上图像的分辨率为 96 dpi。如果我在 1800 dpi 照排机上以 100% 渲染 PDF 页面以 100% 渲染 300 dpi 图像,则页面上图像的分辨率为 300 dpi。

您从 image magick 看到的输出可能反射(reflect)了 8.5"x 11"PDF 单位的页面是 612 x 792,1 个 PDF 单位相当于 1/72 英寸。预览渲染似乎是在 ~194 dpi 下完成的。

关于php - PDF 尺寸与实际内容尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6065596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com