web页面导出为word文档后分页&横向打印的方法 -凯发k8网页登录

专注于javaweb开发
随笔 - 39, 文章 - 310, 评论 - 411, 引用 - 0
数据加载中……

web页面导出为word文档后分页&横向打印的方法

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

<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(""00);

                    
//横向打印设置部分
                    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(01);
                    
//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>

执行此脚本一定要打开"对没有安全验证的active 控件 " 为启用状态.(ie选项)

posted on 2008-08-20 11:34 々上善若水々 阅读(10146) 评论(14)    

# re: web页面导出为word文档后分页&横向打印的方法   回复     

赞!!!找了很久终于找到了!谢谢分享!!!!
2008-09-08 21:40 |

# 发现问题!这样作打印预览确实是正确的,可是打印出来还是纵向的呀!   回复     

请大侠赐教!
2008-09-17 12:26 |

# re: web页面导出为word文档后分页&横向打印的方法   回复     

不会吧。这个在我项目中已经成功应用了。
2008-09-17 15:12 | 々上善若水々

# re: web页面导出为word文档后分页&横向打印的方法   回复     

我没有写“odc.saveas("test.doc");”这一步,打印出来确实是纵向,楼主可以试一下。难道非要保存一下?还有一个问题,我这里发现有个别机器,作这样的导出word时,导出到word里的表格不按照程序预先设定好的表格的行高列宽,不知道是不是ie里面有什么设置。不知道楼主碰到过这种问题没有??谢谢赐教!!
2008-12-30 15:49 |

# re: web页面导出为word文档后分页&横向打印的方法   回复     

@kikinancy
这个完全是用vba做的,需要看你的浏览器对vba的支持了,还有就是本机必须装好word.
2008-12-31 08:34 | 々上善若水々

# re: web页面导出为word文档后分页&横向打印的方法   回复     

谢谢楼主的及时回复!能不能详细说一下ie里关于vba的设置在哪里啊?或者是升级一下ie应该能解决?多谢多谢!
2008-12-31 17:29 |

# re: web页面导出为word文档后分页&横向打印的方法   回复     

我的是 ie6 你的是什么版本啊。
2008-12-31 17:57 | 々上善若水々

# re: web页面导出为word文档后分页&横向打印的方法   回复     

也是ie6啊,我再重装一遍ie试试
2009-01-04 11:23 |

# re: web页面导出为word文档后分页&横向打印的方法   回复     

找了很久终于找到了!太感谢了!!!!
2009-07-17 11:56 |

# re: web页面导出为word文档后分页&横向打印的方法   回复     

能不能不要设置分页符,根据内容的多少自动分页的啊?
2009-11-06 13:39 |

# re: web页面导出为word文档后分页&横向打印的方法   回复     

感觉一点按钮,就把文档打开,太不友好了。
能不能做成只下载呢?
2009-11-06 15:25 |

# re: web页面导出为word文档后分页&横向打印的方法   回复     

@苏打饼干
可以.查询vbs函数.
2009-11-06 15:51 | 々上善若水々

# re: web页面导出为word文档后分页&横向打印的方法   回复     

@々上善若水々
从没做过这种,看着都有点困难。。。
还是想别的办法吧。。
2009-11-06 16:04 |

# re: web页面导出为word文档后分页&横向打印的方法   回复     

在本地测试可以打印,为什么发布到服务器上就不可以了?
2013-08-17 10:54 |

只有注册用户后才能发表评论。


网站导航:
              
 
网站地图