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);
            }
  • 相关阅读:
    关于git---远程
    关于git---主要
    css特效
    Canvas图片压缩
    TypeScript简单介绍
    html 常见兼容性问题及解决方法
    cookies,sessionStorage 和 localStorage 的区别
    vue-element-admin vue.config.js
    ② nodejs + mongodb 搭建服务器
    ① 数据自动填充
  • 原文地址:https://www.cnblogs.com/njcxwz/p/15637280.html
Copyright © 2011-2022 走看看