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

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

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

    posts - 33,  comments - 11,  trackbacks - 0

     

    項目開發(fā)過程中,需求涉及到了各種文檔轉換為HTML或者網(wǎng)頁易顯示格式,現(xiàn)在將實現(xiàn)方式整理如下:
    一、使用Jacob轉換Word,Excel為HTML

    “JACOB一個Java-COM中間件.通過這個組件你可以在Java應用程序中調用COM組件和Win32 libraries。”

    首先下載Jacob包,JDK1.5以上需要使用Jacob1.9版本(JDK1.6尚未測試),與先前的Jacob1.7差別不大

    1、將壓縮包解壓后,Jacob.jar添加到Libraries中;

    2、將Jacob.dll放至“WINDOWS\SYSTEM32”下面。

    需要注意的是:
    【使用IDE啟動Web服務器時,系統(tǒng)讀取不到Jacob.dll,例如用MyEclipse啟動Tomcat,就需要將dll文件copy到MyEclipse安裝目錄的“jre\bin”下面。
    一般系統(tǒng)沒有加載到Jacob.dll文件時,報錯信息為:“java.lang.UnsatisfiedLinkError: no jacob in java.library.path”】

    新建類:

     1public class JacobUtil   
     2{   
     3    public static final int WORD_HTML = 8;   
     4  
     5    public static final int WORD_TXT = 7;   
     6  
     7    public static final int EXCEL_HTML = 44;   
     8  
     9    /**  
    10     * WORD轉HTML  
    11     * @param docfile WORD文件全路徑  
    12     * @param htmlfile 轉換后HTML存放路徑  
    13     */
      
    14    public static void wordToHtml(String docfile, String htmlfile)   
    15    {   
    16        ActiveXComponent app = new ActiveXComponent("Word.Application"); // 啟動word   
    17        try  
    18        {   
    19            app.setProperty("Visible"new Variant(false));   
    20            Dispatch docs = app.getProperty("Documents").toDispatch();   
    21            Dispatch doc = Dispatch.invoke(   
    22                    docs,   
    23                    "Open",   
    24                    Dispatch.Method,   
    25                    new Object[] { docfile, new Variant(false),   
    26                            new Variant(true) }
    new int[1]).toDispatch();   
    27            Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {   
    28                    htmlfile, new Variant(WORD_HTML) }
    new int[1]);   
    29            Variant f = new Variant(false);   
    30            Dispatch.call(doc, "Close", f);   
    31        }
       
    32        catch (Exception e)   
    33        {   
    34            e.printStackTrace();   
    35        }
       
    36        finally  
    37        {   
    38            app.invoke("Quit"new Variant[] {});   
    39        }
       
    40    }
       
    41  
    42    /**  
    43     * EXCEL轉HTML  
    44     * @param xlsfile EXCEL文件全路徑  
    45     * @param htmlfile 轉換后HTML存放路徑  
    46     */
      
    47    public static void excelToHtml(String xlsfile, String htmlfile)   
    48    {   
    49        ActiveXComponent app = new ActiveXComponent("Excel.Application"); // 啟動word   
    50        try  
    51        {   
    52            app.setProperty("Visible"new Variant(false));   
    53            Dispatch excels = app.getProperty("Workbooks").toDispatch();   
    54            Dispatch excel = Dispatch.invoke(   
    55                    excels,   
    56                    "Open",   
    57                    Dispatch.Method,   
    58                    new Object[] { xlsfile, new Variant(false),   
    59                            new Variant(true) }
    new int[1]).toDispatch();   
    60            Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] {   
    61                    htmlfile, new Variant(EXCEL_HTML) }
    new int[1]);   
    62            Variant f = new Variant(false);   
    63            Dispatch.call(excel, "Close", f);   
    64        }
       
    65        catch (Exception e)   
    66        {   
    67            e.printStackTrace();   
    68        }
       
    69        finally  
    70        {   
    71            app.invoke("Quit"new Variant[] {});   
    72        }
       
    73    }
       
    74  
    75}
      
    76

    當時我在找轉換控件時,發(fā)現(xiàn)網(wǎng)易也轉載了一偏關于Jacob使用幫助,但其中出現(xiàn)了比較嚴重的錯誤:String htmlfile = "C:\\AA";

    只指定到了文件夾一級,正確寫法是String htmlfile = "C:\\AA\\xxx.html";

     

    到此WORD/EXCEL轉換HTML就已經差不多了,相信大家應該很清楚了:)

     

    二、使用XPDF將PDF轉換為HTML

     

    1、下載xpdf最新版本,地址:http://www.foolabs.com/xpdf/download.html

    我下載的是xpdf-3.02pl2-win32.zip

     

    2、下載中文支持包

    我下載的是xpdf-chinese-simplified.tar.gz

     

    3、下載pdftohtml支持包

    地址:http://sourceforge.net/projects/pdftohtml/

    我下載的是:pdftohtml-0.39-win32.tar.gz

     

    4、解壓調試

    1) 先將xpdf-3.02pl2-win32.zip解壓,解壓后的內容可根據(jù)需要進行刪減,如果只需要轉換為txt格式,其他的exe文件可以刪除,只保留pdftotext.exe,以此類推;

    2) 然后將xpdf-chinese-simplified.tar.gz解壓到剛才xpdf-3.02pl2-win32.zip的解壓目錄;

    3) 將pdftohtml-0.39-win32.tar.gz解壓,pdftohtml.exe解壓到xpdf-3.02pl2-win32.zip的解壓目錄;

    4) 目錄結構:

     +---[X:\xpdf]

               |-------各種轉換用到的exe文件

               |

               |-------xpdfrc

               |

               +------[X:\xpdf\xpdf-chinese-simplified]

                                          |

                                          |

                                          +-------很多轉換時需要用到的字符文件

     

    xpdfrc:此文件是用來聲明轉換字符集對應路徑的文件

     

    5) 修改xpdfrc文件(文件原名為sample-xpdfrc)

    修改文件內容為:

    Txt代碼 復制代碼 收藏代碼
    #----- begin Chinese Simplified support package   
    cidToUnicode    Adobe
    -GB1       xpdf-chinese-simplified\Adobe-GB1.cidToUnicode   
    unicodeMap      ISO
    -2022-CN     xpdf-chinese-simplified\ISO-2022-CN.unicodeMap   
    unicodeMap      EUC
    -CN          xpdf-chinese-simplified\EUC-CN.unicodeMap   
    unicodeMap  GBK    xpdf
    -chinese-simplified\GBK.unicodeMap   
    cMapDir         Adobe
    -GB1       xpdf-chinese-simplified\CMap   
    toUnicodeDir                    xpdf
    -chinese-simplified\CMap   
    fontDir  C:\WINDOWS\Fonts   
    displayCIDFontTT Adobe
    -GB1 C:\WINDOWS\Fonts\simhei.ttf   
    #
    ----- end Chinese Simplified support package  

    6) 創(chuàng)建bat文件pdftohtml.bat(放置的路徑不能包含空格)

    內容為:

    Txt代碼 復制代碼 收藏代碼
    @echo off   
    set folderPath
    =%1  
    set filePath
    =%2  
    cd 
    /%folderPath%   
    pdftohtml 
    -enc GBK %filePath%   
    exit 
    7) 創(chuàng)建類

    JAVA代碼
    public class ConvertPdf   
    {   
        
    private static String INPUT_PATH;   
        
    private static String PROJECT_PATH;   
           
        
    public static void convertToHtml(String file, String project)   
        
    {   
            INPUT_PATH 
    = file;   
            PROJECT_PATH 
    = project;   
            
    if(checkContentType()==0)   
            
    {   
                toHtml();   
            }
       
        }
       
           
        
    private static int checkContentType()   
        
    {   
            String type 
    = INPUT_PATH.substring(INPUT_PATH.lastIndexOf("."+ 1, INPUT_PATH.length())   
                    .toLowerCase();   
            
    if (type.equals("pdf"))   
                
    return 0;   
            
    else  
                
    return 9;   
        }
       
           
        
    private static void toHtml()   
        
    {   
            
    if(new File(INPUT_PATH).isFile())   
            
    {   
                
    try  
                
    {   
                    String cmd 
    = "cmd /c start X:\\pdftohtml.bat \"" + PROJECT_PATH + "\" \"" + INPUT_PATH + "\"";   
                    Runtime.getRuntime().exec(cmd);   
                }
       
                
    catch (IOException e)   
                
    {   
                    e.printStackTrace();   
                }
       
            }
       
        }
       
           
    }
      

    String cmd = "....";此處代碼是調用創(chuàng)建的bat文件進行轉換 

     

    8) 測試轉換
     JAVA代碼復制代碼 收藏代碼

    public static void main(String[] args)   
    {   
        ConvertPdf.convertToHtml(
    "C:\\test.pdf""X:\\xpdf");   
    }
      
    posted on 2011-04-20 14:26 方濤升 閱讀(14729) 評論(3)  編輯  收藏 所屬分類: j2ee

    FeedBack:
    # re: java將Word/Excel/PDF文件轉換成HTML整理
    2011-09-19 16:07 | 529597089
    1) 先將xpdf-3.02pl2-win32.zip解壓,解壓后的內容可根據(jù)需要進行刪減,如果只需要轉換為txt格式,其他的exe文件可以刪除,只保留pdftotext.exe,以此類推;

    2) 然后將xpdf-chinese-simplified.tar.gz解壓到剛才xpdf-3.02pl2-win32.zip的解壓目錄;

    3) 將pdftohtml-0.39-win32.tar.gz解壓,pdftohtml.exe解壓到xpdf-3.02pl2-win32.zip的解壓目錄;

    這些怎么配置?我咋老配置不對!  回復  更多評論
      
    # re: java將Word/Excel/PDF文件轉換成HTML整理
    2013-10-16 09:44 | ;;
    Source: Microsoft Excel
    Description: 類 Workbook 的 SaveAs 方法無效


    請問這個怎么解決  回復  更多評論
      
    # re: java將Word/Excel/PDF文件轉換成HTML整理
    2014-02-28 15:23 | 諾諾
    不管用啊,有沒有源碼給分享下啊~~~  回復  更多評論
      
    <2014年2月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    2324252627281
    2345678

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产精品综合久久2007| 日韩色视频一区二区三区亚洲| 国产又黄又爽又猛免费app| 亚洲日韩精品A∨片无码加勒比| 亚洲不卡AV影片在线播放| 野花香高清在线观看视频播放免费 | 亚洲国产天堂久久久久久| 久久免费国产精品一区二区| 亚洲日本在线电影| 亚洲日韩精品无码一区二区三区| 日日麻批免费40分钟日本的| 99亚洲乱人伦aⅴ精品| 国产亚洲3p无码一区二区| 欧美三级在线电影免费| 毛片基地看看成人免费| 亚洲1区1区3区4区产品乱码芒果| 一区国严二区亚洲三区| 免费专区丝袜脚调教视频| www在线观看免费视频| 亚洲一级大黄大色毛片| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲国产精品成人综合久久久 | 亚洲国产品综合人成综合网站| 亚洲国产一区视频| 日韩免费一区二区三区在线 | 美国免费高清一级毛片| 亚洲精品成人图区| 激情97综合亚洲色婷婷五| 在线免费观看毛片网站| 久久A级毛片免费观看| 一级一黄在线观看视频免费| 国产精品久久亚洲不卡动漫| 久久久久亚洲av无码专区蜜芽| 免费午夜爽爽爽WWW视频十八禁| 在线观看免费人成视频| 91精品免费高清在线| 中国一级毛片视频免费看| 亚洲国产成人久久综合| 亚洲AV无码乱码在线观看代蜜桃| 亚洲AV无码精品色午夜果冻不卡 | 成人永久免费高清|