IE浏览器打印预览只打印第一页

react项目内,要兼容不同的浏览器实现打印、打印预览功能,非IE浏览器统一采用了window.print()方法,IE浏览器采用它自带的ActiveX。代码如下:

const Wtest = (props) =>{
const printOpeation = (val) => {
        switch (val) {
            case 1:
                //点击打印
                if (!!window.ActiveXObject || "ActiveXObject" in window) {
                    document.getElementById("factory").printing.portrait = true;//设置打印方向
                    document.all.WebBrowser.ExecWB(6, 1)
                } else {
                    print('printDiv')
                }
                break;
            case 2: //打印预览
                if (!!window.ActiveXObject || "ActiveXObject" in window) {
                    document.getElementById("factory").printing.portrait = true;//设置打印方向
                    document.all.WebBrowser.ExecWB(7, 1)
                } else {
                    print('printDiv')
                }
                break;
            default:
                break;
        }
    }
    //打印
    const print = (id) => {
        var newstr = document.getElementById(id).innerHTML;
        var oldstr = document.body.innerHTML;
        document.body.innerHTML = newstr;
        window.print();
        document.body.innerHTML = oldstr;
        //此处针对需求写的,可不写
        if (myBrowser() !== 'Chrome') {
            window.location.reload();
        }
    }
	return(
       <div style={{ width: '600px', margin: 'auto', padding: '20px 0', display: propsData.type ? 'inline-block' : 'block' }}>
       {/* 将不打印的内容设置noprint样式 */}
         <div style={{ textAlign: 'center' }} className="Noprint">
             <object id="WebBrowser" classID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" style={{ height: 0, width: 0 }}>
             </object>
             <input type="button" style={{ marginRight: 8 }} value="打印" onClick={() => printOpeation(1)} />
             <input type="button" style={{ marginRight: 8 }} value="打印预览" onClick={() => printOpeation(2)} />
        </div>
        <div id='printDiv'>
        打印的内容
        </div>
	)
}

主要代码如上所示,在非IE浏览器内都没有什么问题,window.print()自带预览,也可正常打印,但在IE浏览器内打印预览时只显示第一页的内容,打印也只有一页,研究很久发现是react的问题。
react组件内使用IE的ActiveX会导致多页打印时只显示一页!!!
目前采用的解决办法是针对IE浏览器单独写了一份要打印的页面的html文件,文件内全部采用原生的方法,将文件放入public文件夹内,打包后文件也会存在。
我的项目内在进入打印页面前有一个点击操作,在这里判断浏览器类型,然后直接进入不同的页面。

if (!!window.ActiveXObject || "ActiveXObject" in window) { //判断是否为IE浏览器
    sessionStorage.setItem('IEDatasource', xxx);//可以将需要的数据存进sessionStorage
    window.open('about:blank').location.href = `http://${window.location.host}/IEPage.html`;
    return;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件名称:优影文件整理 1。5版 软件功能简介: 本软件主要用于大量音乐或是电影类文件批量整理,同时也可用于电脑内的重复文件清除。 图片文件添加水印,电子书(TXT格式)添加水印,音乐文件(MP3格式)添加水印等。 为文件号进行加编号操作,可自定义编号起始数值,可将文件名编号导入到优影手机下载系统中作为优影序号使用。 详细说明 一、快分到文件夹 说明:下载店经常会收售大量的音乐文件和MTV文件,通常音乐文件都是按歌手分文件夹,每一位歌手一个文件夹,这样的整理一目了然,是一种良好的整理习惯,然而歌手有上千位,就需要上千上文件夹,如果一个一个手工方式来划分将是一缓慢的过程。此程序可以方便的自动将某位歌手歌曲分类到相应的文件夹下,全自动进行,比手工操作的速度快上百倍。 操作前准备:新歌在专业网站下载得到,文件名通常都带有歌手名。例如:“梅艳芳-女人花.mp3”、“你对我的好-孙楠.mp3”只有这样的歌曲才能被整理到,先手工建立了“梅艳芳”、“孙楠”文件夹,按下面步骤即可操作。为了提高速度歌手文件夹与新增的音乐放在同一个磁盘分区。 操作步骤 步骤一 指定歌手文件夹的目录(所有歌手文件夹都请放在同一个文件夹下,这样才方便操作,如果那位歌手没有文件夹需要手工添加,建立该歌手名的文件夹。) 步骤二 指定新歌存放目录 步骤三 点击[开始整理]按钮。即开始自动完成。 二、相似文件名去重 说明: 重复文件是大量数据收集一个常见问题。 重复文件有两种: 一是文件完全重复,数据指纹完全一样,可能文件名不一同。这种文件很好处理,优影下载系统,在数据采集时会自动整理出来,并提示删除。 二是文件名相同或相似文件数据指纹不同,这样的文件处理就很复杂,本程序就是来处理这种文件的。 小知识:什么是数据指纹?数据指纹就是一个文件内容的特征,理论上是没有重复的,出现重复就只有一种可能,就是文件复制前、后的两个文件,数据指纹会相同。数据指纹与文件名没有关系。 操作前准备: 无需要准备 操作步骤: 数据扫描 在主窗口点击“一、扫描”钮,对文件进行扫描 几个与扫描相关的选项 1、一次最好只处理一个文件格式,如果没有的格式可以自行添加,如果为空就会处理所有文件格式(不推荐) 2、可以开启数据指纹识别,直接删除重复文件(这个功能优影手机下载系统也有,是一样的) 3、可以开启自动建立文件夹选项,当一位歌手音乐超过了多少首就自动建立文件。 扫描完成后几个操作 1、重复文件删除(数据指纹相同):内容重复文件会显示表格中,在表格中点右键会弹出[删除菜单],可以批量删除或一个一个文件删除重复的文件。 2、高频字屏蔽:高频字通常可以认为是歌手名(周杰伦、刘德华等)也可能是音乐类型名称(钢琴、二胡、轻音乐等),这些字屏蔽后会加快后面手工删除的速度。自动勾选屏蔽关键字不太准确,请手工一个个指定比较适合,因为有些歌名也会多次出现,这些不要屏蔽,要清除的就是这些文件。 扫描完成后就可以进行文件名相似文件删除操作 相似文件名删除:有手动模式和自动模式,手动模式极为可靠但是速度慢,自动模式速度快但是可靠性差,两种方式配合使用。对于原始的数据,先用手动模式进行删除。新增文件内容用自动模式进行删除,是一种极为合理的方式。 1、手动模式删除:主要使用快捷键操作 快捷键表:在删除操作使用快捷键可以很方便的进行快速度操作 开始分析 = 回车键 选择文件 = 数字键 反向选择文件 = 减号键“-” 上一个分析 = PageUp键 下一个分析 = 回车键 或 PageDown键 播放 = 加号键“+” 或 “P键” 删除 = del键 加入高频字=F11或 F12键 自定义高频字=F9或 Insert键 2、自动删除模式注意事项:自动删除极为快速,因为是自动的会有很多误删除的文件,不是很可靠,为了运行可靠,需要设置后再运行。 (1)一定要设置保护目录,在保护目录中的文件不会被删除。在实际应用中可以对原有数据先进行手动模式删除,然后对这个文件夹设置为保护目录,所有新歌放在置在另一个目录,这样在自动删除时会只删除新歌中的文件,而不会删除原有数据。 (2)选中备份删除文件,这些文件是本软件自动删除的文件,有可能会删除一些不该删除的文件,这里查看后,再真正删除比较保险。 三、txt文件批量添加水印 说明:用于批量添加 电子书 txt 格式的水印 以及去除水印 操作前准备:无需准备 操作步骤:设置好要添加的内容,可以是TXT首部和尾部分别添加,添加的内容自定义,同时进行了去除操作,一键完成。 四、图片文件批量添加水印 说明:用于批量添加 图片 bmp gif jpg tjff png 格式的水印,对GIF动画文件添加水印后动画会丢失,对于PNG文件透明层也有可能会丢失。加水印后图片尺寸不会改变。 操作前准备:无需准备 操作步骤:设置好要添加的字符,可以选择图片上要加字符的位置 ,一键完成。 五、批量修改 音乐 mp3 格式的ID3v1v2信息 说明:用于批量修改 音乐 mp3 格式的ID3v1v2信息 操作前准备:如果音乐文件已经在 优影下载系统 中已经采集并且打印了歌本,那么请不修改ID3v1v2信息,这样会造成同一个文件出再两个序号,而且打印的歌本有可能作费。 操作步骤:设置好要内容,一键完成。 六、文件名加编号 以及 将文件编号导入到优影作为序号使用 说明: 对文件名进行编号,编号可放置在文件名的前部或后部,自定义编号起始号;将已编号的文件导入到优影下载系统中作为序号(优影下载系统默认只可以用序号进行搜索,而优影序号是自动生成,无法人工设置起始号),实现人工设置起始序号。 (1)文件名及文件夹加编号(文件夹编号是新功能) 操作前准备:要编号的文件最好放在同一层目录中,如果文件有原编号,最好先去掉;不必要字符也可以分多次在文件名中删除; 选择文件格式: 本软件支持所有文件格式,下拉列表中没有的格式可以自定义,为空就是会为所有文件分配编号(不推荐,一次最好只操作一种文件格式) 编号前辍及间隔符:例如 :前辍是 “A”,生成编号是“1234” , 文件名“千里之外.MP3”生编号后文件名就是“A1234千里之外.MP3”。如果间隔符为“-” 生编号后文件名就是“A1234-千里之外.MP3” 字符清除及替换:输入要清除的字符,可是一个字,也可以是一个词,如果“替换已清除字符”框中没有内容,那么就是清除了。例如:“要清除字符”框中写入“A”,会将“AA千里之外.MP3”文件名改成“A千里之外.MP3”。要去掉第二个A需要再扫描一次,多个字符如此类推;如果“替换已清除字符”框中输入“B”就会将文件名改成“BB千里之外.MP3”。 编号前后:可以设置成“1234-千里之外.MP3”或是““千里之外-1234.MP3”样式;在进行字符清除替换时,最好选择“不进行编号”。 去除原有编号:设定去除前编号或是后编辑,如果前后都有则需要分两次去除。如果有编号的前辍的,要先用“字符清除”清除了前辍,再清除前或后编号。 操作步骤:所有设定可以组合设置,也可以一次设置一项,点击“文件扫描编号”键,一键完成。 (2)将编号导入到优影下载系统,成为优影的序号 为了说明方便,我们将文件名上的号称为编号,称优影下载系统的号为序号 操作前准备:所有文件都已有编号,而且编号不能重复,编号不能加前辍,如果有前辍请先去除。 说明:因为优影下载系统不充许出现重复序号,所以有重复的编号文件,只会导入一个文件到优影中。进行导入时原优影数据库内所有文件信息会被删除,优影原来序号会失效,如果用优影采集了大量文件而且已经打印成歌本,请不进行导入操作。 操作步骤: 步骤一、点击“文件扫描入本地数据库”钮,将所有文件先扫描一次,文件信息会存放在本软件数据库中,如果文件在多个盘符上,可分多次扫描。根据编号情况,选择取前或是取后编号,也可用自动方式。 步骤二、点击“导入到优影库中”钮,这时会要求指定优影下载系统的数据库,优影数据库默认在 优影软件的安装目录下的 udata 文件夹中的 udata.db文件是优影的数据库文件。一键完成。 (3)电影,连续剧零散文件自动建立文件夹 很多下载店用户电影用连续都在一个文件夹下,这样文件整理方式极为不方便,为了便于在优影下载系统中下载和计费,需要每一部电影和连续剧建立一个文件夹,方便下载。 七、文件打印目录生成(增加图片打印册生成 和 电影连续剧的彩页生成) 所有操作都要指定相应文件夹,文件夹下层多层文件夹软件会自动处理,生成的htm文件在本软件的安装目录,可以在IE浏览器中直接打印,在打印前先通过文件打印预览查看文件,如果有示显示部分就需要调整页边距后所有内容就会正常显示及打印。 要注意事项: 1、如果有文件名编号要求,当然先用文件名编号工具生成编号后再打印。编号提取有选项,请注意查看。 2、文件编号提取有多个选项,可以尝试,这里不会修改文件名,只是管理打印出来的样式。例如“千里之外-1234.mp3”提取编号会在打印时显示为 “1234-千里之外-1234.mp3”或是“1234-千里之外.mp3” 。这都是看个人喜好。 3、电影带图片打印要符合以下方法,才能自动取出来电影图片和内容提要:每一部电影要有一个单独的文件夹,文件夹名称就是电影名称,这个文件夹中除了放置电影主文件(3gp,mp4,avi等格式文件),还需要放置一张这部电影海报图片(可以是jpg,bmp,gif格式)和内容提要文件(是txt格式),符合这样的情况就能生成出来漂亮的电影本。 4、如果选择了“图片高度自适应”那么打印出来图片就不会变形。 5、关于“网络获取电影的图片和内容” 这是付费注册用户功能,要求第一部电影一个文件夹,然后本程序会自动在优影服务器寻找电影的海报图片和内容提要文件,并且自动下载到这部电影的文件夹中。有些电影可能会找不到,就需要手工添加,电影的海报图片(jpg,bmp,gif格式)和内容提要文件(txt文件)到本电影的文件夹中。为了提高成功率电影文件夹名称一定要规范,除了电影名字外不要有其它的字,这样有利获取的成功率。 常用页面设置: 默认A4纸张 上、下、左、右页边距都是19。5,如果边距有变化,要相调高度和宽度 一页10部电影 两列 高度194 宽322 一页5部电影 一列 高度194 宽650 一页3部电影 一列 高度323 宽650 因为所有参数可调,本软件适应任意大小纸张,生成好了,在打印预览中看到满意了再打印。 八、注册说明 本软件用注册码方式注册,注册时要联网才能注册成功,一个注册码在注册后就会与本机的硬件绑定 (同时绑定 cpu 主板 网卡),在其它电脑上此注册码会无效。每个注册码都有一次换硬件的机会,也就是说注册后更换了cpu 主板 网卡,还可以注册一次。同一台电脑没有换硬件,多次注册也只算一次。重装系统,换硬盘等,对注册码都没有影响。 注册码购买联系: 官方主页 http://www.dh36.com 手机 13085201168 QQ:274452956 张伟斌
书名:《PHP开发实战1200例(第I卷)》(清华大学出版社.潘凯华.刘中华) PDF格式扫描版,全书分为5篇15章,共899页。2011年1月出版。 全书压缩打包成2部分,这是第2部分。 注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介   《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用PHP进行Web开发的各个方面的知识和技巧,主要包括开发环境、PHP基础、Web页面交互、文件操作、会话应用、图形图像处理及面向对象等内容。本书分为5篇15章,共计625个实例和625个经验技巧。每个实例都经作者精心筛选,具有很强的实用性,其中一些实例是开发人员难于寻觅的解决方案。    本书适合PHP的初学者,如高校学生、求职人员作为练习、速查、学习使用,也适合PHP程序员参考、查阅。 目 录 目录: 第1篇 基础篇 第1章 开发环境 2 1.1 AppServ——PHP集成化安装包 3 实例001 通过AppServ配置PHP开发环境 3 实例002 AppServ应用技巧 6 实例003 第1个PHP程序 7 1.2 XAMPP——PHP集成化安装包 8 实例004 通过XAMPP配置PHP开发环境 8 实例005 测试XAMPP是否安装成功 11 实例006 XAMPP应用技巧 12 实例007 第2个PHP程序 13 1.3 IIS+PHP+MySQL——独立搭建PHP 开发环境 14 实例008 安装PHP 14 实例009 安装MySQL 15 实例010 安装IIS 21 实例011 第3个PHP程序 23 1.4 LAMP——独立配置PHP开发环境 24 实例012 安装Apache服务器 24 实例013 安装MySQL数据库服务器 26 实例014 安装PHP.50 28 实例015 第4个PHP程序 30 1.5 XAMPP——Linux版PHP集成化安装包 31 实例016 XAMPP——Linux下PHP开发环境的集成化 31 实例017 Linux操作系统下启动XAMPP 32 实例018 设置MySQL数据库root用户的密码 33 实例019 第5个PHP程序 34 1.6 Dreamweaver开发工具 35 实例020 Dreamweaver中编码格式的选择 35 实例021 Dreamweaver中创建表格 36 实例022 在表格中插入宠物照片 38 实例023 Dreamweaver创建表单 40 实例024 Dreamweaver中创建和附加CSS样式 42 实例025 Dreamweaver控制弹出信息 45 实例026 Dreamweaver控制浏览器的窗口 46 实例027 通过Dreamweaver创建站点 47 实例028 通过Dreamweaver开发第1个PHP程序 48 1.7 Zend Studio开发工具 50 实例029 安装Zend Studio 50 实例030 Zend Studio创建PHP项目 52 实例031 Zend Studio编码格式的转换 56 实例032 Zend Studio中快捷键的运用 57 实例033 Zend Studio中部署Apache服务器 60 第2章 PHP基础 63 2.1 基本语法 64 实例034 在页面中打印PHP的配置信息 64 实例035 在页面中打印服务器时间 65 实例036 在页面中打印当前执行的PHP文件名 67 实例037 区分单引号和双引号 68 实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——变量的应用 72 实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变变量输出“I Like PHP!” 73 实例043 使用转义字符输出特殊字符 74 实例044 使用常量指定PI的值计算圆的面积 75 2.2 运算符 75 实例045 自定义数字的加密/解密算法 76 实例046 比较两个时间戳的大小 77 实例047 使用条件运算符判断数字的奇偶性 78 实例048 判断用户是否具有后台管理权限 79 实例049 打印随机组合生日祝福语 80 实例050 打印2000~2020年的所有闰年 81 实例051 前置运算符和后置运算符的区别 82 实例052 使用位运算

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值