2016-06-29 48 views
0

現在,我正在創建一個程序,它使用C#WinForm生成pdf縮略圖。 所以我選擇使用GhostScript來獲取PDF縮略圖。 但是,GhostScript有時會創建空白圖像(某些pdf文件)。 (只將部分PDF文件轉換爲空白圖像文件,其他文件正確轉換爲圖像文件。) 此空白圖像文件與pdf的圖像大小相同,但只是白色圖像。GhostScript'PDF to Image'使空白圖像文件

我發現這些PDF文件在短時間內顯示空白頁面時,我通過PDF閱讀器打開這些文件。 所以我期望這些pdf文件有一些特殊的選項(如保護??),GhostScript也需要一些特殊的選項來正確地轉換它。

我使用GhostScript.NET(https://ghostscriptnet.codeplex.com),我的代碼如下。

GhostscriptVersionInfo _lastInstalledVersion = null; 
private GhostscriptRasterizer _rasterizer = null; 
int dpi = 100; 
string inputPdfPath = @"F:\pdf\155.pdf"; 
_lastInstalledVersion = GhostscriptVersionInfo.GetLastInstalledVersion(GhostscriptLicense.GPL | GhostscriptLicense.AFPL, GhostscriptLicense.GPL); 
_rasterizer = new GhostscriptRasterizer(); 
_rasterizer.Open(inputPdfPath, _lastInstalledVersion, false); 
Image img = _rasterizer.GetPage(dpi, dpi, 1); 
_rasterizer.Close(); 

請幫我解決這個問題...

此外,我試圖用WINAPI CodePack,Magik.NET。但是,Winapi會創建PDF圖標,Magik.NET會產生錯誤(兩者都比GhostScript差)。

+0

adobe acrobat對您的pdf文件顯示空白有什麼影響?你不能指望我們猜測你的pdf是否受到保護? –

+0

或者以另一種方式提出問題:您如何確定pdfs不是簡單的空白? –

+0

嘗試直接從命令行使用Ghostscript,並查看stdout backchannel,很可能您的PDF文件以某種方式被損壞。發佈一個典型示例會很有幫助,其他消費者也不喜歡這些文件的事實表明PDF文件本身就是一個問題。您也應該能夠從Ghostscript.NET獲得反向通道,但我無法幫助您,因爲它不屬於Ghostscript。 – KenS

回答

0

謝謝KenS! 這可能是由GhostScript.NET引起的。 我試圖使用原始的GhostScript,它效果很好。

0

如果您使用PDF閱讀器最近打開/查看的PDF文件空白圖像,則最可能問題在於這些文件只是被PDF閱讀器應用程序阻止。而Ghostscript在嘗試讀取/訪問這些PDF文件並生成空白圖像時正在悄然失敗。

我建議避免使用PDF Reader軟件打開/閱讀這些PDF文件,以確保它們僅由Ghostrscript專用。