基本信息
源码名称:O2S.Components.PDFRender4NET把pdf文件转成图片
源码大小:0.41M
文件格式:.rar
开发语言:ASP
更新时间:2021-05-11
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

使用O2S.Components.PDFRender4NET把pdf文件转成图片

/// <summary>
        /// 将PDF文档转换为图片的方法
        /// </summary>
        /// <param name="pdfInputPath">PDF文件路径</param>
        /// <param name="imageOutputPath">图片输出路径</param>
        /// <param name="imageName">生成图片的名字</param>
        /// <param name="startPageNum">从PDF文档的第几页开始转换</param>
        /// <param name="endPageNum">从PDF文档的第几页开始停止转换</param>
        /// <param name="imageFormat">设置所需图片格式</param>
        /// <param name="definition">设置图片的清晰度,数字越大越清晰</param>
        public static void ConvertPDF2Image(string pdfInputPath, string imageOutputPath, string imageName, int startPageNum, int endPageNum, ImageFormat imageFormat, Definition definition)
        {
            PDFFile pdfFile = PDFFile.Open(pdfInputPath);

            if (!Directory.Exists(imageOutputPath))
            {
                Directory.CreateDirectory(imageOutputPath);
            }

            // validate pageNum
            if (startPageNum <= 0)
            {
                startPageNum = 1;
            }

            if (endPageNum > pdfFile.PageCount)
            {
                endPageNum = pdfFile.PageCount;
            }

            if (startPageNum > endPageNum)
            {
                int tempPageNum = startPageNum;
                startPageNum = endPageNum;
                endPageNum = startPageNum;
            }

            for (int i = startPageNum; i <= endPageNum; i )
            {
                Bitmap pageImage = pdfFile.GetPageImage(i - 1, 56 * (int)definition);

                int canKao = pageImage.Width > pageImage.Height ? pageImage.Height : pageImage.Width;
                int newHeight = canKao > 1080 ? pageImage.Height / 2 : pageImage.Height;
                int newWidth = canKao > 1080 ? pageImage.Width / 2 : pageImage.Width;
                Bitmap newPageImage = new Bitmap(newWidth, newHeight);

                Graphics g = Graphics.FromImage(newPageImage);
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                //重新画图的时候Y轴减去130,高度也减去130  这样水印就看不到了

                g.DrawImage(pageImage, new Rectangle(0, -45, newWidth, newHeight 45),
                     new Rectangle(0, 40, pageImage.Width, pageImage.Height - 40), GraphicsUnit.Pixel);
                newPageImage.Save(imageOutputPath imageName i.ToString() "." imageFormat.ToString(), imageFormat);
                g.Dispose();
                newPageImage.Dispose();
                pageImage.Dispose();


            }

            pdfFile.Dispose();
        }