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 ...
随机推荐
- react native easter的分享
React 可以看做是连接native与JavaScript的桥梁bridge: 实现用js语言时间app的开发: 即使你不知道native是什么:
- 神经网络总结(bp)
一.从生物到计算机 神经细胞利用电-化学过程交换信号.输入信号来自另一些神经细胞.这些神经细胞的轴突末梢(也就是终端)和本神经细胞的树突相遇形成突触(synapse),信号就从树突上的突触进入本细胞. ...
- CodeForces 297D Color the Carpet (脑补题)
题意 一个h*w的矩阵上面涂k种颜色,并且每行相邻格子.每列相邻格子都有=或者!=的约束.要求构造一种涂色方案使得至少有3/4的条件满足. 思路 脑补神题--自己肯定想不出来T_T-- 官方题解: 2 ...
- C++复习3.C/C++常量的知识
C/C++常量的知识 20130918 语言的实现隐含着使用着一些常量,如初始化全局变量静态变量,另外还有一些我们不曾感觉到的变量:函数地址(也就是函数名称), 静态数组的名字,字符串常亮的地址.常量 ...
- 利用Docker编译Hadoop 3.1.0
前言 为什么要使用Docker编译,请自行百度 操作系统环境:Centos 6.8 uname -r 内核版本:2.6.32-642.el6.x86_64 除非有把握否则不要在Centos6.8中直接 ...
- 12.18 微信扫码获取openid与登陆
官方文档: https://open.weixin.qq.com/ 1.先获取code 1-1 配置项目配置文件 wechat: mpAppId: wxd898fcb01713c658 mpAppSe ...
- New Concept English three(17)
27W/m 65 Verrazano, an Italian about whom little is known, sailed into New York Harbour in 1524 and ...
- Linux:tee命令详解
tee tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin,简单的说就是把数据重定向到给定文件和屏幕上. 语法 tee(选项)(参数) 选项 -a:向文件 ...
- Getting command line access to PHP and MySQL running MAMP on OSX
建立自己profile路径应该在/Users/yourname/,最后要运行. ./.profile使文件生效,和windows中给添加环境变量是一个道理,还可以看出linux和UNIX默认运行路径为 ...
- flask 文件的上传下载和excel操作
文件的下载 from flask import send_from_directory @excel_bp.route('/get_attachment/<path:filename>') ...