Web打印解决方案之证件套打的实现思路

网友投稿 269 2023-07-08


Web打印解决方案之证件套打的实现思路

在前面介绍过《Web打印解决方案之普通报表打印功能》的一片文章中提到过那个打印控件Lodop,做起套打来感觉还是挺方便的,至少位置调整界面不需要自己弄,位置嘛,也提供了自动保存的功能,不需要理会。

一般的套打,包含了几部分操作:打印预览、打印维护、打印设计。

打印预览和打印维护是面向终端用户的,打印维护是指内容不能修改删除、但位置可以调整,给不同的打印机不同的尺寸打印提供调整位置的可能性。

打印设计是面向开发人员的,开始需要通过这个功能来设计好套打的界面,就是根据套打证件的背景图片,大致摆放好各个内容的位置。

大致的实现代码如下所示:

其中大部分内容还是比较好理解的,不同的功能调用不同的函数Preview为预览、Setup为维护、Design为设计。

在套打的时候,注意需要通过下面代码来设置显示背景图片(打印的时候,是不打印背景的)。

LODOP.ADD_PRINT_SETUP_BKIMG("");

LODOP.SET_SHOW_MODE ("BKIMG_IN_PREVIEW",1); //打印预览时是否包含背景图

另外,由于报表的内容都是写在HTML页面中的,因此在动态设置内容的时候,一可以用脚本来读取界面元素作为数据源,二可以通过后台代码自动生成脚本代码,输出到前台页面中,看具体的需要了。

套打的预览界面大致如下图所示,其中蓝色部分是需要打印的内容,背景图片是一个发票的样板。

下面代码是通过脚本获取界面元素来取得相应的内容的,这种情况适合于界面上可能会修改一些打印的内容的情景。

LODOP.ADD_PRINT_TEXT(95, 695, 250, 52, document.getElementById("txtCompanyName").innerText); //业户名称

LODOP.SET_PRINT_STYLEA(1, "FontSize", 14);

LODOP.SET_PRINT_STYLEA(1, "Bold", 1);

var licenseDate = document.getElementById("txtLicenseDate").value;//证件有效期

var licenseYear = "";

var licenseMonth = "";

var licenseDay = "";

if (licenseDate != null && licenseDate != "") {

licenseYear = licenseDate.split("-")[0];

licenseMonth = licenseDate.split("-")[1];

licenseDay = (licenseDate.split("-")[2]).substr(0, 2);

}

LODOP.ADD_PRINT_TEXT(396, 190, 46, 22, validateYear); //有效期 结束 年

LODOP.SET_PRINT_STYLEA(6, "FontSize", 11);

LODOP.SET_PRINT_STYLEA(6, "Bold", 1);

LODOP.ADD_PRINT_TEXT(396, 253, 30, 22, validateMonth); //有效期 结束 月

LODOP.SET_PRINT_STYLEA(7, "FontSize", 11);

LODOP.SET_PRINT_STYLEA(7, "Bold", 1);

LODOP.ADD_PRINT_TEXT(396, 304, 32, 22, validateDay); //有效期 结束 日

LODOP.SET_PRINT_STYLEA(8, "FontSize", 11);

LODOP.SET_PRINT_STYLEA(8, "Bold", 1);

最后附上它的设计界面,其中生成代码功能可以生成用于静态HTML中的内容布局显示,做一定的修改调整就可以用在动态页面中了。非常有用的一个功能。

以上所述是给大家介绍的Web打印解决方案之证件套打的实现思路,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Web打印解决方案之普通报表打印功能
下一篇:启动 Eclipse 弹出 Failed to load the JNI shared library jvm.dll 错误的解决方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~