<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 303  文章 - 883  trackbacks - 0
    <2007年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    歡迎光臨! 
    閑聊 QQ:1074961813

    隨筆分類(357)

    我管理的群

    公共blog

    • n維空間
    • Email : java3d@126.com 群 : 12999758

    參與管理的論壇

    好友的blog

    我的其他blog

    朋友的網(wǎng)站

    搜索

    •  

    最新評論

    大家晚上好啊! 我是尋覓!

           
             前幾天,網(wǎng)友遇到一個用Java實現(xiàn) word 轉(zhuǎn)換成 pdf 的問題。悲哀,本人解決不了!
    后來網(wǎng)友解決了問題,找到本人,本人在這里謝謝那個網(wǎng)友!下面會介紹他的blog希望
    大家沒事去看看,支持支持!謝謝!

    匿名網(wǎng)友的blog:http://blog.csdn.net/gavin_sw/archive/2007/04/11/1561254.aspx

      好了,進(jìn)入正題 :

    其實,本人之所以失敗,和代碼沒關(guān)系;問題出在下面的設(shè)置上,本人因為沒有
    仔細(xì)閱讀方法中的設(shè)置部分,導(dǎo)致失敗!希望大家看完這個文,能避免我的錯誤;

    本人把問題的解決分成多步,用最詳細(xì)的內(nèi)容讓大家一步成功?。?!祝大家好運?。。。?!

    1》要用到的軟件
                  (1)Adobe Acrobat 8 Professional (最低版本7.03)
                            (個人非商業(yè)使用)8.0破解版下載地址:    
    http://green.crsky.com/soft/2205.html (記得下載補(bǔ)丁)
                                安裝文件 http://down1.greendown.cn//200611/AcroPro80_efg.rar
                                破解          http://soft.greendown.cn//200611/AcroPro80_Crack.rar
                  (2)gs811w32.rar  (PDF轉(zhuǎn)換時所需要的腳本ps)
                              
    http://www.allmail.com.cn/gs811w32.rar
                  (3)postscript.rar (PDF虛擬打印機(jī)的驅(qū)動)
                             
    http://www.pdfhome.com.cn/Resource/DownLoad/postscript.rar
                 (4)jacob.jar
                          
    jacob_1.9.zip 
                 (5)office 2003
     
    2》原理
                                                 jacob.jar
                  doc -> ps ->pdf     >>>>   office 2003 ->gs811w32->Adobe Acrobat 8->postscript->打印機(jī)

                     
     (其中關(guān)于jacob,jar的安裝請看:jacob使用入門及問題解析)    

    3》安裝運行
                   (1)安裝   Adobe Acrobat 8 Professional 
                               
                   (2)安裝   gs811w32.rar 
                                
                   (3)配置打印機(jī)(這里不需要真實的打印機(jī))
                      控制面板》  打印機(jī)及其他硬件》打印機(jī)和傳真》添加打印機(jī)
                    (如果添加時顯示“操作無法完成。打印后臺程序服務(wù)沒有運行。”
                      請打開控制面板》性能和維護(hù)》管理工具》服務(wù)》找到“Print Spooler”
                     》右擊屬性》啟動)》選擇本地打印機(jī)(如果沒有打印機(jī)請將“檢測并安裝
                     即插打印機(jī)”的鉤去掉)》下一步》選擇“使用以下端口”
                    (My Document/*.pdf  (Adobe PDF Port))》下一步 選擇打印機(jī)》我選擇
                      的是Apple的 Color LaserWriter 12/600(工作后,有錢一定要買個Apple  hp)
                     》下一步(記住打印機(jī)的名字:Apple Color LaserWriter 12/600)
                     》下一步(沒有打印機(jī)的朋友請選擇:不測試)
                                          
                  (4)安裝 postscript.rar (安裝時,注意每一步,選擇與前面設(shè)置相關(guān)的選項)
                               
                 (5)設(shè)置Adobe Acrobat 8 Professional:選擇一個pdf文件,右擊打開方式選擇
                     使用 打開Adobe Acrobat 8 Professional》選擇file菜單》Print Setup...》打印選項
                     屬性“Apple Color LaserWriter 12/600”》確定
                               
                   (6)運行下面的代碼:


    代碼:(相信大家已經(jīng)看到成功的曙光了,有問題請留言,或找本人,QQ:492006004
                      歡迎加入我管理的群:37486623)

    /**
     * 
    @author XuMing Li
     * 
     * 
    @version 1.00, 2007-4-9
     *  
     
    */

    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.ComThread;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;
    public class D2P {
        
    private ActiveXComponent wordCom = null;

        
    private Object wordDoc = null;

        
    private final Variant False = new Variant(false);

        
    private final Variant True = new Variant(true);

        
    /** *//**
         * 打開word文檔
         * 
         * 
    @param filePath
         *            word文檔
         * 
    @return 返回word文檔對象
         
    */

        
    public boolean openWord(String filePath) {
            
    //建立ActiveX部件
            wordCom = new ActiveXComponent("Word.Application");

            
    try {
                
    //返回wrdCom.Documents的Dispatch
                Dispatch wrdDocs = wordCom.getProperty("Documents").toDispatch();
                
    //調(diào)用wrdCom.Documents.Open方法打開指定的word文檔,返回wordDoc
                wordDoc = Dispatch.invoke(wrdDocs, "Open", Dispatch.Method,
                        
    new Object[] { filePath }new int[1]).toDispatch();
                
    return true;
            }
     catch (Exception ex) {
                ex.printStackTrace();
            }

            
    return false;
        }


        
    /** *//**
         * 關(guān)閉word文檔
         
    */

        
    public void closeWord() {
            
    //關(guān)閉word文件
            wordCom.invoke("Quit"new Variant[] {});
        }


        
    /** *//**
         * * 將word文檔打印為PS文件后,使用Distiller將PS文件轉(zhuǎn)換為PDF文件 *
         * 
         * 
    @param sourceFilePath
         *            源文件路徑 *
         * 
    @param destinPSFilePath
         *            首先生成的PS文件路徑 *
         * 
    @param destinPDFFilePath
         *            生成PDF文件路徑
         
    */

        
    public void docToPDF(String sourceFilePath, String destinPSFilePath,
                String destinPDFFilePath) 
    {
            
    if (!openWord(sourceFilePath)) {
                closeWord();
                
    return;
            }

            
    //建立Adobe Distiller的com對象
            ActiveXComponent distiller = new ActiveXComponent(
                    
    "PDFDistiller.PDFDistiller.1");
            
    try {
                
    //設(shè)置當(dāng)前使用的打印機(jī),我的Adobe Distiller打印機(jī)名字為"Adobe PDF"
                wordCom.setProperty("ActivePrinter"new Variant("MS Publisher Color Printer"));
                
    //設(shè)置printout的參數(shù),將word文檔打印為postscript文檔。目前只使用了前5個參數(shù),如果要使用更多的話可以參考MSDN的office開發(fā)相關(guān)api
                
    //是否在后臺運行
                Variant Background = False;
                
    //是否追加打印
                Variant Append = False;
                
    //打印所有文檔
                int wdPrintAllDocument = 0;
                Variant Range 
    = new Variant(wdPrintAllDocument);
                
    //輸出的postscript文件的路徑
                Variant OutputFileName = new Variant(destinPSFilePath);

                Dispatch.callN((Dispatch) wordDoc, 
    "PrintOut"new Variant[] {
                        Background, Append, Range, OutputFileName }
    );
                System.out.println(
    "由word文檔打印為ps文檔成功!");
                
    //調(diào)用Distiller對象的FileToPDF方法所用的參數(shù),詳細(xì)內(nèi)容參考Distiller Api手冊
                
    //作為輸入的ps文檔路徑
                Variant inputPostScriptFilePath = new Variant(destinPSFilePath);
                
    //作為輸出的pdf文檔的路徑
                Variant outputPDFFilePath = new Variant(destinPDFFilePath);
                
    //定義FileToPDF方法要使用adobe pdf設(shè)置文件的路徑,在這里沒有賦值表示并不使用pdf配置文件
                Variant PDFOption = new Variant("");
                
    //調(diào)用FileToPDF方法將ps文檔轉(zhuǎn)換為pdf文檔
                Dispatch.callN(distiller, "FileToPDF"new Variant[] {
                        inputPostScriptFilePath, outputPDFFilePath, PDFOption }
    );
                System.out.println(
    "由ps文檔轉(zhuǎn)換為pdf文檔成功!");
            }
     catch (Exception ex) {
                ex.printStackTrace();
            }
     finally {
                closeWord();
                wordCom
    =null;                        
                
    //釋放在程序線程中引用的其它com,比如Adobe PDFDistiller                        
                ComThread.Release(); 
            }

        }


        
    public static void main(String[] argv) {
            D2P d2p 
    = new D2P();
            d2p.docToPDF(
    "d:/12.doc""d:/1p.ps""d:/1p.pdf");
                        
    //這里是你建一個叫12.doc的word文檔,生成的文檔將在D盤下
                        
    //1p.ps和1p.pdf(這是我們要的)
        }

    }


                                             
     




    地震讓大伙知道:居安思危,才是生存之道。
    posted on 2007-04-12 20:08 小尋 閱讀(1884) 評論(4)  編輯  收藏 所屬分類: j2se/j2ee/j2me

    FeedBack:
    # re: 用jcob實現(xiàn) word to pdf ~~~~~~~~~~~ 謝謝網(wǎng)友幫助 2007-04-13 19:37 batxut
    不錯,有用到的時候再拿來參考.
    不過有個小問題:你提供的匿名網(wǎng)友的Blog鏈接打不開,會不會是給出的鏈接有錯!  回復(fù)  更多評論
      
    # re: 用jcob實現(xiàn) word to pdf ~~~~~~~~~~~ 謝謝網(wǎng)友幫助 2007-04-13 22:18 幻想~@@~
     我試過了,可以打開;
    可能是DNS的問題吧!
    你可以換個地方上網(wǎng)試試!
    謝謝你的支持!
    祝你成功!??!
      回復(fù)  更多評論
      
    # re: 用jcob實現(xiàn) word to pdf ~~~~~~~~~~~ 謝謝網(wǎng)友幫助 2007-05-04 10:50 虎威
    好東西啊
    不過那個運行代碼 在哪里運行?。??  回復(fù)  更多評論
      
    # re: 用jcob實現(xiàn) word to pdf ~~~~~~~~~~~ 謝謝網(wǎng)友幫助 2007-05-05 07:27 幻想~@@~
    按照步驟一步一步的去做就能完成  回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲高清日韩精品第一区| a视频免费在线观看| 爱情岛论坛网亚洲品质自拍| 国产啪精品视频网站免费尤物| 亚洲入口无毒网址你懂的| 亚洲国产精品激情在线观看| 国产精品色拉拉免费看| 日韩精品视频在线观看免费| 久久亚洲熟女cc98cm| 久久亚洲精品无码VA大香大香| 亚洲精品电影在线| 亚洲女同成av人片在线观看| 午夜福利不卡片在线播放免费| 手机看片国产免费永久| 两个人看的www高清免费观看| 亚洲免费人成在线视频观看 | 成人毛片免费视频| 午夜精品免费在线观看| 一级成人毛片免费观看| 亚洲一线产品二线产品| 亚洲六月丁香六月婷婷色伊人| 亚洲处破女AV日韩精品| 中文字幕亚洲综合久久男男| 国产成人免费全部网站 | 青娱乐在线视频免费观看| 亚洲国产日韩视频观看| 亚洲黄色免费网站| 精品亚洲456在线播放| 亚洲国产精品成人综合色在线| 亚洲一区在线视频| 亚洲成a人片在线观看中文!!!| 亚洲日本一区二区三区| 亚洲s色大片在线观看| 亚洲国产三级在线观看| 亚洲一区无码中文字幕| 久久免费观看国产精品| 福利免费在线观看| 免费成人福利视频| 久久久久久国产精品免费免费男同| 久久99国产乱子伦精品免费| a毛片在线还看免费网站|