2012-07-07 49 views
0

我必須使用外部rest API,它允許瀏覽文檔庫 - 列出文檔,獲取單個文檔的元數據並完全下載文檔或給出範圍。 目前我們顯示所有文檔的標準圖標(服務器上的PDF文件)。 我們想改進和顯示縮略圖。 在沒有讀取整個文件的情況下,是否可以從PDF中提取封面的縮略圖?類似於EXIF的東西可能?客戶端在iOS上運行。如何在不下載PDF文件的情況下生成縮略圖?

+1

我假設你不控制服務器?在那裏生成圖標可能是最好的。 – 2012-07-07 18:16:07

+0

是的,我們沒有控制服務器。所以我們不能在後端預先生成縮略圖,相反,我們基本上需要以某種方式使用HTTP範圍從這些30-40 Mb文檔中儘可能少地生成縮略圖。 – 2012-07-08 05:58:16

+0

那麼,您絕對可以使用Apple的Core Graphics PDF渲染,但我不知道在部分PDF上使用該方法,或者知道要下載多少PDF。您始終可以設置一個單獨的服務器來生成並提供縮略圖。 – 2012-07-08 12:01:58

回答

1

不知道我是否完全瞭解您的環境和您的限制。但是,如果您可以檢索遠程文檔的「給定範圍」,那麼只需檢索第1頁就很容易。(您只能檢索部分PDF文檔,如果它們是「網絡優化」aka 「線性化」)。

但是,現在大多數PDF不再包含可以檢索的縮略圖。 Adobe軟件(以及其他PDF查看器)可以即時創建頁面預覽。

所以你必須先檢索第一頁。

然後Ghostscript可以從這個頁面生成一個「縮略圖」。命令的Linux/Unix/MacOSX的:

gs \ 
    -o thumb.jpg \ 
    -sDEVICE=jpeg \ 
    -g80x120 \ 
    -dPDFFitPage \ 
    firstpage.pdf 

命令適用於Windows:

gswin32c.exe^
    -o thumb.jpg^
    -sDEVICE=jpeg^
    -g80x120^
    -dPDFFitPage^
    firstpage.pdf 

在這個例子中...

  • ...縮略圖文件類型將是JPEG。您可以將其更改爲PNG(-sDEVICE=pngalpha=png256=png16m)。
  • ...縮略圖大小將爲80x120像素;無論你需要改變它。
+0

正如我所說的客戶端是iOS應用程序,這是用戶使用iOS應用程序來瀏覽這個遠程文檔庫。在評論中查看我的上述澄清問題。在這一點上,我認爲我們將需要一些庫,看起來PDF文件是非常複雜的嘗試和解析它們與我們自己的代碼:( – 2012-07-08 06:00:08

相關問題