如何使用Java将pdf文件转换为word文件?
而且,它看起来很简单吗?
答案 0 :(得分:9)
尝试PDFBOX
public class PDFTextReader
{
static String pdftoText(String fileName) {
PDFParser parser;
String parsedText = null;
PDFTextStripper pdfStripper = null;
PDDocument pdDoc = null;
COSDocument cosDoc = null;
File file = new File(fileName);
if (!file.isFile()) {
System.err.println("File " + fileName + " does not exist.");
return null;
}
try {
parser = new PDFParser(new FileInputStream(file));
} catch (IOException e) {
System.err.println("Unable to open PDF Parser. " + e.getMessage());
return null;
}
try {
parser.parse();
cosDoc = parser.getDocument();
pdfStripper = new PDFTextStripper();
pdDoc = new PDDocument(cosDoc);
parsedText = pdfStripper.getText(pdDoc);
} catch (Exception e) {
System.err
.println("An exception occured in parsing the PDF Document."
+ e.getMessage());
} finally {
try {
if (cosDoc != null)
cosDoc.close();
if (pdDoc != null)
pdDoc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return parsedText;
}
public static void main(String args[]){
try {
String content = pdftoText(PDF_FILE_PATH);
File file = new File("/sample/filename.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 1 :(得分:5)
我深入研究了这个问题,我发现为了获得正确的结果,你需要不能避免使用MS Word。即使像LibreOffice这样的资助项目也会因为Word格式相当复杂而且在版本上发生变化而进行适当的转换。只有MS Word会对此进行跟踪。
出于这个原因,我实现了documents4j使用Java API将转换委托给MS Word的内容。此外,它允许您将转换移动到可以使用REST API联系的其他计算机。您可以找到详细信息on its GitHub page。