溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
          近期項目中用到將用戶上傳的word文檔轉換為pdf文件。用java實現,于是乎在google上百度了一下。得出兩種解決方案。
          1、使用OpenOffice轉PDF;
          2、使用MS Office的OLE自動化功能;
          同樣也得到如下的帖子
          http://www.iteye.com/topic/1005741
          import java.io.File;

          import com.jacob.activeX.ActiveXComponent;
          import com.jacob.com.Dispatch;

          public class Word2Pdf {

          static final int wdDoNotSaveChanges = 0;// 不保存待定的更改。
          static final int wdFormatPDF = 17;// PDF 格式

          public static void main(String[] args) {

              String filename 
          = "D:\\workspace\\word2pdf\\src\\tests.doc";
              String toFilename 
          = filename + ".pdf";
              System.out.println(
          "啟動Word");
              
          long start = System.currentTimeMillis();
              ActiveXComponent app 
          = null;
              
          try {
                  app 
          = new ActiveXComponent("Word.Application");
                  app.setProperty(
          "Visible"false);

                  Dispatch docs 
          = app.getProperty("Documents").toDispatch();
                  System.out.println(
          "打開文檔" + filename);
                  Dispatch doc 
          = Dispatch.call(docs,//
                          "Open"//
                          filename,// FileName
                          false,// ConfirmConversions
                          true // ReadOnly
                          ).toDispatch();

                  System.out.println(
          "轉換文檔到PDF" + toFilename);
                  File tofile 
          = new File(toFilename);
                  
          if (tofile.exists()) {
                      tofile.delete();
                  }
                  Dispatch.call(doc,
          //
                          "SaveAs"//
                          toFilename, // FileName
                          wdFormatPDF);

                  Dispatch.call(doc, 
          "Close"false);
                  
          long end = System.currentTimeMillis();
                  System.out.println(
          "轉換完成..用時:" + (end - start) + "ms.");
              } 
          catch (Exception e) {
                  System.out.println(
          "========Error:文檔轉換失敗:" + e.getMessage());
              } 
          finally {
                  
          if (app != null)
                      app.invoke(
          "Quit", wdDoNotSaveChanges);
              }
          }
          }
          需要使用到的jar
          jacob.jar
          另外拷貝jacob.dll到 Windows System32目錄下
          posted on 2011-06-17 10:23 雪山飛鵠 閱讀(11081) 評論(3)  編輯  收藏 所屬分類: javase

          Feedback

          # re: java轉換word to pdf 2012-12-04 16:07
          我轉的pdf打開之后說文件錯誤不是pdf文檔。怎么辦  回復  更多評論
            

          # re: java轉換word to pdf 2013-05-10 10:59 于文峰
          openoffice轉換不了數學公式啊  回復  更多評論
            

          # re: java轉換word to pdf 2015-03-23 17:08 河北
          @邢
          解決了沒? 跟你遇到同一個問題了.....  回復  更多評論
            

          主站蜘蛛池模板: 论坛| 明水县| 合肥市| 隆安县| 克什克腾旗| 宜黄县| 开阳县| 左贡县| 新河县| 南宫市| 丰台区| 江达县| 南乐县| 常熟市| 深水埗区| 都兰县| 巫溪县| 施甸县| 枞阳县| 论坛| 苍梧县| 科技| 蒙城县| 子洲县| 安吉县| 沅江市| 麦盖提县| 南昌市| 唐河县| 永川市| 拜城县| 济宁市| 扬州市| 南川市| 蓬安县| 沙洋县| 溧水县| 大港区| 莫力| 龙门县| 鱼台县|