2014-05-18 58 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