java简单读取PDF文件

package com.test;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;
public class TestPdf {  
    public String GetTextFromPdf(String filename) throws Exception {    
        String content = null;      
        PDDocument pdfdocument = null;    
        FileInputStream is = new FileInputStream(filename);   
        PDFParser parser = new PDFParser(is);      
        parser.parse();      
        pdfdocument = parser.getPDDocument();      
        PDFTextStripper stripper = new PDFTextStripper();   
        content = stripper.getText(pdfdocument);     
        return content;  
    }   
    public static void main(String args[]) {  
        try {         
            TestPdf pf = new TestPdf();    
            String ts = pf.GetTextFromPdf("D:\\157038_PackingList_20170330_100427.PDF");            
            OutputStreamWriter osw = new OutputStreamWriter(     
            new FileOutputStream("D:/aa.txt"));    
            System.out.println(ts);
            osw.write(ts);            
            osw.flush();            
            osw.close();        
        } catch (Exception e) {            
            e.printStackTrace();       
        }    
    }
    
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
读取PDF文件并输出文件流可以通过使用Java的第三方库来实现。以下是一种可能的解决方案: 1. 首先,你需要在Java项目中导入一个可以处理PDF文件的库。一个常用的选择是Apache PDFBox。你可以从Apache PDFBox的官方网站(https://pdfbox.apache.org/)下载最新版本的jar文件并将其添加到你的项目中。 2. 在你的Java代码中,导入所需的类: ```java import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; ``` 3. 使用以下代码来读取PDF文件并将其输出为文件流: ```java try { // 创建一个PDDocument对象来表示PDF文档 PDDocument document = PDDocument.load(new File("path/to/pdf/file.pdf")); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); document.save(outputStream); // 从输出流中获取字节数组形式的文件流 byte[] fileStream = outputStream.toByteArray(); // 在这里可以对文件流进行处理,例如保存到本地文件或发送到其他地方 // 关闭文档和输出流 document.close(); outputStream.close(); } catch (IOException e) { // 处理异常 e.printStackTrace(); } ``` 这段代码中,首先使用PDDocument类的load方法加载要读取PDF文件。然后,我们创建一个ByteArrayOutputStream对象来在内存中保存文件流,将document对象保存到输出流中,并使用toByteArray方法将文件流转换为字节数组形式。 最后,你可以根据你的需求来处理文件流,比如保存到本地文件中,或将其发送到其他地方。最后,记得关闭文档和输出流来释放资源。 请记得将代码中的"path/to/pdf/file.pdf"替换为你要读取的实际PDF文件的路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值