在JSP页面上传PDF文件并将其转换为文本文件

时间:2014-05-18 12:05:54

标签: java jsp pdf text

我的代码需要一些帮助..我有一个可用的Java代码将PDF转换为Text文件和一个上传它的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 个答案:

答案 0 :(得分: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开始吧。我希望这有帮助。