web打印实现几种方法

article/2025/9/14 9:25:18

在工作中出现web打印的情况是非常多的,其实这也是一个比较烦人的问题,这篇博客整理一下关于Web打印的一些方法或者方式。

 

1. window.print()

这个方法是用来打印网页的,页面上的其他的元素也会被打印处理,在打印的时候页眉页脚是不太好控制的。

所以如果使用这种方法的话最好将结果放到两个注释中间,之后通过JS来实现打印区域的功能。

具体做法:
<!--startprint--><div align="center"><!--省略部分代码--></div><!--endprint-->bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
window.document.body.innerHTML=prnhtml;
window.print();


 

特别注意:使用window.print方法是不能够打印IE浏览器中的移动或者旋转的动画的,但是在非IE浏览器中是可以支持的。

2. DLPrinter控件

DLPrinter打印控件完全免费,界面大方、使用简单、但无签名,支持打印预览、直接打印,可设置页眉、页脚、页边距、打印份数、纸张大小等信息。 

这个控件的下载地址为:http://files.cnblogs.com/panshenglu/DLPrinter.rar

调用方法:

<OBJECT ID="DLPrinter" CLASSID="CLSID:5C230622-45E5-4e3c-893C-3BFDDC4DB5E4"  codebase="DLPrinter.cab" height="0" width="0" ></OBJECT>
<script>DLPrinter.MarginLeft=20;DLPrinter.MarginRight=20;DLPrinter.MarginTop=20;DLPrinter.MarginBottom=20;DLPrinter.CopyCount=2;DLPrinter.PageHeader="这是测试的页眉";DLPrinter.PageFooter="这是测试的页脚";DLPrinter.IsLandScape=1;DLPrinter.ContentURL="www.baidu.com";
</script><input type="button" id="btnPrint" value="Print Preview" οnclick="DLPrinter.PrintPreview()" />
<input type="button" id="btnPrint" value="Print with prompt" οnclick="DLPrinter.Print()" />
<input type="button" id="btnPrint" value="Print without prompt" οnclick="DLPrinter.PrintDirect()" />


3. Lodop

对于这个打印控件,用一个词来形容:强大!不仅调用方便,而且功能比你想像中要强大得多。强烈推荐使用。

下载地址:http://www.lodop.net/

推荐去官网中的功能演示来学习一下这个打印空间。

 


4. Jquery打印

下面一个是用Jquery框架写的一个web打印控件的功能。

代码如下:

(function ($) {var printAreaCount = 0;$.fn.printArea = function () {var ele = $(this);var idPrefix = "printArea_";removePrintArea(idPrefix + printAreaCount);printAreaCount++;var iframeId = idPrefix + printAreaCount;var iframeStyle = 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;';iframe = document.createElement('IFRAME');$(iframe).attr({style: iframeStyle,id: iframeId});document.body.appendChild(iframe);var doc = iframe.contentWindow.document;$(document).find("link").filter(function () {return $(this).attr("rel").toLowerCase() == "stylesheet";}).each(function () {doc.write('<link type="text/css" rel="stylesheet" href="'+ $(this).attr("href") + '" >');});doc.write('<div class="' + $(ele).attr("class") + '">' + $(ele).html()+ '</div>');doc.close();var frameWindow = iframe.contentWindow;frameWindow.close();frameWindow.focus();frameWindow.print();}var removePrintArea = function (id) {$("iframe#" + id).remove();};
})(jQuery);<input type="button" id="btnPrint" value="打印"/>
<div id="printContent">要打印的内容区域<div><script type="text/javascript">
$(function(){$("#btnPrint").click(function(){ $("#printContent").printArea(); });
});
</script>


 

其实关于打印控件还有很多,找到自己最合适的才是硬道理,如果还有更多的web打印实现方法,可以给我留言。


http://chatgpt.dhexx.cn/article/aRMkbnjQ.shtml

相关文章

Web打印

布鲁斯李 Web打印 随着10i新版本的发布&#xff0c;在10i的iserver中&#xff0c;内置了一个web打印服务。是指将您在 Web 应用中制作的 Web 内容输出为可打印的文档。那么如何使用该服务&#xff0c;请继续往下看&#xff1a; 执行一次成功的web打印任务&#xff0c;我们需要…

实现WEB打印的几种方法

当前WEB应用开发非常流行&#xff0c;主要原因是WEB应用客户端的规则很简单&#xff0c;容易学习&#xff0c;容易维护&#xff0c;容易发布&#xff0c;降低了开发难度。但是&#xff0c;WEB应用的打印一直以来却是一个难题&#xff0c;特别是在应用中完成标签打印&#xff08…

web打印三种实现方式

web打印的方式可分为三种&#xff1a; 直接调用浏览器打印通过javascript插件调用浏览器打印通过第三方程序直接调用打印机 一、直接调用浏览器打印 通过在javascript代码中调用window.print()函数实现&#xff0c;浏览器会自动获取当前页面内容&#xff0c;并打开浏览器的打…

html纵向广告滚动条,网页右侧的漂浮广告代码,随滚动条滚动

HTML代码(即需要漂浮的广告)&#xff1a; js代码&#xff1a;前提是必须要引入jquery文件 $(function(){ $(window).scroll(function(){ var scrollTop document.body.scrollTop || document.documentElement.scrollTop || 0; $(".christmas_ad").stop(); var scrol…

php浮动广告,JavaScript实现漂浮广告代码的实例总结

我们在打开网页的时候&#xff0c;我们会发现不管是什么网页都会有很多漂浮的广告&#xff0c;有很多人都会在想&#xff0c;这样的效果是怎么实现的呢&#xff1f;今天我们就带大家详细介绍下JavaScript实现漂浮广告代码的实例总结&#xff01; 第一种 漂浮广告 不符合W3C Jav…

html左侧浮动广告代码,如何制作浮动广告 JavaScript制作浮动广告代码

如果有一定的JavaScript基础&#xff0c;制作浮动广告还是比较容易的。直接上代码了&#xff1a;无标题文档 *{ margin:0; padding:0; } #csdn { width:800px; margin:0 auto; } #ad { position:absolute; right:0px; top:30px; z-index:1; } #cl { position:absolute; right:0…

php 漂浮广告代码,JavaScript实现带缓冲效果的随屏滚动漂浮广告代码

本文实例讲述了JavaScript实现带缓冲效果的随屏滚动漂浮广告代码。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 这里演示了始终随屏滚动的JavaScript代码&#xff0c;在国内的应用泛滥成灾了&#xff0c;特别是一些喜欢漂浮广告的站长&#xff0c;常把本代码用作了漂…

html左侧浮动广告代码,纯js网页浮动广告代码

网上一般的网页浮动广告代码都是基于jquery的&#xff0c;受jiquery版本及浏览器限制&#xff0c;非常容易出现不兼容的情况&#xff0c;本站分享一段纯js网页浮动广告代码&#xff0c;简单兼容。 html代码&#xff1a; javascript代码&#xff1a; window.οnlοadfunction(){…

HTML将广告关闭的JS代码,带关闭漂浮广告代码_漂浮广告js代码_漂浮窗口模式关闭...

带关闭漂浮广告代码带关闭漂浮广告代码带关闭按钮地网页漂浮广告代码 x ff.js代码 var xpos = 20; var ypos = document.body.clientheight; var step = 1; var delay = 30; var height = 0; var hoffset = 0; var woffset = 0; var yon = 0; var xon = 0; var pause = true; v…

漂浮广告代码

<!doctype html> <html> <head> <meta charset"utf-8"> <title>漂浮广告代码</title> <script src"http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script> </head> <body> &…

php漂浮广告代码,JS随机漂浮广告代码具体实例

复制代码 代码如下: var xPos0,yPos0;//x,y轴坐标 var xon0;//图片在x轴移动方向 var yon0;//图片在y轴移动方向 var step1; //移动距离 var imgdocument.getElementByIdx_x("float");//图片层 function floatP() { var widthdocument.body.clientWidth;//浏览器…

JS实现漂浮广告功能

JS实现漂浮广告功能 前言一、漂浮广告案例 前言 漂浮广告非常简单也是老案例了&#xff0c;在网页的设计中可直接拿去用&#xff0c;原理都是我之前文章所讲到的&#xff0c;如果有什么不明白的可以看看我之前的文章&#xff0c;仅供参考学习。 一、漂浮广告案例 我在这个案例…

C语言课后习题(1)

谭浩强C语言第五版的一些课后习题 常用头文件&#xff1a; #include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> #include<stdbool.h> 注意事项&#xff1a; 1)获取输入的字符串时&#xff0c;gets保留空格 scanf遇到空格…

C语言课后习题(计算增长率比值

#include <stdio.h>int main() {double p,r;int n;p1.00;r0.07;for(n1;n<10;n){pp*(1r);}printf("%lf\n",p);return 0; } 假如我国国民生产总值的年增长率为7%&#xff0c; 计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式,r为年增长率&…

c语言字符串作业题,C语言课后习题练习(四)

(ps:提前声明一下&#xff1a;课后习题是备份给自己看的&#x1f602;) 1.输入3个整数&#xff0c;按由小到大的顺序输出 int main() { void swap(int *p1, int * p2); int n1, n2, n3; int *p1, *p2, *p3; printf("input three integer n1,n2,n3:"); scanf("%d…

翁恺C语言课后习题

1 时间换算&#xff08;5分&#xff09; 题目内容&#xff1a; UTC是世界协调时&#xff0c;BJT是北京时间&#xff0c;UTC时间相当于BJT减去8。现在&#xff0c;你的程序要读入一个整数&#xff0c;表示BJT的时和分。整数的个位和十位表示分&#xff0c;百位和千位表示小时…

啊哈C语言课后练习题

第 四 章 第四节 项目一&#xff1a;求1~100所有偶数的和。 问题代码/*copyright (啊哈C语言), 学习C *All rights reserved. *文件名称:myfirstc. *作者&#xff1a;JohnLu *完成日期&#xff1a;2020年3月17日 *版本号V1.0 * *问题描述&#xff1a;求1~100所有偶数的和。 …

12道c语言的课后习题!

1、计算n的阶乘&#xff08;1*2*3*4*5 n是个数&#xff0c;比如说乘到100&#xff1f;&#xff09; // 计算n的阶乘#include"stdio.h"int main() {int n 0;scanf("%d", &n);int i 0;int ret 1;for (i 1; i < n; i) {ret * i;}printf("…

TeeChart在VS2005,VS2008的入门教程

最近项目上要用到TeeChart来绘图&#xff0c;网络上关于TeeChart的资料很多&#xff0c;但是感觉很多都讲不到点上&#xff0c;很多入门过程中碰到的细节问题还是要自己探索。我把这两天的学到的记下来&#xff0c;也与大家分享。 环境&#xff1a;VS2005,VS2008 TeeChart版本:…

怎么用VS2008?

请问各位怎么用VS2008&#xff0c;为什么总是出错&#xff1f;我是这么做的。