<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

     

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

    “JACOB一個(gè)Java-COM中間件.通過(guò)這個(gè)組件你可以在Java應(yīng)用程序中調(diào)用COM組件和Win32 libraries。”

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

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

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

    需要注意的是:
    【使用IDE啟動(dòng)Web服務(wù)器時(shí),系統(tǒng)讀取不到Jacob.dll,例如用MyEclipse啟動(dòng)Tomcat,就需要將dll文件copy到MyEclipse安裝目錄的“jre\bin”下面。
    一般系統(tǒng)沒(méi)有加載到Jacob.dll文件時(shí),報(bào)錯(cuò)信息為:“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轉(zhuǎn)HTML  
    11     * @param docfile WORD文件全路徑  
    12     * @param htmlfile 轉(zhuǎn)換后HTML存放路徑  
    13     */
      
    14    public static void wordToHtml(String docfile, String htmlfile)   
    15    {   
    16        ActiveXComponent app = new ActiveXComponent("Word.Application"); // 啟動(dòng)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轉(zhuǎn)HTML  
    44     * @param xlsfile EXCEL文件全路徑  
    45     * @param htmlfile 轉(zhuǎn)換后HTML存放路徑  
    46     */
      
    47    public static void excelToHtml(String xlsfile, String htmlfile)   
    48    {   
    49        ActiveXComponent app = new ActiveXComponent("Excel.Application"); // 啟動(dòng)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

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

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

     

    到此WORD/EXCEL轉(zhuǎn)換HTML就已經(jīng)差不多了,相信大家應(yīng)該很清楚了:)

     

    二、使用XPDF將PDF轉(zhuǎn)換為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、解壓調(diào)試

    1) 先將xpdf-3.02pl2-win32.zip解壓,解壓后的內(nèi)容可根據(jù)需要進(jìn)行刪減,如果只需要轉(zhuǎn)換為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) 目錄結(jié)構(gòu):

     +---[X:\xpdf]

               |-------各種轉(zhuǎn)換用到的exe文件

               |

               |-------xpdfrc

               |

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

                                          |

                                          |

                                          +-------很多轉(zhuǎn)換時(shí)需要用到的字符文件

     

    xpdfrc:此文件是用來(lái)聲明轉(zhuǎn)換字符集對(duì)應(yīng)路徑的文件

     

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

    修改文件內(nèi)容為:

    Txt代碼 復(fù)制代碼 收藏代碼
    #----- 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(放置的路徑不能包含空格)

    內(nèi)容為:

    Txt代碼 復(fù)制代碼 收藏代碼
    @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 = "....";此處代碼是調(diào)用創(chuàng)建的bat文件進(jìn)行轉(zhuǎn)換 

     

    8) 測(cè)試轉(zhuǎn)換
     JAVA代碼復(fù)制代碼 收藏代碼

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

    FeedBack:
    # re: java將Word/Excel/PDF文件轉(zhuǎn)換成HTML整理
    2011-09-19 16:07 | 529597089
    1) 先將xpdf-3.02pl2-win32.zip解壓,解壓后的內(nèi)容可根據(jù)需要進(jìn)行刪減,如果只需要轉(zhuǎn)換為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的解壓目錄;

    這些怎么配置?我咋老配置不對(duì)!  回復(fù)  更多評(píng)論
      
    # re: java將Word/Excel/PDF文件轉(zhuǎn)換成HTML整理
    2013-10-16 09:44 | ;;
    Source: Microsoft Excel
    Description: 類 Workbook 的 SaveAs 方法無(wú)效


    請(qǐng)問(wèn)這個(gè)怎么解決  回復(fù)  更多評(píng)論
      
    # re: java將Word/Excel/PDF文件轉(zhuǎn)換成HTML整理
    2014-02-28 15:23 | 諾諾
    不管用啊,有沒(méi)有源碼給分享下啊~~~  回復(fù)  更多評(píng)論
      
    <2011年4月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 激情无码亚洲一区二区三区| 国产成人精品日本亚洲18图| 亚洲高清美女一区二区三区| 亚洲国产模特在线播放| 亚洲综合av一区二区三区不卡 | jizz在线免费播放| 日本免费高清视频| 999国内精品永久免费视频| 妞干网免费观看视频| www.亚洲精品| 亚洲日本中文字幕| 国产精品高清视亚洲一区二区| 校园亚洲春色另类小说合集| 国产黄色片免费看| 蜜桃AV无码免费看永久| 可以免费观看一级毛片黄a| 人人狠狠综合久久亚洲88| 亚洲成人免费在线观看| 免费人成动漫在线播放r18 | 青青草无码免费一二三区| 午夜小视频免费观看| 国产成人综合亚洲AV第一页 | 国产亚洲精品观看91在线| 亚洲成人高清在线观看| 精品女同一区二区三区免费播放 | 日本红怡院亚洲红怡院最新| 中文字幕亚洲综合小综合在线 | 无码精品国产一区二区三区免费| 成人片黄网站A毛片免费| 国产亚洲?V无码?V男人的天堂| 亚洲国产福利精品一区二区| a免费毛片在线播放| 免费无码AV电影在线观看| 最新国产AV无码专区亚洲| 亚洲人成电影网站色| 日本三级在线观看免费| 日本不卡高清中文字幕免费| 亚洲无删减国产精品一区| 黄色网址免费在线| 国产美女在线精品免费观看| 亚洲国产精品SSS在线观看AV|