2013-05-31 101 views
2

我正在尋找一種方法將高分辨率PDF文件轉換爲來自ASP.NET應用程序(C#)的低分辨率PDF文件。 用戶將導入高分辨率PDF文件,該解決方案可以提供高分辨率PDF和低分辨率PDF文件。 我正在尋找一個API來做到這一點。我發現了很多PDF apis,但他們似乎都沒有做我想找的。將高分辨率PDF轉換爲低分辨率PDF文件C#

+0

什麼文件是HR_PDF和LR_PDF?在Google上快速搜索沒有發現任何內容。 – iPDFdev

+0

出於好奇,什麼是HR_PDF,什麼是LR_PDF? – mkl

+0

高分辨率,低分辨率 – Darren

回答

0

ABCpdf .NET將爲您做到這一點。調整大小,重新採樣或重新壓縮PDF文檔中的圖像有多種功能。但是,考慮到您的要求,您可能只想使用文檔縮小大小操作。

要做到這一點,你只需要以下形式的代碼:

Doc doc = new Doc(); 
doc.Read(Server.MapPath("../mypics/sample.pdf")); 
using (ReduceSizeOperation op = new ReduceSizeOperation(doc)) { 
op.UnembedSimpleFonts = false; // though of course making these true... 
op.UnembedComplexFonts = false; // ... would further reduce file size. 
op.MonochromeImageDpi = 72; 
op.GrayImageDpi = 72; 
op.ColorImageDpi = 144; 
op.Compact(true); 
} 
doc.Save(Server.MapPath("ReduceSizeOperation.pdf")); 

我的ABCpdf .NET軟件組件的工作,所以我的回答可以配備根據各地ABCpdf概念。這正是我所知道的。 :-)

0

也許你可以調整圖像的高分辨率版本PDF格式,這會給你更小的文件。

您可以使用Docotic.Pdf library調整圖像大小和/或重新壓縮圖像。欲瞭解更多詳情,請看看my answer to a similar question

聲明:我是Docotic.Pdf庫的開發人員之一。

0

這個問題有很多種可能的解決方法,其中之一就是從InDesign中導出兩次(這可以讓您製作兩個所需的PDF版本)。如果這是不可行的(這可能不會像從InDesign出口可能需要一些時間),市場上肯定存在可以執行您想要的操作的庫。這裏給你一些方法:

1)雖然這會讓我大多數Adobe員工射擊,你可以重新提煉你的PDF文件到一個更小的文件。我會不是主張做到這一點,我提到它是完整的。涉及的風險包括質量損失,文物等(主要是因爲PostScript不支持PDF支持的許多功能,並且通過重新說明您將放棄這些功能)。

2)使用爲此任務製作的應用程序或庫。例如callas pdfToolbox(警告,我隸屬於這家公司!)能夠獲取PDF文件並對其執行更正。這些校正包括圖像下采樣,RGB轉換,圖像重新壓縮(例如使用JPEG-2000),在PDF中丟棄不必要的數據等等。鑑於該應用程序有一個命令行界面,它可以很容易地集成到一個C#過程。其他具有類似功能的應用程序將來自諸如Enfocus,Apago等公司。

3)使用低級PDF庫(例如可以通過DataLogics從Adobe授權的Adobe PDF庫)自行實施必要的更改。更多的工作,但可能更靈活。

無論您選擇什麼方式,都知道您是從高質量的PDF文件開始的,並且您的過程應該儘可能保留儘可能多的質量(取決於您爲低分辨率PDF文件課程)。確保你不會因爲丟失適當的套印,透明度等而陷入困境......

+0

不幸的是,我沒有能力從Indesign或類似的程序創建低分辨率文件,我必須從代​​碼中完成。不幸的是,我需要某種開源解決方案。 –

+0

然後,所有留給你的是選項3),並嘗試找到一個可以使用的庫,它不會破壞PDF文件。我對這些不太熟悉,所以我必須通過。我可以建議你爲你的問題添加一個開源/免費解決方案的要求嗎?這可能有助於朝着正確的方向進一步解決問題。 –