C# 导出图片到Word (通过XML实现)
private void ExportDataToWord(string content)
{
StringBuilder sbMain = new StringBuilder();
#region 头部分
sbMain.Append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");
sbMain.Append("<?mso-application progid=\"Word.Document\"?>");
sbMain.Append("<w:wordDocument xmlns:aml=\"http://schemas.microsoft.com/aml/2001/core\" xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:dt=\"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.microsoft.com/office/word/2003/wordml\" xmlns:wx=\"http://schemas.microsoft.com/office/word/2003/auxHint\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wsp=\"http://schemas.microsoft.com/office/word/2003/wordml/sp2\" xmlns:sl=\"http://schemas.microsoft.com/schemaLibrary/2003/core\" w:macrosPresent=\"no\" w:embeddedObjPresent=\"no\" w:ocxPresent=\"no\" xml:space=\"preserve\">");
sbMain.Append(" <w:ignoreSubtree w:val=\"http://schemas.microsoft.com/office/word/2003/wordml/sp2\"/>");
sbMain.Append(" <o:DocumentProperties>");
sbMain.Append(" </o:DocumentProperties>");
sbMain.Append(" <w:fonts>");
sbMain.Append(" <w:defaultFonts w:ascii=\"Calibri\" w:fareast=\"宋体\" w:h-ansi=\"Calibri\" w:cs=\"Times New Roman\"/>");
sbMain.Append(" </w:fonts>");
sbMain.Append(" <w:styles></w:styles>");
sbMain.Append(" <w:shapeDefaults>");
sbMain.Append(" <o:shapedefaults v:ext=\"edit\" spidmax=\"1026\"/>");
sbMain.Append(" <o:shapelayout v:ext=\"edit\">");
sbMain.Append(" <o:idmap v:ext=\"edit\" data=\"1\"/>");
sbMain.Append(" </o:shapelayout>");
sbMain.Append(" </w:shapeDefaults>");
sbMain.Append(" <w:docPr></w:docPr>");
sbMain.Append(" <w:body>");
#endregion #region 生成文件流
string width = content.Split('|')[1];
string height =content.Split('|')[2];
string DATA = content.Split('|')[0];
string left=content.Split('|')[3];
string top = content.Split('|')[4];
string path = SAVEPLOT("jpg", DATA, width, height,left,top);
Image img = Image.FromFile(@""+path+"");
MemoryStream ms = new MemoryStream();
img.Save(ms, ImageFormat.Jpeg);
byte[] b = ms.ToArray();
string sss = System.Convert.ToBase64String(b);
ms.Close();
sbMain.Append(@"<w:binData w:name='wordml://03000001.png' xml:space='preserve'>" + sss + "</w:binData>"); #endregion #region 图片初始化
sbMain.Append(@"<w:pict><v:shape id='图片 1'
o:spid='_x0000_i1025'
type='#_x0000_t75'
style='width:" + img.Width + @"px;height:" + img.Height + @"px;
visibility:visible;mso-wrap-style:square'>
<v:imagedata src='wordml://03000001.png' o:title='2012-9-26'/>
</v:shape>
</w:pict>");
#endregion #region 尾部分 sbMain.Append(" </w:body>");
sbMain.Append(" </w:wordDocument>"); #endregion
Response.AddHeader("Content-Disposition", "attachment; filename=VMLChart" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".doc");
Response.Charset = "UTF-8";
Response.Write(Encoding.Default.GetString(Encoding.Default.GetBytes(sbMain.ToString())));
}
C# 导出图片到Word (通过XML实现)的更多相关文章
- freemarker导出图片到word
1.word模版制作: 在word中添加图片,第一步制作模板时,加入一张图片占位,然后打开xml文档,可以看到如下的一片base64编码后的代码: <w:binData w:name=" ...
- C#将DataTable导出Execl、Word、Xml
/// <summary> /// 将DT转换为Execl的方法 /// </summary> /// <param name=" ...
- iText导出pdf、word、图片
一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或 ...
- java通过freemarker导出包含富文本图片的word文档
废话不多说,进入正题! 本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈) 参考文章:http://www.cnblogs.com/liaofeifig ...
- freemarker导出带图片的word文档
最近做一个关于文档导出功能, 顺便学习了下freemarker,做了个关于导出带图片的word文档,模板并没有写全,只是验证代码的正确性 这只是做一个小功能,故只做了后台代码关于导出的代码,并未与前台 ...
- Asp.net通过模板(.dot/Html)导出Word,同时导出图片
一.Office组件导出Word(服务器配置麻烦) 需要引用Office的DLL,在下文的附件中,不同的Offic版本用的不一样,虽然高级版本可以兼容低级的,不过,还是统一版本最好 贴上核心代码(转载 ...
- java导出2007版word(docx格式)freemarker + xml 实现
http://blog.csdn.net/yigehui12/article/details/52840121 Freemarker+xml生成docx 原理概述:word从2003版就支持xml格式 ...
- Freemarker导出带多个不重复图片的word
1.新建一个word,添加一张图片,调整好图片大小与位置.
- PHP:导出数据到word(包含图片)
1.方法 public function word() { $xlsModel = M('api_aliucheng'); $Data = $xlsModel->Field('id,u_name ...
随机推荐
- 由浅入深了解EventBus:(六)
线程模型 在EventBus3.0框架中执行线程的快速切换,通过ThreadMode来指定线程在哪个线程中执行; 在EventBus3.0框架线程模型有个PendingPost 类负责数据的传递; f ...
- Linux安装apue.3e(基于ubuntu16.0.4)
本菜刚刚学习UNIX高级编程,无奈搭建本书编程环境时遇到不少问题,参考了网上各路大神的解决办法,最终解决了问题. (1)下载源代码,可以去官网下载:http://apuebook.com/code3e ...
- ElasticSearch6.0 高级应用之 多字段聚合Aggregation(二)
ElasticSearch6.0 多字段聚合网上完整的资料很少 ,所以作者经过查阅资料,编写了聚合高级使用例子 例子是根据电商搜索实际场景模拟出来的 希望给大家带来帮助! 下面我们开始吧! 1. 创建 ...
- js 验证对象是否为数组
一.方法一:用到了原型 由于typeof检测数组,只会显示其为object,并不会详细到告诉我们是否为array,所以我们可以自己写个js用原型来检测: <script> /** * * ...
- 使用VisualStudio读写NI FPGA板卡实例(基于FPGA Interface C API Generator)
实验平台说明:安装了NI LabVIEW 2015 32bit版本,安装了NI FPGA Interface C API Generator,安装了硬件PCIe-7842R:安装了Visual Stu ...
- c# html内容处理类
using System; using System.Text; using System.Text.RegularExpressions; using System.Net; using Syste ...
- WIN7不能上网
http://zhidao.baidu.com/link?url=lYL0Sti_nX3JDz3pA3cVh49nyYDEQBJ6P5fxwB4La0FurHlgmWGMdgfMGjQSWxj17sH ...
- 如何判断SOCKET还是连接着的
转自 http://blog.csdn.net/loadstar_kun/article/details/5790407 1. 用read函数来判断 读到长度0不能断定是已经断开.除非是-1,才代表输 ...
- Modules(最小树形图)
题目链接: Modules 描述 蒜头有一块主板,为了提升其性能,可在主板上安置若干增强模块.蒜头有n个不同的增强模块,增强模块可以直接安置在主板上,也可以安置在已经直接或间接连接在主板上的其他增强模 ...
- 产生num个不重复的随机数组
createDiffRandom : function (from,to,num) { // 产生num个不重复的随机数组 var arr=[],json={}; // 随机数数组 , 标记json对 ...