DevExpress ASPxHtmlEditor控件格式化并导出Word
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了DevExpress ASPxHtmlEditor控件格式化并导出Word,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2514字,纯文字阅读大概需要4分钟。
内容图文
![DevExpress ASPxHtmlEditor控件格式化并导出Word](/upload/InfoBanner/zyjiaocheng/1227/c103e166217c41b2b9bb8661fbca78ad.jpg)
在前台页面中先插入一个ASPxHtmlEditor控件,名为ASPxHtmlEditor1。 我用的Dev版本为14.1
格式化文本
在后台插入如下代码
2 + "text-justify:inter-ideograph;"
3 + "text-indent: 2em;" //首行缩进2字符
4 + "line-height:1.25;" //1.25倍行距
5 + "margin-top:0;margin-bottom:0;" //段前段后0行
6 + "font-size: 12pt;" //字体:小四
7 + "font-family:Times New Roman,宋体;‘"; //中文字体:宋体,西文字体:Times New Roman
8
9
10 ASPxHtmlEditor1.Html = "<p " + css + ">"; //段落用标签p标记
11 for (int i = 0; i < 30;i++)
12 ASPxHtmlEditor1.Html += "测试文本123abCD"; //这是内容
13 ASPxHtmlEditor1.Html += "</p>
上述代码实现了对文字的格式化,可以基本满足生成一般报告的格式需要。
Word导出及页面设置
对于ASPxHtmlEditor控件,无法直接设置导出Word或其他格式文件的页面(页边距、纸张大小等),需借助RichEditDocumentServer来转存实现。
添加如下引用:
2 using DevExpress.XtraRichEdit.API.Native;
插入下面两个函数
1 private void SetPrintOptions(IRichEditDocumentServer richedit) // 设置格式
3 foreach (Section _section in richedit.Document.Sections)
4 {
5 _section.Page.PaperKind = System.Drawing.Printing.PaperKind.A4; //A4纸
6 _section.Page.Landscape = false; //竖版
7 _section.Margins.Left = 295f; //左侧页边距 2.5cm
8 _section.Margins.Right = 295f;
9 _section.Margins.Top = 295f;
10 _section.Margins.Bottom = 295f;
11
12 }
13 }
14
15 protected void PushToBrowser(string fileName) //导出文件
16 {
17
18 FileStream fs = new FileStream(fileName, FileMode.Open);
19 byte[] bytes = new byte[(int)fs.Length];
20 fs.Read(bytes, 0, bytes.Length);
21 fs.Close();
22 if (File.Exists(fileName))
23 File.Delete(fileName);
24
25 Response.ContentType = "application/octet-stream";
26 Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
27 Response.BinaryWrite(bytes);
28 Response.Flush();
29 Response.End();
30 }
在执行导出的事件(如Button_Click事件)中添加如下代码
1 string outputFileName = " newtext.docx " ; // 导出文件的名称
3 FileStream fs = new FileStream("test.docx", FileMode.Create);
4 ASPxHtmlEditor1.Export(DevExpress.Web.ASPxHtmlEditor.HtmlEditorExportFormat.Docx, fs);
5 fs.Close();
6 fs.Close();
7
8 RichEditDocumentServer srv = new RichEditDocumentServer();
9 srv.LoadDocument("test.docx", DocumentFormat.OpenXml);
10 srv.BeginUpdate();
11 SetPrintOptions(srv);
12 srv.EndUpdate();
13 srv.SaveDocument(outputFileName, DocumentFormat.OpenXml);
14
15 if (File.Exists("test.docx"))
16 File.Delete("test.docx");
17
18 PushToBrowser(outputFileName);
输出的文本如下:
![技术分享](/upload/getfiles/default/2022/11/11/20221111044536292.jpg)
p.s.关于页边距设置成cm的换算
试了几组数据,做了个3次拟合,先凑合用吧。(x是期望设置的厘米数 如2.5cm y就是程序的中用到的参数 如295 )
原文:http://www.cnblogs.com/LFDX/p/4688938.html
内容总结
以上是互联网集市为您收集整理的DevExpress ASPxHtmlEditor控件格式化并导出Word全部内容,希望文章能够帮你解决DevExpress ASPxHtmlEditor控件格式化并导出Word所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。