2013-03-18 81 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