Ghostscript.Net Pdf 轉 Image


需求:

  項目中需要實現PPT轉Image的功能,之前項目中用的是使用Office COM組件實現的功能,通過.NET與Office COM組件的互操作(Interop)來操作Office文檔

但是在生產環境中經常發生錯誤 "檢索 COM 類工廠中 CLSID 為 {91493441-5A91-11CF-8700-00AA0060263B} 的組件失敗,原因是出現以下錯誤: 8000401a 因為配置標識不正確,系統無法開始服務器進程。請檢查用戶名和密碼。 (異常來自 HRESULT:0x8000401A)。",很是郁悶,在網上找了很多資料也沒能完美的解決,然后就換了一種解決方案將PPT 轉換成PDF 然后在將PDF 轉換成Image。

  最后是使用 Ghostscript.Net 這個開源組件,來重寫這個功能模塊。

  第一步:

    下載 Ghostscript AGPL Release  32bit安裝到本地 

      

  第二步:

    有兩種使用方案:

      1、使用本地安裝的【服務器上需要安裝上述程序】

      2、找到dll拷貝到項目中,在項目中應用【不許安裝,只需拷貝dll到bin下】

                  

示例代碼C#:

 1       static void Main(string[] args)
 2         {
 3             int desired_x_dpi = 96;
 4             int desired_y_dpi = 96;
 5             string inputPdfPath = "";
 6             string outputPath = "";
 7 
 8             //本地安裝版本代碼
 9             //var _lastInstalledVersion =
10             //      GhostscriptVersionInfo.GetLastInstalledVersion(
11             //              GhostscriptLicense.GPL | GhostscriptLicense.AFPL,
12             //              GhostscriptLicense.GPL);
13 
14             //拷貝到項目版本
15             var _lastInstalledVersion = new GhostscriptVersionInfo($"{System.Environment.CurrentDirectory}\\gsdll32.dll");
16 
17             var _rasterizer = new GhostscriptRasterizer();
18 
19             _rasterizer.Open(inputPdfPath, _lastInstalledVersion, false);
20 
21             for (int pageNumber = 1; pageNumber <= _rasterizer.PageCount; pageNumber++)
22             {
23                 string pageFilePath = Path.Combine(outputPath, "Page-" + pageNumber.ToString() + ".Jpeg");
24                 Image img = _rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber);
25                 img.Save(pageFilePath, ImageFormat.Jpeg);
26 
27                 Console.WriteLine(pageFilePath);
28             }
29         }

 

參考資料:

  https://ghostscriptnet.codeplex.com/SourceControl/latest#Ghostscript.NET/Ghostscript.NET.Samples/Samples


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM