我的代码需要一些帮助..我有一个可用的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>
答案 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开始吧。我希望这有帮助。