zoukankan      html  css  js  c++  java
  • 将pdf转换为图片,并将图片进行切分

            /// <summary>
            /// 将pdf转换为图片,并且将图片进行切分
            /// </summary>
            /// <param name="pdfInputPath"></param>
            /// <param name="imageFormat"></param>
            void ConvertPDF2Image(string pdfInputPath, ImageFormat imageFormat)
            {
                PDFFile pdfFile = PDFFile.Open(pdfInputPath);
                // start to convert each page
                for (int i = 0; i < pdfFile.PageCount; i++)
                {
                    Bitmap pageImage = pdfFile.GetPageImage(i, 100);
    
                    int width = pageImage.Width / 2;
                    int height = pageImage.Height;
    
                    Bitmap temp = GetPart(pageImage, 0, 0, width, height, 0, 0);
                    temp.Save("images\" + i.ToString() + "-1." + imageFormat.ToString(), imageFormat);
    
                    int w = width / 2;
                    int h = height;
                    Bitmap temp1 = GetPart(temp, 0, 0, w+3, h, 0, 0);
                    temp1.Save("images\" + i.ToString() + "-1-1." + imageFormat.ToString(), imageFormat);
    
                    temp = GetPart(temp, 0, 0, w - 3, h, w, 0);
                    temp.Save("images\" + i.ToString() + "-1-2." + imageFormat.ToString(), imageFormat);
    
                    temp = GetPart(pageImage, 0, 0, width, height, width, 0);
                    temp.Save("images\" + i.ToString() + "-2." + imageFormat.ToString(), imageFormat);
    
                    Bitmap temp2 = GetPart(temp, 0, 0, w + 3, h, 0, 0);
                    temp2.Save("images\" + i.ToString() + "-2-1." + imageFormat.ToString(), imageFormat);
    
                    temp = GetPart(temp, 0, 0, w - 3, h, w, 0);
                    temp.Save("images\" + i.ToString() + "-2-2." + imageFormat.ToString(), imageFormat);
    
                    pageImage.Dispose();
                }
                pdfFile.Dispose();
            }
    
            /// </summary>
            /// <param name="pPartStartPointX">目标图片开始绘制处的坐标X值(通常为0)</param>
            /// <param name="pPartStartPointY">目标图片开始绘制处的坐标Y值(通常为0)</param>
            /// <param name="pPartWidth">目标图片的宽度</param>
            /// <param name="pPartHeight">目标图片的高度</param>
            /// <param name="pOrigStartPointX">原始图片开始截取处的坐标X值</param>
            /// <param name="pOrigStartPointY">原始图片开始截取处的坐标Y值</param>
            Bitmap GetPart(Image originalImg, int pPartStartPointX, int pPartStartPointY, int pPartWidth, int pPartHeight, int pOrigStartPointX, int pOrigStartPointY)
            {
                System.Drawing.Bitmap partImg = new System.Drawing.Bitmap(pPartWidth, pPartHeight);
                System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(partImg);
                System.Drawing.Rectangle destRect = new System.Drawing.Rectangle(new System.Drawing.Point(pPartStartPointX, pPartStartPointY), new System.Drawing.Size(pPartWidth, pPartHeight));
                System.Drawing.Rectangle origRect = new System.Drawing.Rectangle(new System.Drawing.Point(pOrigStartPointX, pOrigStartPointY), new System.Drawing.Size(pPartWidth, pPartHeight));
                graphics.DrawImage(originalImg, destRect, origRect, System.Drawing.GraphicsUnit.Pixel);
                return partImg;
            }
            //调用
    ConvertPDF2Image("abcd.pdf", ImageFormat.Png);


  • 相关阅读:
    Java——HTTPServletRequest的使用
    JavaWeb——HttpServletResponse的使用,文件下载
    JavaWeb——Servlet简介
    JavaWeb——TomCat服务器
    HTTP与HTTPS
    Java——DBCP连接池
    Java——JDBC连接MySQL
    Java——线程锁,死锁,等待唤醒机制
    LeetCode118. 杨辉三角
    LeetCode66. 加一
  • 原文地址:https://www.cnblogs.com/hsliuyl/p/10820444.html
Copyright © 2011-2022 走看看