pdf页面转成图片

使用了开源组件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);
        }
原文地址:https://www.cnblogs.com/njcxwz/p/15637280.html