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

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

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

    JAVA—咖啡館

    ——?dú)g迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗(yàn),分享JAVA帶來的快樂!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問題請(qǐng)與我聯(lián)系。

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    1. 用jacob
    其實(shí)jacob是一個(gè)bridage,連接java和com或者win32函數(shù)的一個(gè)中間件,jacob并不能直接抽取word,excel等文件,需要自己寫dll哦,不過已經(jīng)有為你寫好的了,就是jacob的作者一并提供了。
    jacob jar與dll文件下載: http://danadler.com/jacob/
    下載了jacob并放到指定的路徑之后(dll放到path,jar文件放到classpath),就可以寫你自己的抽取程序了,下面是一個(gè)簡單的例子:

     

    import java.io.File; 
    import com.jacob.com.*
    import com.jacob.activeX.*
    /** 
    * Title: pdf extraction 
    */
     
    public class FileExtracter {

     
    public static void main(String[] args) 
      ActiveXComponent component 
    = new ActiveXComponent("Word.Application"); 
      String inFile 
    = "c:\\test.doc"
      String tpFile 
    = "c:\\temp.htm"
      String otFile 
    = "c:\\temp.XML"
      
    boolean flag = false
      
    try {
       component.setProperty(
    "Visible"new Variant(false)); 
       Object wordacc 
    = component.getProperty("document.").toDispatch(); 
       Object wordfile 
    = Dispatch.invoke(wordacc,"Open", Dispatch.Method, 
       
    new Object[]{inFile,new Variant(false), new Variant(true)}
       
    new int[1] ).toDispatch(); 
       Dispatch.invoke(wordfile,
    "SaveAs", Dispatch.Method, new Object[]{tpFile,new  Variant(8)}new int[1]); 
       Variant f 
    = new Variant(false); 
       Dispatch.call(wordfile, 
    "Close", f); 
       flag 
    = true
      }
     catch (Exception e) 
       e.printStackTrace(); 
      }
     finally 
       component.invoke(
    "Quit"new Variant[] {}); 
      }
     
     }
     
    }
     


    2.用apache的poi來抽取word,excel。
    poi是apache的一個(gè)項(xiàng)目,不過就算用poi你可能都覺得很煩,不過不要緊,這里提供了更加簡單的一個(gè)接口給你:
    下載經(jīng)過封裝后的poi包: http://jakarta.apache.org/poi/
    下載之后,放到你的classpath就可以了,下面是如何使用它的一個(gè)例子:

    import java.io.*
    import org.textmining.text.extraction.WordExtractor; 
    /** 
    * Title: word extraction
    */
     

    public class PdfExtractor {

     
    public PdfExtractor() 
     }

     
     
    public static void main(String args[]) throws Exception {
      FileInputStream in 
    = new FileInputStream ("c:\\a.doc"); 
      WordExtractor extractor 
    = new WordExtractor(); 
      String str 
    = extractor.extractText(in); 
      System.out.println(
    "the result length is"+str.length()); 
      System.out.println(
    "the result is"+str); 
     }
     
    }
     


    3.pdfbox-用來抽取pdf文件
    但是pdfbox對(duì)中文支持還不好,先下載pdfbox: http://www.pdfbox.org/
    下面是一個(gè)如何使用pdfbox抽取pdf文件的例子:

    import org.pdfbox.pdmodel.PDdocument. 
    import org.pdfbox.pdfparser.PDFParser; 
    import java.io.*
    import org.pdfbox.util.PDFTextStripper; 
    import java.util.Date; 
    /** 
    * Title: pdf extraction
    */
     

    public class PdfExtracter

     
    public PdfExtracter()
     }

     
     
    public String GetTextFromPdf(String filename) throws Exception 
      String temp
    =null
      PDdocument.nbsppdfdocument.
    null
      FileInputStream is
    =new FileInputStream(filename); 
      PDFParser parser 
    = new PDFParser( is ); 
      parser.parse(); 
      pdfdocument.nbsp
    = parser.getPDdocument.); 
      ByteArrayOutputStream out 
    = new ByteArrayOutputStream(); 
      OutputStreamWriter writer 
    = new OutputStreamWriter( out ); 
      PDFTextStripper stripper 
    = new PDFTextStripper(); 
      stripper.writeText(pdfdocument.getdocument.), writer ); 
      writer.close(); 
      
    byte[] contents = out.toByteArray(); 
      String ts
    =new String(contents); 
      System.out.println(
    "the string length is"+contents.length+"\n"); 
      
    return ts; 
     }

     
     
    public static void main(String args[]) {
      PdfExtracter pf
    =new PdfExtracter(); 
      PDdocument.nbsppdfdocument.nbsp
    = null
      
    try
       String ts
    =pf.GetTextFromPdf("c:\\a.pdf"); 
       System.out.println(ts); 
      }
     catch(Exception e) 
       e.printStackTrace(); 
      }
     
     }
     
    }


    4. 抽取支持中文的pdf文件-xpdf
    xpdf是一個(gè)開源項(xiàng)目,我們可以調(diào)用他的本地方法來實(shí)現(xiàn)抽取中文pdf文件。
    下載xpdf函數(shù)包: http://www.foolabs.com/xpdf/
    同時(shí)需要下載支持中文的補(bǔ)丁包,按照readme放好中文的patch,就可以開始寫調(diào)用本地方法的java程序了。
    下面是一個(gè)如何調(diào)用的例子:

    import java.io.*
    /** 
    * Title: pdf extraction
    */
     

    public class PdfWin {

     
    public PdfWin() 
     }

     
     
    public static void main(String args[]) throws Exception 
      String PATH_TO_XPDF
    ="C:\\Program Files\\xpdf\\pdftotext.exe"
      String filename
    ="c:\\a.pdf"
      String[] cmd 
    = new String[] { PATH_TO_XPDF, "-enc""UTF-8""-q", filename, "-"}
      Process p 
    = Runtime.getRuntime().exec(cmd); 
      BufferedInputStream bis 
    = new BufferedInputStream(p.getInputStream()); 
      InputStreamReader reader 
    = new InputStreamReader(bis, "UTF-8"); 
      StringWriter out 
    = new StringWriter(); 
      
    char [] buf = new char[10000]; 
      
    int len; 
      
    while((len = reader.read(buf))>= 0
       
    //out.write(buf, 0, len); 
       System.out.println("the length is"+len); 
      }
     
      reader.close(); 
      String ts
    =new String(buf); 
      System.out.println(
    "the str is"+ts); 
     }
     
    }

    posted on 2008-08-27 13:47 rogerfan 閱讀(447) 評(píng)論(0)  編輯  收藏 所屬分類: 【Java知識(shí)】
    主站蜘蛛池模板: 免费jjzz在线播放国产| 久久久国产精品无码免费专区| 久久精品毛片免费观看| 亚洲AV无码乱码在线观看裸奔| 香蕉免费在线视频| 亚洲无人区一区二区三区| 一道本在线免费视频| 亚洲色偷偷综合亚洲AV伊人| 亚洲精品偷拍视频免费观看| 77777亚洲午夜久久多人| 中文日本免费高清| 国产亚洲综合久久系列| 免费看又黄又无码的网站| 亚洲视频国产精品| 皇色在线视频免费网站| 亚洲日韩国产欧美一区二区三区| 好爽又高潮了毛片免费下载| 18禁亚洲深夜福利人口| 亚洲欧洲精品成人久久奇米网 | 亚洲av永久中文无码精品综合 | 成人毛片100免费观看| 亚洲AV无码精品色午夜在线观看| 久久国产精品免费专区| 亚洲在成人网在线看| 午夜一区二区免费视频| 亚洲va久久久噜噜噜久久狠狠 | 久久精品无码专区免费青青| 亚洲首页在线观看| 日本高清免费不卡在线| 男女猛烈无遮掩视频免费软件| 国产精品亚洲аv无码播放| 88av免费观看入口在线| 亚洲av无码av在线播放| 中文字幕精品亚洲无线码一区应用| 99久在线国内在线播放免费观看| 亚洲AV成人一区二区三区在线看| 亚洲A丁香五香天堂网| 日韩免费无码一区二区三区| 亚洲av无码兔费综合| 亚洲成AV人片在线观看无| 免费视频淫片aa毛片|