2013-03-18 56 views
0

在您的浏览器中使用HTML显示PDF的最佳方式是什么?在HTML中显示PDF为图像

这里的主要目标是显示PDF,就好像它是一个正常的图像。网站的用户上传PDF文件,这个文件使用PyPDF在他的不同页面中分开,然后每个页面应该显示在网页上。所以每个页面都是不同的图像。

这将是理想的:

<img src="test_page1.pdf"> 
<img src="test_page2.pdf"> 

我一直在试图通过使用ImageMagick(Python)的到我的PDF文件转换成图像,这样做然而,这引起了一些困难:

  • 崩溃有时
  • 图像质量严重下降
  • 尺寸增加

有没有更好的方法来实现这一目标?如果存在的话,我更喜欢非服务器依赖的方法!

回答

1

试试这个http://view.samurajdata.se/。您可以使用此工具以HTML形式将PDF显示为图像。它的开源并且使用简单。

请注意此方法使用PHP。

+1

我也一直在寻找相同的几天。看起来我找到了。现在让我试着将它移植到C#。 – 2013-12-23 20:37:20

1

转换是好的,但我得到了最好的结果evince-thumbnailer。这对同等质量(YMMV)执行快8倍。

不好的一面,虽然evince-thumbnailer没有ghostscript依赖,但它确实引入了其他几个与gnome相关的依赖,比如glib和gtk。

您也可以使用poppler工具之一,如pdftops。这些比转换要快得多,几乎没有依赖关系,但质量不会相同。

这是后人的一些命令行.. 我已经运行了一个全页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