使用HTML在浏览器中显示pdf的最佳方法是什么?
这里的主要目标是将pdf显示为正常图像。网站的用户上传pdf文件,该文件使用PyPDF在他的不同页面中分离,然后每个页面都应显示在网页上。所以每个页面都是不同的图像。
这是理想的:
<img src="test_page1.pdf">
<img src="test_page2.pdf">
我一直试图通过使用ImageMagick(Python)将我的pdf转换为图像,但这会导致一些困难:
有没有更好的方法来完成这个?如果存在,我宁愿使用非服务器依赖方法!
答案 0 :(得分:1)
不是客户端,但是......
exec("convert sample.pdf sample.jpeg")
使用ImageMagick
,http://www.imagemagick.org/script/index.php / http://www.imagemagick.org/script/api.php#python
我认为你真的很难做到这个客户端。服务器端可能更强大,可以更快地创建更高质量的图像并进行更多自定义。
答案 1 :(得分:1)
尝试一下http://view.samurajdata.se/。您可以使用此工具在HTML中将PDF显示为图像。它的开源和易于使用。
请注意,此方法使用PHP。
答案 2 :(得分:1)
转换是可以的,但我使用evince-thumbnailer得到了最好的结果。对于同等质量(YMMV),此速度提高约8倍。
另一方面,虽然evince-thumbnailer没有ghostscript依赖,但 引入了其他几个与gnome相关的依赖项,如glib和gtk。
您还可以使用pdftops等poppler工具之一。这些比转换快得多,并且几乎没有依赖性,但质量不会相同。
这里有一些后代的命令行.. 我已经进行了全页300dpi测试并添加了结果。 注意我使用非常大的输出文件来放大缩略图鼠标。您也可以使用较小的jpg来获得更快的结果。
# This produces perfect png at 2480 pixels width.
# Takes averagely long (45sec).
# 2480 is A4 pixel width at 300dpi
evince-thumbnailer -s 2480 -l input.pdf /tmp/output.png
convert /tmp/output.png -quality 85% output.jpg
# This renders perfect jpg at 2400 pixels width.
# Takes extremely long. (6m)
# Quality is comparable
convert -density 300x300 input.pdf -resize 2400x -units PixelsPerInch \
-quality 85% output.jpg
# This uses poppler to convert to ps and then converts to jpg.
# Takes averagely long (45sec)
# Does not compete quality-wise.
pdftops -l 1 -r 2400 -paper A4 input.pdf /tmp/output.ps
convert /tmp/output.ps output.jpg