使用了开源组件PdfiumViewer,本人写了很多关于pdf操作的文章,几乎都是以来第三方开源的组件
private void RenderPages(string pdfPath, string outputfiledir, int startNumber, int endNumber, int dpi = 300) { try { using (var document = PdfiumViewer.PdfDocument.Load(pdfPath)) { var pagesNumber = document.PageCount; if (startNumber < pagesNumber && endNumber > pagesNumber) { endNumber = pagesNumber; } if (startNumber > pagesNumber || endNumber > pagesNumber) { throw new IndexOutOfRangeException("页码超出范围!"); } var pagesizes = document.PageSizes; for (int i = startNumber; i <= endNumber; i++) { Size size = new Size(); size.Height = (int)pagesizes[(i - 1)].Height; size.Width = (int)pagesizes[(i - 1)].Width; var filename = Path.GetFileNameWithoutExtension(pdfPath) + "_" + i + ".jpg"; var outputfilepathtemp = Path.Combine(outputfiledir, filename); using (var stream = new FileStream(outputfilepathtemp, FileMode.Create)) using (var image = GetPageImage(i, size, document, dpi)) { image.Save(stream, ImageFormat.Jpeg); } } } } catch (Exception ex) { throw ex; } } private System.Drawing.Image GetPageImage(int pageNumber, Size size, PdfiumViewer.PdfDocument document, int dpi) { return document.Render(pageNumber - 1, size.Width, size.Height, dpi, dpi, PdfRenderFlags.Annotations); }