页面打印

摘自Web:
http://www.z6688.com/info/29300-1.htm

1. 实现打印功能
1) ExecWB()
通过脚本程序来调用IE菜单下面的打印命令。实现的代码如下:
<script language="javascript">

  function printsetup(){ // 打印页面设置

  wb.execwb(8,1);

  }

  function printpreview(){ // 打印页面预览

  wb.execwb(7,1);

  }

  function printit() { //打印

   if (confirm('确定打印吗?')) {

   wb.execwb(6,1)

   }

  }

</script>

<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=wb width=0></OBJECT>

<input type=button name=button_print value="打印" onclick="javascript:printit()">

<input type=button name=button_setup value="页面设置" onclick="javascript:printsetup();">

<input type=button name=button_show value="打印预览" onclick="javascript:printpreview();">

<input type=button name=button_fh value="关闭" onclick="javascript:window.close();">

这个Object 其实就是 IEWebBrowser 设定 Width 和 Height 以后,我们在界面上就看不到控件的形状了,然后,我们就可以使用 这个object 实现我们选纸和预览的功能了。

关于这个组件还有其他的用法,列举如下:

l wb.ExecWB(1,1) 打开

l wb.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口

l wb.ExecWB(4,1) 保存网页

l wb.ExecWB(6,1) 打印

l wb.ExecWB(7,1) 打印预览

l wb.ExecWB(8,1) 打印页面设置

l wb.ExecWB(10,1) 查看页面属性

l wb.ExecWB(15,1) 好像是撤销,有待确认

l wb.ExecWB(17,1) 全选

l wb.ExecWB(22,1) 刷新

l wb.ExecWB(45,1) 关闭窗体无提示

2) document.execCommand()
<a href="#" onclick=document.execCommand("print")>打印</a>

3) window.print()
使用:javascript:window.Print()

Prints the contents of the window.

方法源
Window

实现版本
Navigator 4.0


语法:print()

参数:无

2. 实现套打功能:使用css
要实现去掉触发打印命令的本身按钮,只需要添加以下代码:

<STYLE MEDIA="print">

#btn1 {display: none}

#btn2 {display: none}

#btn3 {display: none}

#btn4 {display: none}

</STYLE>

然后在以上四个按钮中加上id,分别为:btn1、btn2、btn3、btn4。

<input type=button name=button_print value="打印" onclick="javascript:print()" id="btn1">

<input type=button name=button_setup value="页面设置" onclick="javascript:printsetup();" id="btn2">

<input type=button name=button_show value="打印预览" onclick="javascript:printpreview();" id="btn3">

<input type=button name=button_fh value="关闭" onclick="javascript:window.close();" id="btn4">


3. 去掉页眉页脚:使用JavaScript
<script language="JavaScript">

var hkey_root,hkey_path,hkey_key

hkey_root="HKEY_CURRENT_USER"

hkey_path=\\Software\\Microsoft\\Internet Explorer\\PageSetup\\

//设置网页打印的页眉页脚为空

function pagesetup_null(){

try{

var RegWsh = new ActiveXObject("WScript.Shell")

hkey_key="header"

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")

hkey_key="footer"

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")

}catch(e){}

}

//设置网页打印的页眉页脚为默认值

function pagesetup_default(){

try{

var RegWsh = new ActiveXObject("WScript.Shell")

hkey_key="header"

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P")

hkey_key="footer"

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&u&b&d")

}catch(e){}

}

<Script>

4. 分页问题:使用css
<style type="text/css">

div.pageEnd {page-break-before:always}

</style>

然后在需要强制分页的地方用:

<div class="pageEnd">

待定页的内容

</div>

如果使用的是page-break-before,那么div的内容在后一页,

如果使用的是page-break-after,那么div的内容在前一页

page-break-after:检索或设置对象后出现的页分割符

语法: page-break-after : auto | always | avoid | left | right | null

参数:

l auto :  假如需要在对象之后插入页分割符

l always :  始终在对象之后插入页分割符

l avoid :  避免在对象后面插入页分割符

l left :  在对象后面插入页分割符直到它到达一个空白的左页边

l right :  在对象后面插入页分割符直到它到达一个空白的右页边

l null :  空值。IE5用来取消页分割符设置

示例: p { page-break-after: always;}

page-break-before:检索或设置对象前出现的页分割符

语法: page-break-before : auto | always | avoid | left | right | null

参数:

l auto :  假如需要在对象之前插入页分割符

l always :  始终在对象之前插入页分割符

l avoid :  避免在对象前面插入页分割符

l left :  在对象前面插入页分割符直到它到达一个空白的左页边

l right :  在对象前面插入页分割符直到它到达一个空白的右页边

l null :  空值。IE5用来取消页分割符设置

示例: p { page-break-after: always;}

5. 不弹出打印对话框:设置ExecWB的参数
<object ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">

</object>

<script language="javascript">

function print(){

WebBrowser1.ExecWB(6,1);

}

</script>

然后在页面里加一个按扭:

<input type=button name=print value="print" onclick="print()">

这样做,在按下按扭时会弹出窗口提示,如果不要提示,将第二个参数1改为6。

6、打印分页问题(css中的pagebreak可以控制)

pagebreak:在打印的时候强迫在样式控制的对象前后换页。

before:设置对象前出现的页分割符。设置为always时,始终在对象之前插入页分割符。相对应的css属性是”page-break-before”。

after:设置对象后出现的页分割符。设置为always时,始终在对象之后插入页分割符。相对应的css属性是”>。

用page-break-after
page-break-after版本:css2 兼容性:ie4+ 继承性:无
语法:
page-break-after : auto | always | avoid | left | right | null
取值:
auto : 假如需要在对象之后插入页分割符
always : 始终在对象之后插入页分割符
avoid : 未支持。避免在对象后面插入页分割符
left : 未支持。在对象后面插入页分割符直到它到达一个空白的左页边
right : 未支持。在对象后面插入页分割符直到它到达一个空白的右页边
null : 空白字符串。取消页分割符设置

说明:
检索或设置对象后出现的页分割符。
此属性在打印文档时发生作用。此属性不作用于 br 或 hr 对象。
假如在浏览器已显示的对象上此属性和 page-break-before 属性的值之间发生冲突,则导致最大数目分页的值被使用。
页分隔符不允许出现在定位对象内部。
在ie6及之前版本浏览器中, left 和 right 值的作用结果等同于 always 。
此属性对于 currentstyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 pagebreakafter 。
示例:
p { page-break-after: always;}
如何在多节Word文档中打印页面范围 When you print in Microsoft Word, you can print the whole document, the current page, or a range of pages. But what if you have a document with multiple sections, each of which has its own page number... 阅读详情

相关推荐

systermverilog中for循环中的fork join执行情况分析

仅为本人学习记录,如有错误感谢指正!

qq_63807221的博客 1461

javascript 打印

情况一:针对页面上少量元素不打印(不预览)的情况的解决办法是使用style,具体如下:定义如下style:程序代码: @media print {.notprint {display:none;}}@media screen {.notprint {display:inline;cursor:hand;}}所有需要显示但不需要打印(预览)的元素都加上: class=notprin

外围码农国际版 995

工业视觉检测实战指南:从硬件配置到AI算法部署

本文提供了一套完整的工业视觉检测系统搭建实战指南。从硬件选型(相机、光源、镜头、工控机)到AI算法(深度学习模型)部署,详细解析了如何为生产线配置一双“会思考的眼睛”。重点探讨了深度学习算法在复杂缺陷识别中的应用,并分享了模型训练、优化及云边协同部署的实战心得,旨在帮助工程师实现从实验室Demo到7x24小时稳定运行的工业落地。

weixin_29051193的博客 458

JS实现打印遇到的各种问题处理,JavaScript拉取浏览器print()方法打印遇到的问题解决,html实现打印机打印

JS实现打印遇到的各种问题处理,JavaScript拉取浏览器print()方法打印遇到的问题解决,html实现打印机打印

weixin_43992507的博客 2114

XGBoost与Embedding混合建模实战解析

在机器学习领域,特征工程与模型融合是提升预测性能的关键技术。Embedding技术通过将高维稀疏特征(如文本、ID类数据)转化为低维稠密向量,有效捕获语义关联;而XGBoost作为强大的集成学习算法,擅长处理结构化特征并进行自动特征组合。两者结合的混合架构(如Semantic Boosted Trees)在金融风控和推荐系统等场景中展现出显著优势,尤其在处理用户行为序列、商品ID等复杂特征时,相比传统方法能获得更好的模型效果。本文通过电商推荐和金融反欺诈等案例,详解如何实现Embedding+XGBoost

weixin_28718641的博客 325

VirtualBox 7.0.8 + Android-x86 9.0 保姆级安装教程(附图形界面卡顿解决方案)

本文提供VirtualBox 7.0.8与Android-x86 9.0的详细安装教程及性能优化方案,帮助开发者解决图形界面卡顿问题。从环境准备到高级配置,涵盖硬件要求、安装步骤、显存优化及ADB调试等实用技巧,显著提升虚拟机流畅度,适用于应用测试和开发调试。

weixin_29224309的博客 525

html跳转按钮谷歌浏览器点击没反应,网页打印的按钮无效,点击打印没有任何反映!求解!...

要不是你那个print控件脚本代码不对,要不是你的浏览器禁止运行脚本了。你打开工具-Internet选项-高级,看看里面的选项有没有禁止运行脚本。如果是自己做网页,网页打印控件的脚本如下:htmlheadtitlejavascript打印-打印页面设置-打印预览代码/titlemeta http-equiv=content-type content=text/html; charset=gb231...

weixin_36215894的博客 2630

COMSOL 6.4安装全攻略:安装包获取、许可证配置与避坑指南

多物理场仿真是现代工程与科研中不可或缺的技术手段,其核心原理在于将电磁、结构、流体、传热等不同物理过程的耦合效应置于统一环境中求解,从而真实模拟复杂系统行为。这类仿真平台能大幅提升产品研发与设计验证效率,广泛应用于电子散热、声学分析、电力设备等领域。在部署最新版本仿真软件时,安装与许可证配置往往成为影响工作效率的关键环节。本文系统梳理COMSOL 6.4在Windows平台的安装全流程,涵盖安装包获取、系统依赖准备、许可证配置、常见报错排查等实用经验,帮助工程师与科研人员一次性完成环境搭建,把更多时间投入真

weixin_30000735的博客 1364

js几种打印方法的几种方法

根据您的具体需求和使用环境,您可以选择适合您的方法来实现打印功能。希望这些信息对您有所帮助。替换为要打印的元素的实际 ID。您可以打印整个页面,也可以指定要打印的特定元素。在上面的示例中,当用户点击"Print"按钮时,将触发打印操作,打印。在您的 HTML 文件中创建一个按钮,用于触发打印操作。库的 JavaScript 文件和 CSS 文件。希望这些详细的步骤能够帮助您实现打印功能。首先,在您的 HTML 文件中引入。正常工作,您需要确保您的网页在加载。希望这个详细的教程能够帮助您使用。

一步一个脚印,踏实努力,向着目标前进 1万+

详解RT-DETR网络结构/数据集获取/环境搭建/训练/推理/验证/导出/部署

本文给大家带来是利用RT-DETR模训练自己的数据集,RT-DETR是一种新提出的目标检测模型,它利用的自注意力机制来处理图像数据。不同于YOLO通过连续的卷积层直接对图像区域进行分析,RT-DETR采用Transformer架构中的自注意力机制,这允许模型更有效地理解图像中不同部分之间的关系。这种方法使得RT-DETR在处理图像中的复杂场景和多对象环境时,能够展现出更高的准确性和效率。此外,RT-DETR在保持高精度的同时,也针对实时处理进行了优化,使其适合需要快速响应的应用场景。

Snu77的博客 6万+

Ultralytics YOLOv8 英伟达™ Jetson®处理器部署

英伟达™(NVIDIA®)Jetson 是一系列嵌入式计算板卡,旨在为边缘设备带来加速的 AI(人工智能)计算。这些小巧而功能强大的设备围绕英伟达™(NVIDIA®)的GPU架构打造,能够直接在设备上运行复杂的人工智能算法和深度学习模型,而无需依赖云计算资源。Jetson 板卡通常用于机器人、自动驾驶汽车、工业自动化和其他需要在本地以低延迟和高效率执行人工智能推理的应用中。此外,这些板卡基于 ARM64 架构,与传统 GPU 计算设备相比运行功耗更低。英伟达™(NVIDIA®)JetPack SDK。

机器人控制与仿真应用 3876

来点基础的吧,JavaScript、JSP怎么打印输出,方便调试

想打印自己代码的变量查看值是否争取,但又不知道怎么打印,打印到哪儿的,尤其是新手朋友有点模糊的,可以看看这篇文章参考一下,能快速有个诊断和判断的依据。

luohaitao的专栏 7641

FastAPI基础项目:仿头条新闻的web项目,实现基本的新闻列表页和详情页查看功能

该项目是一个基于FastAPI和MySQL的新闻应用入门项目。主要包含新闻列表页和详情页两个功能页面。项目结构清晰,包含主应用文件、数据库脚本和HTML模板。使用SQLAlchemy进行数据库操作,通过脚本可自动生成50条示例新闻数据。环境配置简单,仅需安装FastAPI、MySQL驱动等基础依赖,通过.env文件管理数据库连接。该项目适合作为FastAPI+MySQL的入门学习案例,展示了基本的CRUD操作、分页查询和模板渲染功能。

数据知道的博客 4429

JS怎么实现页面打印 JS实现页面打印的方法

JS怎么实现页面打印 JS实现页面打印的方法

hdxx2022的博客 8706

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

打印机页面显示的打印页面和打印页码,是什么意思

摘要:本文解释了"打印页码"和"打印页面"的区别。"打印页码"指文档的逻辑页码,用于指定打印范围;"打印页面"指实际输出的物理纸张。两者的数量关系可能不一致:如一页文档可打印在多张纸上(海报打印),或多页文档可合并打印在一张纸上(多合一打印)。简言之,页码决定打印内容,页面决定输出形式。

skywalk8163的专栏 2002

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

打印页面

最近做的项目需要用到打印页面的功能,记录下打印页面的工过程 打开需要打印的界面,如下 点击打印按钮出现如下界面 下面贴代码 打印开始区域 打印结束区域 function day(){ // 获取当前页的html代码 var bdhtml = window.document.body.innerH...

振峰的博客 360

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WEB页面打印--打印指定区域,页面预览,页面设置

      在很多项目中间都需要对web页面进行打印输出,有的是打印表格内容,有的是打印局部文字,这时候可以选择的方案大体有两种。   1.利用组件把报表的内容生成WORD文档或者是Excel文档,导出以后利用Office自带的打印功能进行打印   2.在网页上利用javascript或者是其他基于javascript和其他语言的组建下面详细介绍这两种方法  1.生成word或者是

刘聪的开发日志 9532

php在页面打印,[转载]PHP打印页面

1、控制"纵打"、横打”和“页面的边距。(1)function SetPrintSettings() {// -- advanced featuresfactory.printing.SetMarginMeasure(2) // measure margins ininchesfactory.SetPageRange(false, 1, 3) // need pages from 1 to 3fa...

weixin_39991926的博客 1508

jsp页面打印

2.window.print() 调用该函数也可以实现页面打印,但是会将整个页面打印出来,若是只需要打印部分内容,可使用以下办法: 在页面的代码头部处加入JavaScript: function doPrint() { bdhtml=window.document.body.innerHTML; sprnstr=""; eprnstr=""; prnhtml=bdhtm...

iteye_5220的博客 243

html页面实现打印功能

html页面实现打印功能可用代码效果截图 之前领导让我写一个html页面,可以进行打印,我上网搜了一下,html页面实现打印功能的博客有很多,这里我就不一一介绍了,直接上干货。 可用代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale

weixin_42518717的博客 7041

JSP页面打印

classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">                                               转储单                                                              转储单:             转

chenbolyfxinsui的专栏 910

Vue 实现打印功能页面

Vue 实现打印功能页面

我从不打没有准备的仗! 9029

打印页面横向怎么设置_word怎么设置横向打印

-----------------------------------------------------------------------------在word2013进行打印的时候,默认是纵向打印,但有些用户需要横向打印时,word2013怎么设置横向打印?---------------------------------------------------------------...

weixin_36282704的博客 2155

网页打印问题,打印设置,打印预览,打印分页,纵打,横打及页面的边距

1、控制"纵打"、 横打”和“页面的边距 (1) (2) ------------------------------------------------ 关于这个组件还有其他的用法,列举如下: WebBrowser.ExecWB(1,1) 打开 Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 Web.ExecWB(4,1) 保存网页 Web.ExecWB(6,1) 打印 Web.ExecWB(7,1) 打印预览 Web.

魔拉宝 1万+
上一篇: spring 事务属性(转)
下一篇: java中数值间的转换(转)
dkhsky
博客等级 码龄15年 2粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值