• 将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
  • 相关阅读:
    Go语言web开发---Beego的cookie
    Go语言web开发---Beego路由
    Go语言web开发---Beego基础
    Go语言协程并发---原子操作
    Go语言协程并发---条件变量案例《城管来啦》
    Go语言协程并发---条件变量
    Go语言协程并发---读写锁sync.RWMutex
    Go语言协程并发---互斥锁sync.Mutex
    [Python] 协程学习过程
    [爬坑] termux ssh 设置总是 permission denied
  • 原文地址:https://www.cnblogs.com/renzhituteng/p/6365875.html
Copyright © 2020-2023  润新知