Java - PDFBbox - FileInputStream 错误和 RandomAccessBufferedFileInputStream

问题描述 投票:0回答:0

我写了一个简单的代码来比较两个pdf文件,但是在执行过程中我得到了一个错误:

线程“main”中的异常 java.lang.ClassCastException: java.io.FileInputStream cannot be cast to org.apache.pdfbox.io.RandomAccessRead 在 pdfComparator.PDFComparator.main(PDFComparator.java:29)

任何人都可以帮助我理解我的错误吗?提前致谢。

import java.io.IOException;
import java.io.File;
import org.apache.pdfbox.cos.COSDocument;
import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

public class PDFComparator {

    public static void main(String[] args) throws IOException{
        if(args.length !=2){
            System.out.println("Usage: java PDFComparator file1 file2");
            System.exit(1);
        }
        String firstFilePath = args[0];
        String secondFilePath = args[1];
        
        File pdfFile1 = new File(firstFilePath);

        File pdfFile2 = new File(secondFilePath);
        
    RandomAccessBufferedFileInputStream raFile1 = new RandomAccessBufferedFileInputStream(pdfFile1);
    RandomAccessBufferedFileInputStream raFile2 = new RandomAccessBufferedFileInputStream(pdfFile2);    
    
        
    PDFParser parser1 = new PDFParser(raFile1);
    parser1.parse();
    COSDocument cosDoc1 = parser1.getDocument();
    PDDocument firstPDF = new PDDocument(cosDoc1);

    PDFParser parser2 = new PDFParser(raFile2);
    parser2.parse();
    COSDocument cosDoc2 = parser2.getDocument();
    PDDocument secondPDF = new PDDocument(cosDoc2);
    

    PDFTextStripper stripper = new PDFTextStripper();
    String text1 = stripper.getText(firstPDF).trim();
    String text2 = stripper.getText(secondPDF).trim();

    if (text1.equals(text2)){
        System.out.println("The two PDF files are identical");
        }else{
        System.out.println("The two PDF files have differences");
        }
    firstPDF.close();
    secondPDF.close();
    }

}
java pdfbox
© www.soinside.com 2019 - 2024. All rights reserved.