2014-05-18 93 views
-1

我需要一些幫助與我的代碼..我有一個工作的Java代碼將PDF轉換爲文本文件和一個JSP頁面上傳它。 事情是我想要鏈接它們,即當我上傳PDF文件時,應該將上傳的文件作爲輸入並生成相應的轉換文本文件。在JSP頁面上載PDF文件並將其轉換爲文本文件

FileConverter.java 

    package fileconverter; 

    import java.io.File; 
    import java.io.FileWriter; 
    import java.io.BufferedWriter; 
    import com.itextpdf.text.pdf.PdfReader; 
    import com.itextpdf.text.pdf.parser.PdfTextExtractor; 
    import java.io.IOException; 
    import javax.swing.filechooser.FileNameExtensionFilter; 
    import javax.swing.JFileChooser; 

    public class FileConverter { 

     public static void main(String[] args) { 
     selectPDFFiles(); 

    } 
     //allow pdf files selection for converting 
     public static void selectPDFFiles(){ 

     JFileChooser chooser = new JFileChooser(); 
     FileNameExtensionFilter filter = new FileNameExtensionFilter("PDF","pdf"); 
     chooser.setFileFilter(filter); 
     chooser.setMultiSelectionEnabled(true); 
     int returnVal = chooser.showOpenDialog(null); 
     if(returnVal == JFileChooser.APPROVE_OPTION) { 
      File[] Files=chooser.getSelectedFiles(); 
      System.out.println("Please wait..."); 
      for(int i=0;i<Files.length;i++){  
      convertPDFToText(Files[i].toString(),"Text-File"+i+".txt"); 

      } 
      System.out.println("Conversion complete"); 

      } 


     } 

     public static void convertPDFToText(String src,String desc){ 
      try{ 
     FileWriter fw=new FileWriter(desc); 
     try (
      BufferedWriter bw = new BufferedWriter(fw)) { 
      PdfReader pr=new PdfReader(src);    
      int pNum=pr.getNumberOfPages();    
      for(int page=1;page<=pNum;page++){ 
      String text=PdfTextExtractor.getTextFromPage(pr, page); 
      bw.write(text); 
      bw.newLine(); 

      } 
      bw.flush(); 
      } 

     } 
      catch(IOException e){} 

      } 

     } 



     upload.jsp 
      <%-- 
       Document : upload 
       Created on : May 16, 2014, 1:42:47 PM 
       Author  : Kelvin 
      --%> 

      <%@page contentType="text/html" pageEncoding="UTF-8"%> 
      <!DOCTYPE html> 
      <html> 
      <head> 
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
      </head><title>Upload and convert</title> 
      <body> 
      <div id="main"> 
       <table id="uploadtbl" width="550" align="center" border="1"> 
       <tr> 
       <th align="center">Upload and convert pdf to text file</th> 
       </tr> 
       <tr> 
       <td> 
        <input type="file" name="upload"> 
       </td> 
       </tr> 
       <tr> 
       <td><input type="submit" name="totext" value="Convert To Text" /></td> 
       </tr> 
      </table> 
      </div> 
      </body> 
      </html> 
+1

你的問題是什麼? – AlexR

+0

謝謝AlexR,我這裏的問題是我不知道如何鏈接Java程序和JSP頁面,這樣當我點擊提交按鈕時,將上傳的PDF文件轉換爲文本文件。 – user2643628

回答

0

一般來說,你必須創建一個使用POST方法,即是這樣的發送文件到你的服務器的HTML表單:

<form action="/upload" method="POST"> 
    <input type="file" name="upload"> 
    <input type="submit" value="send"> 
<form> 

現在你需要服務器端。您可以實現自己的servlet(或JSP,儘管不建議將代碼實現到JSP中)並將其部署在URL "/upload"下。 URL的名稱並不重要,它只是對應於您在表單的action屬性中編寫的內容。

但是,您不必實現servlet。只需從apache。我希望這有幫助。

+0

我試着首先使用上面的Java代碼實現一個servlet,但因爲我還不熟悉servlet而失敗。你能告訴我一些關於如何實現這種類型的先生的servlet的技巧。 – user2643628

+0

同樣,您不必執行任何操作。只需在容器上部署來自Apache的'FileUpload' servlet即可。請按照我提供的鏈接。這裏又是:http://commons.apache.org/proper/commons-fileupload/using.html – AlexR

+0

非常感謝您的先生,非常感謝您的幫助。 – user2643628