1. 程式人生 > WINDOWS開發 >C#之獲取PDF張數以及PDF轉JPG

C#之獲取PDF張數以及PDF轉JPG

一:開啟管理NuGet程式包進行安裝Aspose.Pdf.dll

技術分享圖片

二:實踐

(1)獲取PDF頁數

/// <summary>
        /// 獲取PDF檔案頁數
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        public int GetPdfNumber(HttpPostedFile file)
        {
            int pageCount;

            
//上傳臨時檔案 var picName = Guid.NewGuid().ToString(); //獲取圖片儲存路徑 var path = Config.FilePath + "\\" + "tmppic\\"; //圖片的路徑及名稱 var fileinfo = new FileInfo(file.FileName); var ext = fileinfo.Extension; var filePath = path + picName + ext;
//建立路徑 var dir = new DirectoryInfo(path); if (!dir.Exists) { dir.Create(); } file.SaveAs(filePath); var reader = new PdfReader(filePath); pageCount = reader.NumberOfPages; reader.Close(); File.Delete(filePath);
return pageCount; }

(2) PDF轉JPG

                        {
                            //儲存pdf資訊到附件表
                            var device = new Aspose.Pdf.Devices.JpegDevice(80);
                            var path = Config.FilePath + "\\" + item.FilePath;
                            //pdf轉為圖片
                            using (var document = new Aspose.Pdf.Document(path))
                            {
                                for (var t = 1; t <= document.Pages.Count; t++)
                                {
                                    //圖片名稱
                                    var newName = Guid.NewGuid().ToString("N");

                                    //儲存圖片
                                    var lastIndex = item.FilePath.LastIndexOf(\\);
                                    var newPath = item.FilePath.Substring(0,lastIndex + 1);
                                    var filePath = Config.FilePath + "\\" + newPath + newName + ".jpg";
                                    var temp_path = newPath + newName + ".jpg";
                                    var fileInfo = new FileInfo(filePath);
                                    using (var fs = new FileStream(filePath,FileMode.OpenOrCreate))
                                    {
                                        device.Process(document.Pages[t],fs);
                                        fs.Close();
                                    }
                                }
                            }