首先引用 O2S.Components.PDFRender4NET
( 雲盤准備好了:鏈接:https://pan.baidu.com/s/16l5ktVGdJeqdW1_ceydm4g 提取碼:xqmh)
然后在代碼中引入
using O2S.Components.PDFRender4NET;
核心代碼
//圖片的清晰度,數字越大越清晰 public enum Definition { One = 1, Two = 2, Three = 3, Four = 4, Five = 5, Six = 6, Seven = 7, Eight = 8, Nine = 9, Ten = 10 } //判斷文件是否存在 private bool FileIsExists(string path) { if (System.IO.File.Exists(path)) return true; else return false; } /// <summary> /// 將PDF文檔轉換為圖片的方法 /// </summary> /// <param name="pdfInputPath">PDF文件路徑</param> /// <param name="imageOutputPath">圖片輸出路徑</param> /// <param name="imageName">生成圖片的名字</param> ///// <param name="startPageNum">從PDF文檔的第幾頁開始轉換</param> ///// <param name="endPageNum">從PDF文檔的第幾頁開始停止轉換</param> ///// <param name="definition">設置圖片的清晰度,數字越大越清晰</param> ///// <param name="imageFormat">設置所需圖片格式</param> private string ConvertPDF2Image(string pdfInputPath, string imageOutputPath,string imageName) { //為了測試方便,把幾個參數固定住 //格式 ImageFormat imageFormat = ImageFormat.Jpeg; //清晰度 Definition definition = Definition.Ten; //起止頁碼 int startPageNum= 1; int endPageNum = 1; //生成圖片名稱 //string imageName = "test"; PDFFile pdfFile = PDFFile.Open(pdfInputPath); if (!Directory.Exists(imageOutputPath)) { Directory.CreateDirectory(imageOutputPath); } if (startPageNum <= 0) { startPageNum = 1; } if (endPageNum > pdfFile.PageCount) { endPageNum = pdfFile.PageCount; } if (startPageNum > endPageNum) { int tempPageNum = startPageNum; startPageNum = endPageNum; endPageNum = startPageNum; } // start to convert each page //多頁循序產生圖片 string imageOutputRet = ""; for (int i = startPageNum; i <= endPageNum; i++) { Bitmap pageImage = pdfFile.GetPageImage(i - 1, 56 * (int)definition); imageOutputRet = imageOutputPath + imageName + i.ToString()+ "." + imageFormat.ToString(); ////防止圖片文件重復【暫不用】 //int sign = 1; //while(this.FileIsExists(imageOutputRet))//存在 //{ // imageOutputRet = imageOutputPath + imageName + i.ToString() +"_"+sign.ToString() + "." + imageFormat.ToString(); // sign++; //} pageImage.Save(imageOutputRet, imageFormat); pageImage.Dispose(); } pdfFile.Dispose(); return imageOutputRet; }