這里一共進行兩種方法
首先下載dll,從NuGet包中直接引用,Spire.Pdf(兩個版本,免費版只能轉化前10 3頁,書印版第一頁有水印,但無轉化頁數限制)
1.將本地pdf轉化為png格式
/// <summary> /// 將PDF文檔轉換為圖片的方法 /// </summary> /// <param name="pdfInputPath">PDF文件路徑</param> /// <param name="imageOutputPath">圖片輸出路徑</param> /// <param name="imageName"></param> private static void ConvertPDF2Image(string pdfInputPath, string imageOutputPath,string imageName) { PdfDocument doc = new PdfDocument(); doc.LoadFromFile(pdfInputPath); //遍歷PDF每一頁 for (int i = 0; i < doc.Pages.Count; i++) { //將PDF頁轉換成Bitmap圖形 Image bmp = doc.SaveAsImage(i); //將Bitmap圖形保存為Png格式的圖片(用i進行區分) bmp.Save(imageOutputPath + imageName+ i + ".png"); } }
二將從前端接收到的文件直接轉化為PDF進行保存
/// <summary> /// 將PDF文檔轉換為圖片的方法 /// </summary> /// <param name="HttpFileCollection fileCollection">接收到的文件</param> /// <param name="Path">想要保存的位置</param> /// <param name="imageName"></param> private static void ConvertPDF2Image(HttpFileCollection fileCollection, string Path) { for (int i = 0; i < fileCollection.Count; i++) { var file = fileCollection[i]; Stream fileStream = file.InputStream; PdfDocument pdf = new PdfDocument(); // 從流中加載 pdf.LoadFromStream(fileStream); //遍歷PDF每一頁 for (int i = 0; i < pdf.Pages.Count; i++) { //將PDF頁轉換成Bitmap圖形 Image bmp = pdf.SaveAsImage(i); //將Bitmap圖形保存為Png格式的圖片(用i進行區分) bmp.Save(imageOutputPath + FileName+ i + ".png"); }
//關閉
fileStream.Close(); }