首页 > 其他分享 >(转)WEB页面导出为Word文档后分页&横向打印的方法

(转)WEB页面导出为Word文档后分页&横向打印的方法

时间:2023-08-02 21:34:19浏览次数:45  
标签:WEB selection Word CentimetersToPoints Application 文档 false oDC PageSetup


项目中用到了横向打印,今天重新更新了这个脚本.


<
 html
 >
 
    
 <
 HEAD
 >
 
        
 <
 title
 >
 WEB页面导出为Word文档后分页&横向打印的方法 
 </
 title
 >
 
    
 </
 HEAD
 >
 
    
 <
 SCRIPT 
 LANGUAGE
 ="javascript"
 >
 
 
                /**//**//**//*
                 * 
                 * @param {Object} cont  要导出的html元素内容的id,注意不要加双引号
                 * @param {Object} key   分页关键字
                 */
                function AllAreaWord(cont,key)
                
{
                    var oWD = new ActiveXObject("Word.Application");
                    //默认为页面视图
                    var oDC = oWD.Documents.Add("", 0, 0);

                    //横向打印设置部分
                    oDC.PageSetup.LineNumbering.Active = false;
                    oDC.PageSetup.Orientation. wdOrientLandscape =  1; //设置为横向打印
                    oDC.PageSetup.TopMargin =  oDC.Application.CentimetersToPoints(3.17);
                    oDC.PageSetup.BottomMargin =  oDC.Application.CentimetersToPoints(3.17);
                    oDC.PageSetup.LeftMargin = oDC.Application.CentimetersToPoints(2.54);
                    oDC.PageSetup.RightMargin = oDC.Application.CentimetersToPoints(2.54);
                    oDC.PageSetup.Gutter = oDC.Application.CentimetersToPoints(0);
                    oDC.PageSetup.HeaderDistance = oDC.Application.CentimetersToPoints(1.5);
                    oDC.PageSetup.FooterDistance = oDC.Application.CentimetersToPoints(1.75);
                    oDC.PageSetup.PageWidth = oDC.Application.CentimetersToPoints(29.7);
                    oDC.PageSetup.PageHeight = oDC.Application.CentimetersToPoints(21);
                    oDC.PageSetup.FirstPageTray =  0;
                    oDC.PageSetup.OtherPagesTray = 0;
                    oDC.PageSetup.SectionStart =  2;
                    oDC.PageSetup.OddAndEvenPagesHeaderFooter = false;
                    oDC.PageSetup.DifferentFirstPageHeaderFooter = false;
                    oDC.PageSetup.VerticalAlignment = 0;
                    oDC.PageSetup.SuppressEndnotes = false;
                    oDC.PageSetup.MirrorMargins = false;
                    oDC.PageSetup.TwoPagesOnOne = false;
                    oDC.PageSetup.BookFoldPrinting = false;
                    oDC.PageSetup.BookFoldRevPrinting = false;
                    oDC.PageSetup.BookFoldPrintingSheets = 1
                    oDC.PageSetup.GutterPos = 0;
                    oDC.PageSetup.LayoutMode = 2;

                    var oRange = oDC.Range(0, 1);
                    //var oRange1 = oDC.Range(0,2);
                    var sel = document.body.createTextRange();
                    //参数为html元素id 
                    sel.moveToElementText(cont);
                    sel.select();
                    sel.execCommand("Copy");
                    oRange.Paste();
                    oWD.Application.Visible = true;
                    //得到打开后word的selection对象
                    var selection = oWD.Selection;
                    //设置字体大小
                    selection.Font.Size = 10;
                    //ctrl+A 全选操作
                    selection.WholeStory();
                    //清除格式
                    selection.Find.ClearFormatting();
                    //指定查找关键字
                    selection.Find.Text = key;
                    //^m为手动分页符标记
                    //向下查找
                    selection.Find.Forward = true;
                    selection.Find.Wrap = 1;
                    //不区分大小写
                    selection.Find.MatchCase = false;
                    //不匹配整个单词
                    selection.Find.MatchWholeWord = false;
                    //如果找到指定字符串返回真,否则返回false
                    while (selection.Find.Execute()) 
                    
{
                        //插入分页符,分页符常量为7,具体可查word api
                        selection.InsertBreak(7);
                    }
                    
                    //保存word文档为test.doc
                    oDC.SaveAs("test.doc");
                }
    
 </
 SCRIPT
 >
 
    
 <
 body
 >
 
        
 <
 BR
 >
 
        
 <
 div 
 id
 ="test"
 >
 
            aaa
            ^
            bbb
            ^
            ccc
        
 </
 div
 >
 
        
 <
 input 
 type
 ="button"
  onclick
 ="javascript:AllAreaWord(test,'^');"
  value
 ="导出页面指定区域内容到Word"
 />
 
    
 </
 body
 >
 
 </
 html
 >

标签:WEB,selection,Word,CentimetersToPoints,Application,文档,false,oDC,PageSetup
From: https://blog.51cto.com/u_14230175/6943261

相关文章

  • WEB 2.0是什么(转)
    【导语】BloggerDon在他的“WEB2.0概念诠释”一文中提到“Web2.0是以Flickr、Craigslist、Linkedin、Tribes、Ryze、Friendster、Del.icio.us、43Things.com等网站为代表,以Blog、TAG、SNS、RSS、wiki等社会软件的应用为核心,依据六度分隔、xml、ajax等新理论......
  • WEB服务器
    1.web服务器也成为网页服务器或HTTP服务器2.web服务器协议是HTTP协议或https协议3.HTTP协议端口号:TCP80,HTTPS端口号:TCP443,FTP端口号:TCP234.web服务器发布软件:微软:IIS(可以发布web网站和FTP站点)Linux:Apache/LAMP/Tomacat/nginx........ 第三方:phpstudy,XAMPP(测试) FTP......
  • 利用ZoomEye探索互联网hikvision摄像头——直接htp://www.zoomeye.org/search?q=DVRDV
    实践了下,zoomeye或者shodan都可以!还是很吓人的...         然后随便点击一个就进去了。。。 利用ZoomEye探索互联网hikvision摄像头2021年4月2日某天使用IISPUTSCANNER扫描C段观察HTTPBANNER为DVRDVS-Webs点开后发现为hikvision摄像头的WEB端于是乎想到了知道创宇......
  • 老杜 JavaWeb 讲解(十七) ——JSP补充
    (十六)JSP补充相关视频:49-JSP的page指令以及九大内置对象和EL表达式指令指令的作用:指导JSP的翻译引擎如何工作(指导当前的JSP翻译引擎如何翻译JSP文件。)指令包括哪些呢?include指令:包含指令,在JSP中完成静态包含,很少用了。(这里不讲)taglib指令:引入标签库的指令。这个到JS......
  • CTFer成长记录——CTF之Web专题·极客大挑战—Upload
    一、题目链接https://buuoj.cn/challenges#[%E6%9E%81%E5%AE%A2%E5%A4%A7%E6%8C%91%E6%88%98%202019]Upload二、解法步骤  本题是一个文件上传题目,先测试是黑名单还是白名单:随便上传一个文件,提示:  看来只能上传图片类型,这个时候我们bp抓包并且修改包中的content字段,将其改......
  • 怎样在Apipost中设计出实用又好看的API文档
    Apipost一直推荐文档先行的API设计理念,在Apipost中可以添加Markdown格式的文本,用以储备文档和API文档设计。作为一种轻量级标记语言,Markdown在撰写文档、博客文章、README文件以及网站内容上被广泛使用。如何在Apipost中设计出漂亮的文档?Apipost近期发布的7.1.9版本更新中,Apipos......
  • 软件测试|web自动化测试神器playwright教程(十二)
    前言在日常工作中,我们经常是基于某个测试环境地址去测试某个项目,所以应该把它单独拿出来做为一个全局的配置。其他网址可以使用不同的后缀,只使用相对地址。常见情景比如我们的社区,不同的类别只需要改变我们的后缀即可,如下图:首页地址为:https://ceshiren.com/,我们选择查看热门......
  • 软件测试|web自动化测试神器playwright教程(十三)
    前言我们在工作中,会遇到需要使用不同的硬件设备测试兼容性的问题,尤其是现在手机型号,屏幕大小分辨率五花八门的,我们基本不可能全部机型都用真机测试一遍,playwright提供了模仿机型的功能,我们可以使用playwright来模拟设备。设置手机模式配置需要模拟的设备,我们需要配置我们使用的......
  • 软件测试|web自动化测试神器playwright教程(十四)
    前言我们在日常工作中,经常会遇到下面的情况,我们需要在一个下拉框中选择一个选项:在使用selenium定位的过程中,我们可以选择使用selenium的Select类,有了playwright,我们的操作会变得更简单一些。playwright也提供了select的方法进行操作。select用法使用locator.select_option(......
  • 软件测试|web自动化测试神器playwright教程(十五)
    前言我们在日常工作中,会经常遇到弹出警告框的问题,弹框无法绕过,必须处理才可以执行后续的测试,所以弹框处理也是我们必须掌握的一个知识。弹框通常分为3种,分别为alert,confirm,promot。alert弹框:只有信息和确定按键confirm弹框:在alert弹窗基础上增加了取消按钮prompt弹框:在confi......