aspose利用word模板生成word、PDF
项目需求:表单归档时生成表单word、PDF文件
先上效果图
1、word模板(部分)书签
2、生成结果图
开始上代码
Dictionary<string, string> dictSource = new Dictionary<string, string>();dictSource = FlowCommon.FlowFun.NCRDocDic(FlowModel); //获取文字替换数据string docFIlePath = SetNCRDocImg(FlowModel, dictSource);//替换签名图片及文字内容,返回生成的word文件路径string path = Server.MapPath("~" + docFIlePath);FlowCommon.NPIOHelper.WordToPDF(path + "NCR.docx", path, "NCR");//根据word生成PDF
文字标签数据
public static Dictionary<string, string> NCRDocDic(Model.View_NCRFlowList FlowModel){Dictionary<string, string> dictSource = new Dictionary<string, string>();try{dictSource.Add("zlgly_psjb", FlowModel.zlgly_psjb);//评审级别dictSource.Add("zlgly_bh", FlowModel.zlgly_bh);//编号dictSource.Add("jcy_mcth", FlowModel.jcy_mcth);//不合格品名称及图号dictSource.Add("jcy_fsdw", FlowModel.jcy_fsdw);//发生单位dictSource.Add("jcy_cpbh", FlowModel.jcy_cpbh);//产品编号dictSource.Add("jcy_fslb", FlowModel.jcy_fslb);//不合格品发生类别...}catch (Exception e){Log.Write(tabLog, e.ToString());dictSource = null;}return dictSource;}
/// <summary>/// NCR文档图片设置/// </summary>/// <param name="FlowModel"></param>/// <param name="dictSource"></param>/// <param name="IsGD"></param>public string SetNCRDocImg(Model.View_NCRFlowList FlowModel, Dictionary<string, string> dictSource, bool IsGD = true){string docFIlePath = "";string templateFile = Server.MapPath("~/Templates/NCR.docx");Aspose.Words.Document doc = new Aspose.Words.Document(templateFile);//读取模板DocumentBuilder builder = new DocumentBuilder(doc);//检查员string jcy = FlowModel.jcy_jcy;DataTable dt_jcy = FlowCommon.FlowFun.GetUserSignImg(jcy, "1"); //签名图片获取ReplaceImg(dt_jcy, "jcy_jcy", dictSource, builder);//质量管理员--判断等级string zlgly = FlowModel.zlgly_zlgly;DataTable dt_zlgly = FlowCommon.FlowFun.GetUserSignImg(zlgly, "2");ReplaceImg(dt_zlgly, "zlgly_zlgly", dictSource, builder);//使用文本方式替换foreach (string name in dictSource.Keys){doc.Range.Replace(name, dictSource[name].Replace("\r\n", ""), true, true);}string SaveFile = "";if (IsGD) //默认归档操作,归档与打印文件保存路径不同docFIlePath = "/upload/NCRFiles/" + FlowModel.zlgly_bh + "/";elsedocFIlePath = "/upload/PrintFiles/" + DateTime.Now.Ticks.ToString() + "/";SaveFile = Server.MapPath("~" + docFIlePath);if (!Directory.Exists(SaveFile)){Directory.CreateDirectory(SaveFile);}doc.Save(SaveFile + "NCR.docx");return docFIlePath;}
/// <summary>/// 签名图片替换/// </summary>/// <param name="dt">数据源</param>/// <param name="name">标签名称</param>/// <param name="dictSource"></param>/// <param name="builder"></param>/// <param name="IsMul">是否为多图片</param>private void ReplaceImg(DataTable dt, string name, Dictionary<string, string> dictSource, DocumentBuilder builder, bool IsMul = false){if (dt != null && dt.Rows.Count > 0) //查到数据了{if (!IsMul){string url = dt.Rows[0]["signurl"].ToString();//PHOTO_jcystring imgurl = Server.MapPath("~" + url);FileInfo fileInfo = new FileInfo(imgurl);if (fileInfo.Exists){builder.MoveToBookmark("PHOTO_" + name);builder.InsertImage(imgurl, RelativeHorizontalPosition.Default, -5, RelativeVerticalPosition.Margin, 0, 45, 18, WrapType.None);dictSource[name] = ""; //签名图片存在时清空文字标签内容}}else //客户需求有多人签名,在同一个表单框中,最多现在三个签名,这里根据自己的业务需求来{int i = 1;foreach (DataRow dr in dt.Rows){if (i > 3) break;string url = dr["signurl"].ToString();//PHOTO_jcystring imgurl = Server.MapPath("~" + url);FileInfo fileInfo = new FileInfo(imgurl);if (fileInfo.Exists){builder.MoveToBookmark("PHOTO_" + name + i.ToString());builder.InsertImage(imgurl, RelativeHorizontalPosition.Default, -5, RelativeVerticalPosition.Margin, 0, 45, 18, WrapType.Square);dictSource[name] = ""; //}i++;}}}}
/// <summary>/// Word转成Pdf/// </summary>/// <param name="path">要转换的文档的路径</param>/// <param name="savePath">转换成Pdf的保存路径</param>
/// <param name="wordFileName">转换成html的文件名字</param>
public static void WordToPDF(string path, string savePath, string wordFileName)
{
Aspose.Words.Document d = new Aspose.Words.Document(path);
d.Save(savePath + wordFileName + ".pdf", SaveFormat.Pdf);
}
aspose.word、aspose.pdf dll 下载地址
http://download.csdn.net/download/tt871911/10229509
aspose利用word模板生成word、PDF相关推荐
- 利用 freemarker 模板生成 word 小结
在企业级开发时,不可避免的会遇到生成 word 文档的需求,有两种常用的方案,1.使用 Apache POI 在后台通过代码生成 word 文档:2.使用模板生成 word 文档.第二种方法比较简单, ...
- 根据word模板生成word和PDF
根据word模板生成word和PDF 需求:有一个固定的合同模板,在vue前台填写指定的信息,替换合同模板指定的内容 我们使用的默认模板内容如图: 我们在前端填写的字段就是合同名称.项目名称和项目金额 ...
- 使用word模板生成word文档的各类方案
使用word模板生成word文档的各类方案 生成word的各种方案 word另存xml进行后续处理 2003版本word(.doc)的xml处理并生成word 2007版本word(.docx)的xm ...
- java 根据word模板生成word文件
Java可以使用Apache POI库来生成Word文件,并且也可以使用freemarker等模板引擎来实现根据Word模板生成Word文件的功能. 下面是一个简单的示例代码,可以帮助您快速入门. 模 ...
- word模板生成word报表文档
主要功能为根据word模板生成word报表文档,注意引用Interop.Word.dll; 首先要生成word程序对象 Word.Application app = new Word.Applicat ...
- C#根据word模板生成word表格报表文档
主要功能为根据word模板生成word报表文档,注意引用Interop.Word.dll; 首先要生成word程序对象 Word.Application app = new Word.Applicat ...
- apache poi使用例_使用java Apache poi 根据word模板生成word报表例子
[实例简介] 使用java Apache poi 根据word模板生成word报表 仅支持docx格式的word文件,大概是word2010及以后版本,doc格式不支持. 使用说明:https://b ...
- JAVA实现模板word文档导入,Java依据word模板生成word文档之后台解析和实现及部分代码(一)...
Java根据word模板生成word文档之后台解析和实现及部分代码(一) 后台主要工作是解析XML定义的标签文件,并获取到数据集,放入到Map中,然后调用Jacob.jar中提供的相关方法来实现替换. ...
- 使用java Apache poi 根据word模板生成word报表
使用java Apache poi 根据word模板生成word报表 使用poi读取word模板,替换word中的{text}标签,并根据自定义标签循环生成表格或表格中的行. 代码示例下载:https ...
- PHP 使用word模板生成word文档示例
<?php namespace Home\Controller; use PhpOffice\PhpWord\TemplateProcessor; use Think\Controller; c ...
最新文章
- PHP操作MYSQL--PDO
- 【采用】百度大规模知识图谱构建及智能应用
- always on sql 收缩日志_SQL Server AlwaysOn日志收缩
- 前端学习(3232):高阶函数函数柯里化
- 如何在cmd命令提示符里打开Python
- Visual Studio 2015 安装教程(附安装包)
- C++关键字—this
- 指针变量占用的内存空间大小说明
- Windows 2008 Server线程池前瞻(原创)
- 编写你的应用程序(三)、3D图形
- 二零零七年五一节自驾游记(十)--------0501若尔盖花湖II
- win10 任务栏的工具栏 以及重启消失的解决方法
- MTK获取iso的几种方式
- 安润网提供的游戏下载,您可以到安润网的论坛中下载,无须注册。
- 用阿里云构建海外镜像
- 复杂网络分析以及networkx学习
- 并发编程之深入理解synchronized
- 电脑cpu速度测试软件,使用鲁大师 一键测试电脑的处理器(CPU)速度
- Jetson nano-使用教程(转载)
- 为什么网上查到的ip和自己ipconfig出来的不一样?
热门文章
- 百科知识 kux文件如何打开
- Win7 Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足
- FastAPI获年度第一新兴框架,2021年最受欢迎的TOP 100开发工具出炉
- HX710_24位电子秤AD采集
- 小米笔记本linux指纹,小米笔记本Air 13.3寸指纹版(128GB)如何bios设置u盘启动
- Qt 利用海康摄像头的ISAPI协议进行抓图等操作
- 高校毕业生就业信息管理系统的设计与实现(Spring + Spring MVC +Hibernate)
- Typecho网站访问浏览总量统计插件PageViews升级版
- matlab电流测量接法,matlab电压电流测量模块的使用
- 计算机组装所需要的主要配件有哪些,组装电脑需要哪些零件_组装电脑需要哪些配件...