2014-05-18 1 views
-1

내 코드에 대한 도움이 필요합니다. PDF 파일을 텍스트 파일 및 JSP 페이지로 변환하는 작업중인 Java 코드가 있습니다. 문제는 내가 그들을 링크하고 싶습니다. 즉, PDF 파일을 업로드 할 때 파일을 입력으로 업로드하고 해당 텍스트 파일을 변환해야합니다. JSP 페이지에서 PDF 파일 업로드 및 텍스트 파일로 변환

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

는 이제 서버 측이 필요합니다

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, 제 문제는 자바 프로그램과 JSP 페이지를 링크하는 방법을 모르겠습니다. 제출 버튼을 클릭하면 업로드 된 pdf 파일을 텍스트 파일로 변환하는 것입니다. – user2643628

답변

0

일반적으로이 같은 POST의 즉 방법, 뭔가를 사용하여 서버에 파일을 전송 HTML 양식을 만들어야합니다. JSP로 코드를 구현하는 것은 권장되지 않지만 직접 Servlet (또는 JSP)을 구현하고 URL "/upload"에 배포 할 수 있습니다. URL의 이름은 중요하지 않으며 양식의 action 속성에 쓰는 것과 일치해야합니다.

그러나 서블릿을 구현할 필요는 없습니다. 그냥 apache에서 가져 가세요. 이게 도움이 되길 바란다.

+0

처음에는 위의 Java 코드를 사용하여 서블릿을 구현하려했지만 아직 서블릿이 처음이기 때문에 실패했습니다. 이런 종류의 서블릿을 구현하는 방법에 대한 팁을 제발 보여 주시겠습니까? – user2643628

+0

다시 말해서 구현할 필요가 없습니다. 컨테이너의 Apache에서'FileUpload' 서블릿을 배포하기 만하면됩니다. 제가 제공 한 링크를 따라주십시오. 여기 다시 있습니다 : http://commons.apache.org/proper/commons-fileupload/using.html – AlexR

+0

정말 고마워요, 정말 고맙습니다. – user2643628