`
zxwxiao
  • 浏览: 18828 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

模态窗口中实现打印预览

    博客分类:
  • web
阅读更多
用window.open另外打开一个窗口,把要打印的东西传过去。打开打印预览画面后,关闭那个画面。这样就能用预览画面打开了。。。结果关闭那个画面之后,打印预览也没了。。。


因为js可以调用的打印预览是基于WebBrowser,如果是模态窗口(showModalDialog)的话,子画面是无论如何也调不出来的,子画面直接调不出打印预览的,我看到网上无数人都困扰这个问题好久。WebBrowser这个东东,只有父画面有。



我的方法:

假设,a画面window showModalDialog打开b画面。a父画面,b子画面。a把自己的document以参数形式传递给b。把子画面的内容赋给父画面的document参数,并调用打印。但是,要使父画面内容不被打印出来,子画面内容不被显示到父画面里面上,可以通过css来控制。下面是具体实现。

window showModalDialog(url,document,width,heigth);

b画面获取这个参数var documentObj = window.dialogArguments

这样的话。。。documentObj .all.WebBrowser.ExecWB(7,1)就能打印东东了,这个段思路来自网友,他可能实现的是要打印父画面的内容。但是如果是要打印子画面的内容,就要稍微多做点事情。


在a画面上,把现在画面上的元素,最外层套一个div,或者其他什么。给个id叫,parentHtml。给个css:noPrint

在画面最下面画一个隐藏div,给个id叫childHtml。给个css:noDisplay。

定义好css

@media Print

{

.noPrint {

DISPLAY: none;

}


@media Screen

{

.noDisaplay {

DISPLAY: none;

}


然后,猥琐的办法。。。

在子画面上使用documentObj.getElementById("parentHtml")获得父画面的显示内容对象,给它加个class “noPrint”。

然后

documentObj.getElementById("childHtml").insertAdjacentHTML("beforeEnd",document.body.innerHtml)。

把子画面body里的内容复制到父画面的childHtml里去。

然后,documentObj .all.WebBrowser.execwb(7,1)。。。应该就能把子画面的内容显示到预览窗口里了。。。

最后再把parentHtml的noPrint去掉,以及childHtml里的内容删掉。
分享到:
评论

相关推荐

    用户模态对话框内子视图(子窗口)的预览和打印(之二)

    当打印或者预览结束后,关闭自行创建的框架窗口CPrintPreviewFrameWnd,利用CViewPrintPreview类中实现保存的信息恢复主框架和用户对话框,恢复打印/预览前的环境。 代码(实现了第二个解决方法)在VC2010下编译...

    Delphi7自定义FastReport 4 报表的预览窗体.rar

    这个自定义的Delphi报表预览窗体是为了实现套打功能而弄的,预览时先调用这个自定义的,实际打印时再调用默认的。这需要2个frxReport,其中一个的Preview属性需设为自定义的这个,另一个默认就行,然后在自定义那个...

    VC++ 编程指南_中文chm

     8.6打印和打印预览  8.7支持多个文档类型的文档视结构程序  8.8防止应用程序运行时创建空白窗口  8.9小结 第九课 创建用户模块  9.1用户模块  9.2静态连接库  9.3创建动态库  9.4小结 第十课 数据库编程...

    深入解析MFC

    如果做到以下几点,你就可以成为一位透彻理解MFC实现细节的专家:探索MFC文档/视图结构的内幕,从而学习视图同步、打印和打印预览;更深入地了解MFC序列化中那些没有文档记录的方面和一些没有文档记录的类,例如...

    一款非常好的WPF编程宝典2010 源代码

    第1章 WPF概述 1 1.1 理解Windows图形 1 1.1.1 DirectX:新的图形引擎 1 1.1.2 硬件加速与WPF 2 1.2 WPF:高级API 4 ...20.4.1 为打印预览创建XPS文档 597 20.4.2 通过XPS直接打印 到打印机 598 20.4.3 异步...

    Apress.Pro.WPF.in.C.Sharp.2008.2nd.Edition.Feb.2008

    WPF编程宝典——使用C# 2008和.NET 3.5(第2版)英文版 目录 第1章 WPF概述 1 1.1 理解Windows图形 1 1.1.1 DirectX:新的图形引擎 1 1.1.2 硬件加速与WPF 2 1.2 WPF:高级API 4 ...20.1.4 打印文档 ...

    VC++编程指南(中文版).chm

     8.6打印和打印预览  8.7支持多个文档类型的文档视结构程序  8.8防止应用程序运行时创建空白窗口  8.9小结 第九课 创建用户模块  9.1用户模块  9.2静态连接库  9.3创建动态库  9.4小结 第十课 数据库编程...

    VC++可视化编程指南

     8.6打印和打印预览  8.7支持多个文档类型的文档视结构程序  8.8防止应用程序运行时创建空白窗口  8.9小结 第九课 创建用户模块  9.1用户模块  9.2静态连接库  9.3创建动态库  9.4小结 第十课 数据库编程...

    IDL帮助(中文).doc

    在显示窗口中定位图像 72 从显示器中读取图像 75 IDL中基本的图像处理 75 直方图均衡化 76 平滑图像 77 增强图像棱边 79 图像的频域滤波 80 第四章 图形显示技术 83 本章概要 83 IDL的颜色运用 83 使用索引颜色模式...

    vc++ 开发实例源码包

    自绘了CListCtrl 控件,实现了其它控件阙套到List中并自绘等。主要的实现在CListReport类中。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Drawing 演示了其它控件(全部)阙套到List中并自绘等,...

    vc++ 应用源码包_1

    自绘了CListCtrl 控件,实现了其它控件阙套到List中并自绘等。主要的实现在CListReport类中。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Drawing 演示了其它控件(全部)阙套到List中并自绘等,...

    vc++ 应用源码包_2

    自绘了CListCtrl 控件,实现了其它控件阙套到List中并自绘等。主要的实现在CListReport类中。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Drawing 演示了其它控件(全部)阙套到List中并自绘等,...

    vc++ 应用源码包_6

    自绘了CListCtrl 控件,实现了其它控件阙套到List中并自绘等。主要的实现在CListReport类中。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Drawing 演示了其它控件(全部)阙套到List中并自绘等,...

    vc++ 应用源码包_5

    自绘了CListCtrl 控件,实现了其它控件阙套到List中并自绘等。主要的实现在CListReport类中。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Drawing 演示了其它控件(全部)阙套到List中并自绘等,...

    vc++ 应用源码包_3

    自绘了CListCtrl 控件,实现了其它控件阙套到List中并自绘等。主要的实现在CListReport类中。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Drawing 演示了其它控件(全部)阙套到List中并自绘等,...

    IDL入门教程.doc

    在显示窗口中定位图像 72 从显示器中读取图像 75 IDL中基本的图像处理 75 直方图均衡化 76 平滑图像 77 增强图像棱边 79 图像的频域滤波 80 第四章 图形显示技术 83 本章概要 83 IDL的颜色运用 83 使用索引颜色模式...

    DotNetTextBox所见即所得编辑器控件 v3.3.1

    3) 修正使用showModalDialog模态窗口打开控件所在页面时控件无法使用的BUG。 <br> 2007/7/31 Version 3.2.6 Free <br>Updates: 1) 修正插入信纸功能中插入空白之后右键菜单失效的BUG。 2) ...

    IDL编程技术(一本入门及提高的宝典书籍)

    本书中所用的 IDL 程序和数据文件.......................................................................... 13 安装程序和数据文件...........................................................................

Global site tag (gtag.js) - Google Analytics