用Nuget抓取類庫,FreeSpire.PDF就可以
代碼如下 , 親測可以抓取PNG圖形,即使原圖是JPG,也會存成PNG格式輸出:
//加載PDF文檔 PdfDocument doc = new PdfDocument(); doc.LoadFromFile(file); List<Image> listImages = new List<Image>(); for (int i = 0; i < doc.Pages.Count; i++) { // 實例化一個Spire.Pdf.PdfPageBase對象 PdfPageBase page = doc.Pages[i]; // 獲取所有pages里面的圖片 Image[] images = page.ExtractImages(); if (images != null && images.Length > 0) { listImages.AddRange(images); } } // 將提取到的圖片保存到本地路徑 if (listImages.Count > 0) { for (int i = 0; i < listImages.Count; i++) { Image image = listImages[i]; image.Save("image" + (i + 1).ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png); } }
順便貼下讀取文本的代碼:
//實例化一個PdfDocument對象 PdfDocument doc = new PdfDocument(); //加載PDF文檔 doc.LoadFromFile(file); //實例化一個StringBuilder 對象 StringBuilder content = new StringBuilder(); //提取PDF所有頁面的文本 foreach (PdfPageBase page in doc.Pages) { content.Append(page.ExtractText()); } //將提取到的文本寫為.txt格式並保存到本地路徑 String fileName = "獲取文本.txt"; File.WriteAllText(fileName, content.ToString());