zoukankan      html  css  js  c++  java
  • 将Word,PDF文档转化为图片

     1 #region 将Word文档转化为图片
     2     /// <summary>
     3     /// 将Word文档转化为图片
     4     /// </summary>
     5     /// <param name="wordpath">需要转换的word文档的全路径</param>
     6     public void Word_Convert2Image(string wordpath)
     7     {
     8         //第一步:将Word文档转化为Pdf文档(中间过程)
     9         Aspose.Words.Document doc = new Aspose.Words.Document(wordpath);
    10         //生成的pdf的路径
    11         string Pdfpath = Server.MapPath("images") + "Word2Pdf.pdf";
    12         doc.Save(Pdfpath, Aspose.Words.SaveFormat.Pdf);  //生成中间文档pdf
    13 
    14         //第二部:开始把第一步中转化的pdf文档转化为图片
    15         int i = 1;
    16         Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(Pdfpath);
    17         while (i <= pdfDocument.Pages.Count)
    18         {
    19             if (!string.IsNullOrEmpty(Pdfpath))
    20             {
    21                 GetImage(Pdfpath, i);
    22                 GC.Collect();  //回收内存
    23             }
    24             i++;
    25         }
    26         //图片转化完成之后,删除中间过程产生的pdf文档
    27         if (File.Exists(Pdfpath))
    28             File.Delete(Pdfpath);
    29     }
    30     #endregion
    31     #region 将pdf转化为图片
    32     /// <summary>
    33     /// 将PDF 相应的页转换为图片
    34     /// </summary>
    35     /// <param name="strPDFpath">PDF 路径</param>
    36     /// <param name="Page">需要转换的页页码</param>
    37     private void GetImage(string strPDFpath, int Page)
    38     {
    39         GC.Collect();
    40         string strSavePath = Server.MapPath("images");
    41         byte[] ImgData = GetImgData(strPDFpath, Page);
    42         MemoryStream ms = new MemoryStream(ImgData, 0, ImgData.Length);
    43         Bitmap returnImage = (Bitmap)Bitmap.FromStream(ms);
    44         string picName=string.Format("{0}_{1}.jpg", CreatePicName(),Page);
    45         string strImgPath = Path.Combine(strSavePath, picName);  //图片名称可在此修改
    46         returnImage.Save(strImgPath);
    47         returnImage.Dispose();
    48         ms.Dispose();
    49         AddImage(Page, picName);  //将图片添加到数据库
    50     }
    51     /// <summary>
    52     /// 从PDF中获取首页的图片
    53     /// </summary>
    54     /// <param name="PDFPath">PDF 文件路径</param>
    55     /// <param name="Page">需要获取的第几页</param>
    56     /// <returns></returns>
    57     private byte[] GetImgData(string PDFPath, int Page)
    58     {
    59         System.Drawing.Image img = PDFView.ConvertPDF.PDFConvert.GetPageFromPDF(PDFPath, Page, 200, "", true);
    60         return GetDataByImg(img);//读取img的数据并返回
    61     }
    62     /// <summary>
    63     /// 将单页的PDF转换为图片
    64     /// </summary>
    65     /// <param name="_image"></param>
    66     /// <returns></returns>
    67     private byte[] GetDataByImg(System.Drawing.Image _image)
    68     {
    69         System.IO.MemoryStream Ms = new MemoryStream();
    70         _image.Save(Ms, System.Drawing.Imaging.ImageFormat.Jpeg);
    71         byte[] imgdata = new byte[Ms.Length];
    72         Ms.Position = 0;
    73         Ms.Read(imgdata, 0, Convert.ToInt32(Ms.Length));
    74         Ms.Close();
    75         return imgdata;
    76     }
    77     #endregion
  • 相关阅读:
    【Matlab】把一年中的某一天(从1月1日起)换算成日期
    【工具】用hexo搭建博客
    【工具】文献分析工具histcite的简单使用
    【工具】用PPT排版打印海报时图片分辨率问题
    【工具】PPT插入高清图片保存后图片变模糊的解决方法
    【工具】排版软件TeX Live 2016的简单使用
    【工具】文字识别软件(OCR) ABBYY Finereader 11简单使用
    【Matlab】编程风格摘录
    【信号】用matlab实现一维信号的高斯滤波
    【GMT5】用GMT绘制测高卫星Topex_Poseidon_Jason的地面轨迹
  • 原文地址:https://www.cnblogs.com/renzhituteng/p/6365875.html
Copyright © 2011-2022 走看看