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

Php 如何在我的Linux服务器上创建PDF文件的缩略图/屏幕截图?,php,linux,pdf,screenshot,thumbnails,Php,Linux,Pdf,Screenshot,Thumbnails,我想创建PDF文件的缩略图,以便能够在网站上显示PDF文件的简短预览 我用ImageMagick试过了。不幸的是,结果并不令人满意。 生成的图像非常模糊 示例缩略图(模糊): PDF原件:(见评论) 命令:convert-缩略图x800 k.pdf[0]test.png 我的convert命令是否配置错误,或者您知道实现我的目标的更好方法吗?您的原始pdf小于您正在创建的缩略图。Imagemagick缩放图像以匹配请求的尺寸。使用以下参数: convert -scale '800x800+0+

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

我用ImageMagick试过了。不幸的是,结果并不令人满意。 生成的图像非常模糊

示例缩略图(模糊):

PDF原件:(见评论)

命令:
convert-缩略图x800 k.pdf[0]test.png


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

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

convert -scale '800x800+0+0>' -colorspace rgb -strip in.pdf[0] out.png
scale参数中的尾部
告诉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使用的命令几乎相同。请注意-r参数,它设置了150 DPI的分辨率。您可以使用ImageMagick将生成的图像缩放到更小的大小


当你调整图像大小时,使用更高的分辨率将减少模糊性。

你可以使用谷歌文档

https://docs.google.com/viewer?a=bi&pagenumber=1&url=http://.../sample.pdf

原始PDF:谢谢!但仍然存在巨大的差异。图片:我用GS命令更新了答案,以便从你的PDF中获得更好的分辨率图片。请注意,PDF截图和生成的图像大小不同。如果我将第一个图像转换为与第二个图像相同的宽度,则生成的图像同样模糊。您可以通过使用更高分辨率的源图像来减少模糊性(某些)。如果要创建800像素宽的图像,它也会有所帮助,因为72 DPI的A4是595像素。