#region 将Word文档转化为图片
/// <summary>
/// 将Word文档转化为图片
/// </summary>
/// <param name="wordpath">需要转换的word文档的全路径</param>
public void Word_Convert2Image(string wordpath)
{
//第一步:将Word文档转化为Pdf文档(中间过程)
Aspose.Words.Document doc = new Aspose.Words.Document(wordpath);
//生成的pdf的路径
string Pdfpath = Server.MapPath("images") + "Word2Pdf.pdf";
doc.Save(Pdfpath, Aspose.Words.SaveFormat.Pdf); //生成中间文档pdf //第二部:开始把第一步中转化的pdf文档转化为图片
int i = ;
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(Pdfpath);
while (i <= pdfDocument.Pages.Count)
{
if (!string.IsNullOrEmpty(Pdfpath))
{
GetImage(Pdfpath, i);
GC.Collect(); //回收内存
}
i++;
}
//图片转化完成之后,删除中间过程产生的pdf文档
if (File.Exists(Pdfpath))
File.Delete(Pdfpath);
}
#endregion
#region 将pdf转化为图片
/// <summary>
/// 将PDF 相应的页转换为图片
/// </summary>
/// <param name="strPDFpath">PDF 路径</param>
/// <param name="Page">需要转换的页页码</param>
private void GetImage(string strPDFpath, int Page)
{
GC.Collect();
string strSavePath = Server.MapPath("images");
byte[] ImgData = GetImgData(strPDFpath, Page);
MemoryStream ms = new MemoryStream(ImgData, , ImgData.Length);
Bitmap returnImage = (Bitmap)Bitmap.FromStream(ms);
string picName=string.Format("{0}_{1}.jpg", CreatePicName(),Page);
string strImgPath = Path.Combine(strSavePath, picName); //图片名称可在此修改
returnImage.Save(strImgPath);
returnImage.Dispose();
ms.Dispose();
AddImage(Page, picName); //将图片添加到数据库
}
/// <summary>
/// 从PDF中获取首页的图片
/// </summary>
/// <param name="PDFPath">PDF 文件路径</param>
/// <param name="Page">需要获取的第几页</param>
/// <returns></returns>
private byte[] GetImgData(string PDFPath, int Page)
{
System.Drawing.Image img = PDFView.ConvertPDF.PDFConvert.GetPageFromPDF(PDFPath, Page, , "", true);
return GetDataByImg(img);//读取img的数据并返回
}
/// <summary>
/// 将单页的PDF转换为图片
/// </summary>
/// <param name="_image"></param>
/// <returns></returns>
private byte[] GetDataByImg(System.Drawing.Image _image)
{
System.IO.MemoryStream Ms = new MemoryStream();
_image.Save(Ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] imgdata = new byte[Ms.Length];
Ms.Position = ;
Ms.Read(imgdata, , Convert.ToInt32(Ms.Length));
Ms.Close();
return imgdata;
}
#endregion

最新文章

  1. 《Pro ASP.NET MVC 4》异常整理
  2. Sudoku 数独游戏
  3. 纪念逝去的岁月——C/C++冒泡排序
  4. paip.Java Annotation注解的作用and 使用
  5. curl获得http响应码 302 和绑定host
  6. 几个常见的Laravel报错及解决方法
  7. php获取post中的json数据的实现方法
  8. 读书笔记-你不知道的JS中-promise(2)
  9. 【linux学习笔记】在ubuntu下使用QT Cmake支持C++11
  10. Spring Batch(三) Job Launcher、ItemReader、ItemProcessor、ItemWriter各个实现类和用途
  11. Docker系列教程05 容器常用命令
  12. 转:spring配置文件中xsd引用问题
  13. Lodop窗口的按钮、权限,隐藏或设置功能不可用
  14. test20190331
  15. 各种奇妙的hack
  16. Codeforces.838E.Convex Countour(区间DP)
  17. R读取excel文件
  18. Windows运行常用命令(win+R)
  19. python学习笔记(六)— 模块
  20. CentOS下Docker与.netcore(五)之 三剑客之一Docker-swarm集群

热门文章

  1. 苹果手机不兼容autoplay属性
  2. ubuntu下配置环境
  3. HPU组队赛J:Ball King(线段树)
  4. HURST 1116:选美大赛(LIS+路径输出)
  5. hdu 1280 堆排序
  6. windows server/windows同一系统下建立两个目录之间的映射关系
  7. LeetCode - Subtree of Another Tree
  8. golang sublime text3 自动补全
  9. Centos7使用PXE+Kickstart无人值守安装服务
  10. centos7升级自带的php5.4版本到php5.6