php - 如何在我的 Linux 服务器上创建 PDF 文件的缩略图/屏幕截图?

标签 php linux pdf screenshot thumbnails

我想用 PDF 文件创建缩略图,以便能够在网站上显示 PDF 文件的简短预览。

我使用 ImageMagick 进行了尝试。不幸的是,结果不是很令人满意。 生成的图像非常模糊。

示例缩略图(模糊):

Bildschirmfoto 2010-09-11 um 22.57.49.png

原始 PDF:(见评论)

命令:convert -thumbnail x800 k.pdf[0] test.png

我的转换命令是否配置错误,或者您知道实现我的目标的更好方法吗?

最佳答案

您的原始 pdf 文件小于您正在创建的缩略图。 Imagemagick 缩放图像以匹配请求的尺寸。使用以下参数:

convert -scale '800x800+0+0>' -colorspace rgb -strip in.pdf[0] out.png

缩放参数中的尾随 > 告诉 Imagemagick 不要将图像缩放到大于原始图像。

编辑:Imagemagick 使用 Ghostscript 渲染 PDF 文件。如果你需要设置一些参数,比如分辨率以获得更好的图像,你可以直接使用 Ghostscript。默认分辨率为 72 DPI,这意味着 A4 纸的尺寸为 595 x 841 像素。使用 150 DPI,您将获得两倍的像素数。例如

gs -q -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dMAxBitmap=500000000 -dAlignToPixles=0 -dGridFitTT=0 -r150x150 -sOutputFile=out.png in.pdf

上述命令几乎与 Imagemagick 使用的命令相同。请注意设置 150 DPI 分辨率的 -r 参数。您可以使用 ImageMagick 将生成的图像缩放到更小的尺寸。

使用更高的分辨率可以减少调整图像大小时的模糊度。

关于php - 如何在我的 Linux 服务器上创建 PDF 文件的缩略图/屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3692654/

相关文章:

php - 升级到 PHP 7 后如何在 CentOS 上安装 mbstring

php - Laravel 按年份和月份生成存档帖子

javascript - 如何在 javascript/php 中调用具有子级的数组列表

linux - 将 Fortran 代码链接到库

jquery 菜单在嵌入代码中落后于 pdf 加载

PHP min() 但不为空

linux - 抑制详细并仅显示 curl 输出命令

linux - 如何防止 gdb 附加到 exe?

c# - 使用 C# 从 PDF 中获取数据

java - 在Android中生成PDF,无需任何第三方库