我的漫漫程序之旅

          專注于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 々上善若水々 閱讀(10253) 評論(14)  編輯  收藏

          評論

          # re: WEB頁面導出為Word文檔后分頁&橫向打印的方法   回復  更多評論   

          贊!!!找了很久終于找到了!謝謝分享!!!!
          2008-09-08 21:40 | kikinancy

          # 發現問題!這樣作打印預覽確實是正確的,可是打印出來還是縱向的呀!   回復  更多評論   

          請大俠賜教!
          2008-09-17 12:26 | kikinancy

          # re: WEB頁面導出為Word文檔后分頁&橫向打印的方法   回復  更多評論   

          不會吧。這個在我項目中已經成功應用了。
          2008-09-17 15:12 | 々上善若水々

          # re: WEB頁面導出為Word文檔后分頁&橫向打印的方法   回復  更多評論   

          我沒有寫“oDC.SaveAs("test.doc");”這一步,打印出來確實是縱向,樓主可以試一下。難道非要保存一下?還有一個問題,我這里發現有個別機器,作這樣的導出word時,導出到word里的表格不按照程序預先設定好的表格的行高列寬,不知道是不是ie里面有什么設置。不知道樓主碰到過這種問題沒有??謝謝賜教!!
          2008-12-30 15:49 | kikinancy

          # re: WEB頁面導出為Word文檔后分頁&橫向打印的方法   回復  更多評論   

          @kikinancy
          這個完全是用VBA做的,需要看你的瀏覽器對VBA的支持了,還有就是本機必須裝好word.
          2008-12-31 08:34 | 々上善若水々

          # re: WEB頁面導出為Word文檔后分頁&橫向打印的方法   回復  更多評論   

          謝謝樓主的及時回復!能不能詳細說一下ie里關于vba的設置在哪里啊?或者是升級一下ie應該能解決?多謝多謝!
          2008-12-31 17:29 | kikinancy

          # re: WEB頁面導出為Word文檔后分頁&橫向打印的方法   回復  更多評論   

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

          # re: WEB頁面導出為Word文檔后分頁&橫向打印的方法   回復  更多評論   

          也是ie6啊,我再重裝一遍ie試試
          2009-01-04 11:23 | kikinancy

          # re: WEB頁面導出為Word文檔后分頁&橫向打印的方法   回復  更多評論   

          找了很久終于找到了!太感謝了!!!!
          2009-07-17 11:56 | dragonwu

          # 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 | 塵封的心

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 峡江县| 甘南县| 徐州市| 来宾市| 定安县| 丰顺县| 赞皇县| 鹤庆县| 常熟市| 常德市| 安顺市| 顺平县| 绍兴县| 广元市| 柯坪县| 盐山县| 偏关县| 界首市| 十堰市| 建阳市| 民权县| 塔河县| 凌源市| 固阳县| 永寿县| 礼泉县| 资中县| 虞城县| 通河县| 富宁县| 乐陵市| 阿拉善左旗| 灌阳县| 敖汉旗| 许昌县| 中西区| 广州市| 门源| 扎兰屯市| 临泽县| 洮南市|