项目的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实现打印相关推荐

  1. php lodop 实例,Vue使用lodop实现打印小结

    一. Lodop与C-Lodop的区别 Lodop打印控件是浏览器插件,与浏览器紧密结合来实现本地打印,是一种内嵌到浏览器里交互方式.(适用浏览器:ie系列.火狐51版及历史版本.谷歌44版及历史版本 ...

  2. java (lodop) 打印实例

    首先在lodop官网下载相关文件(js.css等):http://www.lodop.net/download.html 在下载好的包里 除了html页面 其他的js.css等拷贝到项目的一个目录下. ...

  3. lodop打印html包含图片,使用lodop.js打印控件打印table并分页等

    使用lodop.js打印控件打印table并分页等 import {getLodop} from '@/utils/LodopFuncs.js' //打印表格 export default{ // n ...

  4. Vue 项目中使用Lodop进行打印

    配置文件与地址 Lodop 插件下载.打印设计都在这个网址上面进行,过程不做过多赘述,相信大家在看文章前应该对Lodop有了一定的了解 Vue中引入Lodop所需的配置文件 建议在项目中建一个自己的工 ...

  5. web打印,使用lodop实现打印和导出emf图以及生成word。

    这两天需要打印一些报表和生成对应的word 网上也有不少工具,帆软,lodop等许多中间件. 但是帆软收费,所以就选择了lodop. 使用lodop就要先安装他的环境. 去官网下载zip 附上官网的下 ...

  6. extjs利用第三方打印插件lodop实现打印功能

    extjs由于是基于JS语言,其打印是可以按照一般的WEB打印方式来进行.笔者在网络上发现第三方打印插件Lodop(详见地址:http://mtsoftware.v053.gokao.net/inde ...

  7. Lodop分页打印每页显示页头页尾

    Lodop分页打印页头页尾问题 1. Lodop页头页尾打印标签 1.1 caption标签:caption标签的内容只显示在首页 1.2 thead标签: 页头标签, 此标签的内容为页头, 显示在每 ...

  8. Lodop web打印

    用到了web打印技术,选择了Lodop 需要引入LodopFuncs.js和安装Lodop打印插件,可以部署到云CLODOP <script src="/static/js/Lodop ...

  9. VUE 集成 LODOP插件打印

    VUE 集成LODOP插件打印 VUE 集成LODOP插件打印 Lodop.C-Lodop使用说明及样例 VUE简单使用lodop 1.创建LodopFuncs.js文件 2.在打印功能vue页面引入 ...

  10. jave使用打印插件(Lodop)可以打印以及保存excel

    引用 Lodop 插件实现打印以及另存excel 下面展示一些 内联代码片. // 给个jsp,引入插件js <%@ page language="java" content ...

最新文章

  1. java url map_java url转map ,map转string
  2. SAP MM MIGO 551 可以直接报废供应商寄售库存
  3. RHCE 学习笔记(22) 网络用户
  4. kafka comsumer
  5. 四种保留小数后两位输出方法
  6. windows自带的压缩,解压缩命令
  7. python九九乘法表求和,平均数,最大值,最小值、金字塔、等边三角形
  8. jvm对象从新生代到老年代_JVM内存管理、JVM垃圾回收机制、新生代、老年代以及永久代...
  9. java中1%3c%3c2_从零开始java代码审计系列(四)
  10. 约束理论学习随笔(1)
  11. windows7 XP 如何安装netbeui协议
  12. 有哪些实用的电脑软件值得推荐?
  13. android wp模拟器,玩家必看,WP8 ROM模拟器游戏图文教程
  14. 1区SCI潜力刊,中科院分区即将更新,有望冲击2区
  15. EBS开发_fnd_message使用
  16. 林轩田《机器学习基石》作业一-Python实现
  17. Win10 64位下解决 NVIDIA 显示设置不可用(小白问题)
  18. IBM Power小型机用液晶面板屏查看或设置HMC
  19. 让Yahoo(雅虎)1G邮箱POP的配置方法
  20. SQL:检索没有选修某课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列

热门文章

  1. 古玩新仿品收藏若干年后有价值吗?
  2. 你为什么选择考研,考研对你的意义是什么?
  3. 如何将微商管理模式流程化
  4. 原来人生真的是一场苦的修行
  5. 口语技巧-Part2答题逻辑
  6. Wmware安装Centos7教程
  7. 物理层接口特性、数据通信模型、物理层基本概念(数据、信号、码元 、信源、信道、信宿 、速率、波特、带宽)...
  8. SQL Server数据库快照
  9. 索引sql server_优化SQL Server索引策略
  10. azure web应用部署_使用Visual Studio Code将Python应用程序部署到Azure Functions