1.先打开你需要替换的word文档,在想要后续更换字段值的地方添加“书签”。

2.将模板文档存放在 程序的Debug文件下。

3.生成文件的按钮点击事件 代码:

   string templatePath = Application.StartupPath + "\\模板.docx"; //文档模板物理路径

                Document doc = new Document(templatePath);
try
{
Hashtable tables = new Hashtable();
tables.Add("A型", aJ);
tables.Add("A价", aF);
tables.Add("B型", bJ);
tables.Add("B价", bF);
tables.Add("F型", fJ);
tables.Add("F价", fF); //图片添加
//Aspose.Words.DocumentBuilder builder1 = new Aspose.Words.DocumentBuilder(doc);
//// Response.ContentType = pictureBox1.ImageLocation;//设定输出文件类型
//builder1.MoveToBookmark("图片审核者");
//builder1.InsertImage((byte[])GetPictureData(pictureBox1.ImageLocation), 60, 30); tables.Add("日期", dtpBaogao.Value.ToString("yyyy年MM月dd日"));
tables.Add("日期2", dtpJieshou.Value.ToString("yyyy.MM.dd"));
GetHTFile(doc, tables); string downname = txtName.Text + "----报告.pdf";
// doc.Save(downname, SaveFormat.Pdf); SaveFileDialog SaveData = new SaveFileDialog(); //以保存文件的方式打开
SaveData.RestoreDirectory = true; //显示上次存放的目录
SaveData.Title = "请选择路径"; //标题
//SaveData.InitialDirectory = @"C:\"; //默认路径是C:\,可更改
SaveData.Filter = "PDF文件(*.pdf)|*.pdf"; //只能保存为sql文件(可根据需求更改) string script = " "; SaveData.FileName = txtName.Text + "----报告";
if (SaveData.ShowDialog() == DialogResult.OK) //如果选定路径按下保存按钮
{
script = SaveData.FileName; //script赋值为选择保存的路径
doc.Save(script, SaveFormat.Pdf); //生成word文件,就将 SaveFormat.Pdf改成.word
MessageBox.Show("生成成功!"); this.Close();
}
}
catch (Exception ex)
{ } }
public byte[] GetPictureData(string imagepath)
{
/**/////根据图片文件的路径使用文件流打开,并保存为byte[]
FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法
byte[] byData = new byte[fs.Length];
fs.Read(byData, , byData.Length);
fs.Close();
return byData;
}
public static void GetHTFile(Document doc, Hashtable table)
{
BookmarkCollection bookmarks = doc.Range.Bookmarks;
foreach (Bookmark mark in bookmarks)
{
if (table.ContainsKey(mark.Name))
{
mark.Text = table[mark.Name].ToString();
}
}
}

注:需要引用 Aspose.Words.dll

winform 替换word文档中的字段(包含图片添加),生成导出PDF文件(也可是word文件)的更多相关文章

  1. C# Word文档中插入、提取图片,文字替换图片

    Download Files:ImageOperationsInWord.zip 简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操作.图像会比阅读文字更有吸引力,而且图像是 ...

  2. 详解在Word文档中常见的各种公式编辑问题

    正常情况下,我们在安装完成MathType之后会直接加载在Word文档中,Word文档中的MathType比较复杂,新手操作遇到麻烦也是常有的事,今天就来给大家详解下Word文档中常见的MathTyp ...

  3. Java 在 Word 文档中使用新文本替换指定文本

    创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...

  4. C# 在Word文档中生成条形码

    C# 在Word文档中生成条形码 简介 条形码是由多个不同的空白和黑条按照一定的顺序组成,用于表示各种信息如产品名称.制造商.类别.价格等.目前,条形码在我们的日常生活中有着很广泛的应用,不管是在图书 ...

  5. C# 提取Word文档中的图片

    C# 提取Word文档中的图片 图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现使 ...

  6. 把word文档中的所有图片导出

    把word文档中的所有图片导出 end

  7. aspose.words复制插入同一word文档中的某个页面

    选择word模板 Document doc = new Document(Server.MapPath("~\\templet") + "\\" + name. ...

  8. Aspose.Words:如何添加另一个WORD文档中的Node对象

    原文:Aspose.Words:如何添加另一个WORD文档中的Node对象 首先看一段代码,这段代码意图从docSource中获取第一个表格,并插入docTarget的末尾: , true); doc ...

  9. C# 在word文档中复制表格并粘帖到下一页中

    C# 在word文档中复制表格并粘帖到下一页中 object oMissing = System.Reflection.Missing.Value;            Microsoft.Offi ...

随机推荐

  1. (信贷风控九)行为评分卡模型python实现

    python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...

  2. linux部署php网页

    liunx环境下运行php和传统的Java web程序不一样.我直接放在tomcat下竟然不行. 安装了php的一些环境,还是访问不了,原因是不支持https访问.没办法,还是得用tomcat,同时我 ...

  3. MFC加载osg模型

    创建MFC单文档项目, OSGObject.h #pragma once #include <osgViewer\Viewer> #include <osgDB\ReadFile&g ...

  4. linux普通用户添加root权限

    新增一个普通用户并进入该用户: [root@VM_0_7_centos ~]# groupadd mall [root@VM_0_7_centos ~]# useradd mall -m -d /ho ...

  5. Qt编写气体安全管理系统13-短信告警

    一.前言 短信告警这个模块在很多项目中都用上了,比如之前做过的安防系统,温湿度报警系统等,主要的流程就是收到数据判断属于某种报警后,组织短信字符串内容,发送到指定的多个手机号码上面,使用的是短信猫硬件 ...

  6. Hello log4net——做一个实用好用的log4net的demo(转)

    log4net使用指南  (对配置解释比较全面细致,建议做完demo后多看) Log4Net使用详解(周公)——点击打开链接 Log4Net使用详解(续)周公——点击打开链接 点击打开链接 点击打开链 ...

  7. 对 Watchbog Botnet 渗透过程和 Payload 的分析

    漏洞利用 CVE-2018-1000861 https://jenkins.io/security/advisory/2018-12-05/ Watchbog在做什么? Watchbog僵尸网络为其所 ...

  8. 一个unsigned int 数的二进制表示中有多少个1

    这是一道面试题可以用以下的一些方案.第一种是很容易想到的采用循环的方式并且与1进行位与运算,具体代码如下.  1unsigned int GetBitNumOfOne_ByLoop1(unsigned ...

  9. linux 加载新的磁盘(卷组)

    pvcreate /dev/vdbvgcreate datavg /dev/vdblvcreate -n datalv -L 99.8G datavgmkfs.ext3 /dev/datavg/dat ...

  10. [转帖]oracle补丁类型

    oracle补丁类型 https://www.cnblogs.com/liang545621/p/9417919.html 介绍挺好的 跟现在的也比较类似呢.   名称 说明 Release ¤ 标准 ...