用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());