C# Lodop实现打印
项目的Debug文件夹下有个template文件夹,里面有用到的js、自己建的要打印的网页和用到的背景图
1、打印方法:
class print {public void printzb(string bh){//要打印的变量string zwjyzsbh = "123456";string zsfwdp = "";string zsfwdc = "";string zsfwdxian = "";//获取打印背景图的地址string pash="";string pashimg="";//这里用到了VelocityHelper模板VelocityHelper vh = new VelocityHelper();vh.Init(@"template");//初始化,指定模板文件的相对路径,就是工程里Debug文件里的路径//put后,在网页就可以调用这些变量,就和spring的那一套流程类似,jsp通过jstl调用vh.Put("title", "员工信息");vh.Put("zwjyzsbh", zwjyzsbh);vh.Put("zsfwdp", zsfwdp);vh.Put("zsfwdc", zsfwdc);vh.Put("zsfwdxian", zsfwdxian);pash = Directory.GetCurrentDirectory();//工程的Debug所在目录pash = pash.Replace("\\", "/");pashimg = pash + "\\template\\JY_DYJY_SJZWJYZS.jpg";pashimg=pashimg.Replace("\\", "/");vh.Put("pash", pash);vh.Put("pashimg", pashimg);//新建窗体FrmWebBrowser,拉一个控件webBrowser,在该控件显示所要打印的页面page.htmString htm = vh.Display("page.htm");FrmWebBrowser frmView = new FrmWebBrowser();frmView.webBrowser1.DocumentText = htm;} }
2、要显示的页面:page.htm,(自己新建一个)
<!DOCTYPE html> <HTML> <HEAD> <TITLE>$title</TITLE> <META http-equiv=Content-Type content="text/html; charset=UTF-8"> <META content="$title" name=description> <META content="$title" name=keywords> <script type="text/javascript" src="http://127.0.0.1:8000/CLodopfuncs.js"></script> <script type="text/javascript" src="$pash/template/jquery-1.11.0.min.js"></script> <script type="text/javascript" src="$pash/template/bootstrap.min.js"></script> <script type="text/javascript" src="$pash/template/jquery.bootstrap.js"></script> <script type="text/javascript" src="$pash/template/jquery.form.js"></script> <script type="text/javascript" src="$pash/template/jquery.validate.min.js"></script> <script type="text/javascript" src="$pash/template/messages_bs_zh.js"></script> <script type="text/javascript" src="$pash/template/LodopFuncs.js"></script> <script>$(function () {LODOP = getLodop();LODOP.NewPage();LODOP.ADD_PRINT_TEXT(200, 150, 375, 22, "$zwjyzsbh");//(要打印的文本,前四个是坐标,最后是获取前面put的变量)LODOP.ADD_PRINT_TEXT(170, 270, 75, 22, "$zsfwdp");LODOP.ADD_PRINT_TEXT(170, 400, 75, 22, "$zsfwdc");LODOP.ADD_PRINT_TEXT(170, 400, 75, 22, "$zsfwdxian");LODOP.ADD_PRINT_SETUP_BKIMG("<img width='760' height='1122' border='0' src='$pashimg'>");//增加背景图LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW", 1);//打印预览是否显示背景图,1:显示LODOP.PREVIEW();//预览 }); </script></HEAD><body></body> </HTML>
顺便看下这个: http://blog.csdn.net/lovelylord/article/details/43405927
3、FrmWebBrowser窗体,用来显示要打印的页面
3、VelocityHelper模板类,用来生成html,需要引入NVelocity。不用改
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using NVelocity; using NVelocity.App; using NVelocity.Exception; using NVelocity.Runtime; using System.IO; using Commons.Collections; using NVelocity.Context;namespace gjjy {class NVelocityHelper{ /// /// NVelocity模板工具类 VelocityHelper/// public class VelocityHelper{private VelocityEngine velocity = null;private IContext context = null;/// /// 构造函数/// ///模板文件夹路径public VelocityHelper(string templatDir){Init(templatDir);}/// /// 无参数构造函数/// public VelocityHelper() { ;}/// /// 初始话NVelocity模块/// ///模板文件夹路径public void Init(string templatDir){//创建VelocityEngine实例对象velocity = new VelocityEngine();//使用设置初始化VelocityEngineExtendedProperties props = new ExtendedProperties();props.AddProperty(RuntimeConstants.RESOURCE_LOADER, "file");props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, templatDir);props.AddProperty(RuntimeConstants.INPUT_ENCODING, "utf-8");props.AddProperty(RuntimeConstants.OUTPUT_ENCODING, "utf-8");velocity.Init(props);//为模板变量赋值context = new VelocityContext();}/// /// 给模板变量赋值/// ///模板变量///模板变量值public void Put(string key, object value){if (context == null)context = new VelocityContext();context.Put(key, value);}/// /// 显示模板/// ///模板文件名public String Display(string templatFileName){//从文件中读取模板Template template = velocity.GetTemplate(templatFileName);//合并模板StringWriter writer = new StringWriter();template.Merge(context, writer);return writer.ToString();}}} }
4、检查电脑是否已安装Lodop
public bool checkLodop() {Microsoft.Win32.RegistryKey uninstallNode = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall");foreach (string subKeyName in uninstallNode.GetSubKeyNames()){Microsoft.Win32.RegistryKey subKey = uninstallNode.OpenSubKey(subKeyName);object displayName = subKey.GetValue("DisplayName");if (displayName != null){//MessageBox.Show(displayName.ToString());if (displayName.ToString().Contains("C-Lodop(32-bit)")){return true;//MessageBox.Show(displayName.ToString()); }}}return false; }
自动弹出安装界面
System.Diagnostics.Process.Start(Application.StartupPath + "\\" + "CLodopPrint_Setup_for_Win32NT_2.047.exe");
转载于:https://www.cnblogs.com/Donnnnnn/p/6145500.html
C# Lodop实现打印相关推荐
- php lodop 实例,Vue使用lodop实现打印小结
一. Lodop与C-Lodop的区别 Lodop打印控件是浏览器插件,与浏览器紧密结合来实现本地打印,是一种内嵌到浏览器里交互方式.(适用浏览器:ie系列.火狐51版及历史版本.谷歌44版及历史版本 ...
- java (lodop) 打印实例
首先在lodop官网下载相关文件(js.css等):http://www.lodop.net/download.html 在下载好的包里 除了html页面 其他的js.css等拷贝到项目的一个目录下. ...
- lodop打印html包含图片,使用lodop.js打印控件打印table并分页等
使用lodop.js打印控件打印table并分页等 import {getLodop} from '@/utils/LodopFuncs.js' //打印表格 export default{ // n ...
- Vue 项目中使用Lodop进行打印
配置文件与地址 Lodop 插件下载.打印设计都在这个网址上面进行,过程不做过多赘述,相信大家在看文章前应该对Lodop有了一定的了解 Vue中引入Lodop所需的配置文件 建议在项目中建一个自己的工 ...
- web打印,使用lodop实现打印和导出emf图以及生成word。
这两天需要打印一些报表和生成对应的word 网上也有不少工具,帆软,lodop等许多中间件. 但是帆软收费,所以就选择了lodop. 使用lodop就要先安装他的环境. 去官网下载zip 附上官网的下 ...
- extjs利用第三方打印插件lodop实现打印功能
extjs由于是基于JS语言,其打印是可以按照一般的WEB打印方式来进行.笔者在网络上发现第三方打印插件Lodop(详见地址:http://mtsoftware.v053.gokao.net/inde ...
- Lodop分页打印每页显示页头页尾
Lodop分页打印页头页尾问题 1. Lodop页头页尾打印标签 1.1 caption标签:caption标签的内容只显示在首页 1.2 thead标签: 页头标签, 此标签的内容为页头, 显示在每 ...
- Lodop web打印
用到了web打印技术,选择了Lodop 需要引入LodopFuncs.js和安装Lodop打印插件,可以部署到云CLODOP <script src="/static/js/Lodop ...
- VUE 集成 LODOP插件打印
VUE 集成LODOP插件打印 VUE 集成LODOP插件打印 Lodop.C-Lodop使用说明及样例 VUE简单使用lodop 1.创建LodopFuncs.js文件 2.在打印功能vue页面引入 ...
- jave使用打印插件(Lodop)可以打印以及保存excel
引用 Lodop 插件实现打印以及另存excel 下面展示一些 内联代码片. // 给个jsp,引入插件js <%@ page language="java" content ...
最新文章
- java url map_java url转map ,map转string
- SAP MM MIGO 551 可以直接报废供应商寄售库存
- RHCE 学习笔记(22) 网络用户
- kafka comsumer
- 四种保留小数后两位输出方法
- windows自带的压缩,解压缩命令
- python九九乘法表求和,平均数,最大值,最小值、金字塔、等边三角形
- jvm对象从新生代到老年代_JVM内存管理、JVM垃圾回收机制、新生代、老年代以及永久代...
- java中1%3c%3c2_从零开始java代码审计系列(四)
- 约束理论学习随笔(1)
- windows7 XP 如何安装netbeui协议
- 有哪些实用的电脑软件值得推荐?
- android wp模拟器,玩家必看,WP8 ROM模拟器游戏图文教程
- 1区SCI潜力刊,中科院分区即将更新,有望冲击2区
- EBS开发_fnd_message使用
- 林轩田《机器学习基石》作业一-Python实现
- Win10 64位下解决 NVIDIA 显示设置不可用(小白问题)
- IBM Power小型机用液晶面板屏查看或设置HMC
- 让Yahoo(雅虎)1G邮箱POP的配置方法
- SQL:检索没有选修某课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列