zoukankan      html  css  js  c++  java
  • 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.             
  • 相关阅读:
    Linux 下安装JDK1.8
    Linux 常规操作
    C3P0连接池拒绝连接
    Oracle查看并修改最大连接数
    Oracle 建立 DBLINK
    Oracle 数据 update后怎么恢复到以前的数据
    Oracle 11g中解锁被锁定的用户
    身份证15位转18位
    Druid数据库连接池
    CentOS 下安装 LEMP 服务(Nginx、MariaDB/MySQL 和PHP)
  • 原文地址:https://www.cnblogs.com/rr163/p/4015688.html
Copyright © 2011-2022 走看看