zoukankan      html  css  js  c++  java
  • 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);
            }
  • 相关阅读:
    poj3277 City Horizon
    60.左值右值以及类型判断
    59.C++与正则表达式
    57.C++处理转义字符
    56.lambda表达式与绑定以及伪函数和绑定
    55.函数模板指针匹配(模板自动匹配*多的)
    54.函数模板默认参数
    53.伪函数与函数绑定器
    52.模板的重载
    51.模板与引用
  • 原文地址:https://www.cnblogs.com/njcxwz/p/15637280.html
Copyright © 2011-2022 走看看