web-打印
项目前景
由于之前的打印是客户端程序,也就是winform做的,现在需要改版成网页版,其他功能都能够很好的实现,就是在打印上遇到一些难点。由于第一次做打印功能,刚开始照搬winform中调用word文档实现打印,在本地运行时都很正常,可是发布到IIS之后,怎么也实现不了,经过研究学习,发现客户端不可能调用服务器的文件保存,最后经过一些学习研究,找到了web版打印的两种方法。
解决方案
1、页面拼写html,使用window.print()方法打印
这是用的最多的一种方法,先在页面上使用html将需要打印的模板拼写出来,然后在需要添加数据的地方动态添加数据(innerText),然后调用打印局部页面的方法printdiv()进行打印,方法如下:
function printdiv(printpage) {
var headstr = "<html><head></title></head><body>";
var footstr = "</body>";
var newstr = document.getElementById(printpage).innerHTML;
var oldstr = document.body.innerHTML;
document.body.innerHTML = headstr+newstr+footstr;
window.print();
document.body.innerHTML = oldstr;
}
此种打印出来页眉页脚上会显示网站title以及网址等信息,需要在更多设置中去掉页眉页脚的勾选(Google浏览器)
2、将打印模板保存为图片,然后在图片指定位置添加数据,最后将图片打印出来
这种方法需要用到图片处理类,先根据图片(打印模板)的存储路径创建相应对象,使用Graphics封装绘图图面
ms = new MemoryStream();
System.Drawing.Image myImage = System.Drawing.Image.FromFile(System.Web.HttpContext.Current.Server.MapPath(path));
map = new Bitmap(myImage);
myImage.Dispose();
graphics = Graphics.FromImage(map);
graphics.InterpolationMode = InterpolationMode.HighQualityBilinear;
然后再调用绘制方法,就可以在指定位置绘制所需要的文本内容
public void DrawText(float pointX, float pointY, string text, Color color, string fontfamily = "仿宋", float fontsize = )
{
SolidBrush brush = new SolidBrush(color);
PointF p = new PointF(pointX, pointY);
using (Font font = new Font(fontfamily, fontsize))
{
graphics.DrawString(text, font, brush, p);
}
}
传入的参数依次是:X坐标、Y坐标、文本内容、字体颜色、字体格式、字体大小,还可以将绘制好的图片保存到指定路径
System.Drawing.Image img = System.Drawing.Image.FromStream(factory.Memory);
img.Save(savePath, System.Drawing.Imaging.ImageFormat.Png);
图片绘制好了,接下来就是如何将图片打印出来了,可以将绘制的图片保存至服务器应用程序的某个文件夹中,然后在页面上添加该图片
<div id="test">
<img src="../images/print.png" alt="">
</div>
再调用1中的方法printdiv("test")即可完成图片打印。。。
web-打印的更多相关文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(55)-Web打印
系列目录 前言 1.本次主要弥补工作流,用户表单数据的打印 2.使用JQprint做为web打印插件 3.兼容:FireFox,Chrome,IE. 4.没有依赖也没有配置,使用简单 代码下载:htt ...
- Web打印--Lodop API
Lodop是一款专业的WEB打印控件,其设计目标是简单易用.功能足够强大,开创WEB打印开发的新局面. Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实 ...
- Web打印控件
Lodop是什么? 有人说她是Web打印控件,因为她能打印.在浏览器中以插件的形式出现,用简单一行语句就把整个网页打印出来: 有人说她是打印编程接口,因为她介于浏览器和打印设备之间,是个通道和桥梁,几 ...
- JS Web打印,实现预览新样式
问题描述: JS实现Web打印,要求打印前一种样式,打印预览时新样式 问题解决: (1)设置打印时的css样式,设置打印前的css样式 注: 以上为print. ...
- Web打印控件smsx.cab使用说明
在项目开发中,经常会用到页面打印的功能,在ASP.NET环境下推荐一款web打印控件smsx.cab. 使用方法:一般会先定义一个用于打印的母版页(Print.Master),在母版页上做好布局 ...
- 2013第39周一Web打印
2013第39周一Web打印 项目中遇到了Java Web打印问题,简单调用IE浏览器的打印不能完全满足要求,于是就搜集了Web打印相关的主题,简单汇总一下.web打印难点在分页.页面纸张设置,页眉页 ...
- WEB打印插件Lodop
Lodop.C-Lodop使用说明及样例 Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现 复杂打印.控件功能强大,却简单易用,所有调用如 ...
- WEB打印插件jatoolsPrinter
为什么选择 jatoolsPrinter 免费版? 支持无预览直接打印 真正免费,不加水印,没有ip或域名限制,不限时间,兼容ie6+ 无须注册,下载即用 提供经过微软数字签名的cab自动安装包,安装 ...
- 网页WEB打印控件
网页WEB打印控件制作 在WEB系统中,打印的确是比较烦人的问题,如果我们能制作一个属于自己的自定义的打印插件,那么我们在后续自定义打印的时候能随心所欲的控制打印,这样的效果对于程序员来说是非常开心的 ...
- WEB打印的几种方案
-------------------------------------------一 基于Web的打印方案比较分析-------------------------------- 基于web的套 ...
随机推荐
- java学习笔记(3):java的工作原理及相关基础
一.运行机制 如上图所示,图中内容即为Java的运行机制: 1.我们一开始所编写的代码文件存储格式为(如text.java)文件,这就是源程序文件 2.在Java编辑器的作用下,也就是就行了编译,形成 ...
- EasyUi DataGrid中数据编辑方式及编辑后数据获取,校验处理
EasyUi中的DataGrid提供前台编辑的相关函数. 实现客户选中DataGrid中一列后,对选中列中的一个字段进行编辑,并对数据进行实时校验后,传递至后台保存的需求, 主要涉及到DataGrid ...
- js版iphone通讯录分组列表效果
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...
- CSAPP--优化程序性能
一.编写高效的程序: 1.选择合适的算法和数据结构. 2.编写出编译器能够有效优化以转换为高效可执行的源代码. 3.并行计算.当然重点还是第一个,良好的算法和数据结构大大减小了程序的时间复杂度. 二. ...
- iOS学习之网易新闻简易Demo
简易NewsDemo代码分析 界面布局就不多说了.效果图:(自定义了三套Cell,最后一套Cell是页面最下方的"正在加载中..."Cell,图三.) 主要分析工程 ...
- sql语句读取所有父子标签
select A.HOSPITAL_ID from T_HOSPITAL A connect by prior A.HOSPITAL_ID=A.PARENT_ID start with A.HOSPI ...
- Linux下关闭node应用
今天在折腾用node接入微信公众号时,碰到了node应用启动后卡死退出,需要找出该进程关闭的问题,由于对shell脚本不是很熟悉,记录如下: 我们在用npm start启动应用后,通常要关闭时,ctr ...
- 编译内核时出错:/bin/sh: 1: lzop: not found
http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/71477.aspx 在上面链接中,发现时缺少了 lzop 工 ...
- 学习ASP.NET的一些学习资源
ASP.NET学习相关资源 当我们在决定选择哪一个编程语言来做web开发的时候,很难选择,php.java.python这些语言是开源的,有很多的学习资源,但是当我们决定学习ASP.NET的时候,微软 ...
- RazorPad中的ModelProvider
在RazorPad的右侧 我们可以提供模型的结构,Json数据结构体 当提供多个的时候 是Json中的数组 [{ Name: "NI" }, { Name: &qu ...