Word套打
# Word套打
注意
本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。
使用Word可以套打,其实套打一般就是将要打印的内容分毫不差的打印到已有的模板中去,比如奖状、证书、票据、报表等都可以使用套打完成。
方法一: 将Word页面排版的和打印纸中的页面完全相同,然后将打印纸中存在的文字内容改为白色的,或者设置成隐藏文字,表格等图形的线条改成无,其他需要打印的数据的文本设置为黑色,然后再套打即可。如果文件中使用了隐藏文字,那么需要在打印之前,本地打开Word文件,设置“Word选项”中的“显示”里“打印选项”部分,去掉“打印隐藏文字”的勾选。这种方式的难度稍微大一点,毕竟用Word编辑一个与打印纸内容完全一样的页面是需要花费不少功夫的。
方法二: 把打印纸扫描成一张图片当做Word模板文件的背景,然后在需要生成数据的位置插入没有边线和背景色的“简单文本框”,在文本框中插入书签用来标记动态填充数据的位置,这样也可以实现套打。此方式需要在打印之前,本地启动Word,设置“Word选项”中的“显示”里“打印选项”部分,去掉“打印背景色和图像”的勾选。此方式实现较为容易。
下面我们就制作一个“荣誉证书”套打模板的过程,来说明一下“方法二”是如何实现的,希望对于没有接触过套打的用户有所帮助和启发。
# 模板制作步骤
扫描“荣誉证书”的打印纸为图片。
新建打开Word模板文件,在“页面布局”-“页面背景”中设置图片填充,把上一步扫描的图片作为整个页面的背景。
在需要生成数据的位置插入“简单文本框”,设置文本框边框的线条颜色为“无线条”,设置文本框边框的填充为“无填充”,并在各个文本框中插入书签用来标记动态数据的位置。如下图所示:
# 套红打印
调用PageOffice在线打开“荣誉证书”套打模板(honor.docx)并动态填充各项数据到指定位置。关键代码如下:
WordDocumentWriter doc = new WordDocumentWriter();
doc.openDataRegion("PO_Name").setValue("李小伟");
doc.openDataRegion("PO_Year").setValue("2023");
doc.openDataRegion("PO_Honor").setValue("最佳员工");
doc.openDataRegion("PO_Unit").setValue("北京幻想科技公司");
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setWriter(doc);
poCtrl1.webOpen("doc/honor.docx", OpenModeType.docReadOnly, "张三");
PageOfficeNetCore.Word.WordDocumentWriter doc = new PageOfficeNetCore.Word.WordDocumentWriter();
doc.OpenDataRegion("PO_Name").Value = "李小伟";
doc.OpenDataRegion("PO_Year").Value = "2023";
doc.OpenDataRegion("PO_Honor").Value = "最佳员工";
doc.OpenDataRegion("PO_Unit").Value = "北京幻想科技公司";
PageOfficeNetCore.PageOfficeCtrl POCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
POCtrl.SetWriter(doc);//必须
POCtrl.WebOpen("doc/honor.docx", PageOfficeNetCore.OpenModeType.docReadOnly, "张三");
// Make sure to add code blocks to your code group
动态生成的文件效果如下图所示:
打印生成的荣誉证书,套打的结果如下图所示:
实际上打印文件时,打印机只打印输出了下面的内容到打印纸上。
如果打印文件时背景图片也被打印出来了,那么修改“Word选项”中的“显示”里“打印选项”部分的设置,去掉“打印背景色和图像”的勾选即可。