word在线编辑\生成图片(包含截图与合并)

1.业务原因

word编辑后的文章复制到html编辑器(fck等)会发生排版错乱的情况,于是混沌了。需要有一个新的方法来终结,于是产生了word能不能在线编辑,后台保存,前台显示灯一系列问题。

2.首先word在线编辑,采用weboffice或dsoframer进行,优势可以在线编辑,但只限在ie游览器下进行。纠结...

3.编辑完后进行后台保存,weboffice或dsoframer有相应接口。

4.保存到后台后,进行页面图片转化,采用Aspose.Words。

5.由于Aspose.Words 产生的图片会有一点的页边距,所以需要进行截图保存。

6.截图后把多图进行合图保存。

付key code:

Document doc = new Document(Server.MapPath("../../Uploads/" + guid + ".doc"));ImageSaveOptions options = new ImageSaveOptions(SaveFormat.Png);

  1.   for(int i=0;i<doc.PageCount;i++){  
  2.                 options.PageIndex = i;  
  3.                   
  4.                 doc.MailMerge.DeleteFields();  
  5.                   
  6.                 doc.Save(Server.MapPath("../../Uploads/" + guid + "-" + i.ToString() + "-copy.png"), options); //保存转换图片  
  7.                 Bitmap bm = new Bitmap(Server.MapPath("../../Uploads/" + guid + "-" + i.ToString() + "-copy.png"));  
  8.                  
  9.                 Rectangle cloneRect = new Rectangle(0, 100, 794, 920);//截图,去掉居上100PX  
  10.                 PixelFormat format = bm.PixelFormat;  
  11.                 Bitmap cloneBitmap = bm.Clone(cloneRect, format);  
  12.                 
  13.                 cloneBitmap.Save(Server.MapPath("../../Uploads/" + guid + "-" + i.ToString() + ".png"), ImageFormat.Png); //保存截图  
  14.                 cloneBitmap.Dispose();  
  15.                  
  16.   }  
  1. Bitmap bmp = new Bitmap(794, 920*doc.PageCount);   //创建一张空白图片(合图)  
  2.             Graphics g = Graphics.FromImage(bmp);  
  3.   
  4.   
  5.             for (int i = 0; i < doc.PageCount; i++)  
  6.             {  
  7.                 Bitmap mp = new Bitmap(Server.MapPath("../../Uploads/" + guid + "-" + i.ToString() + ".png"));  
  8.   
  9.   
  10.                 g.DrawImage(mp, new Point(0, i * 920));    
  11.   
  12.   
  13.             }  
  14.             g.Save();  
  15.             bmp.Save(Server.MapPath("../../Uploads/" + guid + ".png"));  
  16.             g.Dispose();  
  17.             bmp.Dispose();  
  18.             

你可能感兴趣的:(word)