在java中将PDF导入字符串

在java中将PDF导入字符串,java,pdf,text,itext,extract,Java,Pdf,Text,Itext,Extract,我需要使用java从pdf文件中提取文本。我找到了iText,但它没有按我希望的方式工作。这是我的密码 package com.itextpdf.mavenproject1; import com.itextpdf.forms.PdfAcroForm; import com.itextpdf.forms.fields.PdfButtonFormField; import com.itextpdf.forms.fields.PdfFormField; import com.itextpdf.i

我需要使用java从pdf文件中提取文本。我找到了iText,但它没有按我希望的方式工作。这是我的密码

package com.itextpdf.mavenproject1;


import com.itextpdf.forms.PdfAcroForm;
import com.itextpdf.forms.fields.PdfButtonFormField;
import com.itextpdf.forms.fields.PdfFormField;
import com.itextpdf.io.font.FontConstants;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.action.PdfAction;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfTextAnnotation;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.kernel.pdf.canvas.parser.PdfTextExtractor;
import com.itextpdf.test.annotations.WrapToTest;
import java.io.File;
import java.io.IOException;

public class zczytywanie {

    public static void main(String args[]) throws IOException {


       PdfDocument pdfDoc = new PdfDocument(new PdfReader("D:/pdf/pdf"));

       String page= PdfTextExtractor.getTextFromPage(pdfDoc, 1);

       System.out.println(page);

    }
}
它告诉我,在我尝试使用PDdfTextExtractor的行中有一个错误(PdfDocument无法转换为pdfPage,尽管我发现pdfDoc必须是PdfReader)

这对我不起作用

PdfReader pdfDoc=新PdfReader(“D:/pdf/pdf”)


你可以试试PDFBox或Tikka。但我在这里举一个PDFBox的例子

将PDFBox jar依赖项添加到pom.xml中

<dependencies>
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.23</version>
        </dependency>
</dependencies>

它接受一个PdfReader对象。我还模糊地假设D:/pdf/pdf不是pdf文件,因为它没有pdf扩展名。正如我所写的,我也尝试使用pdf阅读器,如果我尝试将pdfDoc设置为pdf阅读器,它会说“pdf阅读器无法转换为pdfPage”。D:/pdf/pdf是一个错误,但这对编译器来说并不重要。我认为,当程序已经生成并运行时,应该会出现此错误。检查您的itext版本,PDFTextractor从2.1.4开始就使用读取器。导入时有两个
PDFTextractor
,一个来自
com.itextpdf.text.pdf.parser.pdftextractor
,另一个来自
com.itextpdf.kernel.pdf.canvas.parser.pdftextractor
。你引用的是正确的吗?你的类路径如何?前面的评论是正确的。您正在混合使用iText 5和iText 7课程!
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.text.PDFTextStripperByArea;

import java.io.File;
import java.io.IOException;

    public class TestPDF {
        public static void main(String[] args) {
           try (PDDocument document = PDDocument.load(new File("/path_to_your_pdf_file"))) {
               document.getClass();
    
               if(!document.isEncrypted()){
                   PDFTextStripperByArea stripper = new PDFTextStripperByArea();
                   stripper.setSortByPosition(true);
    
                   PDFTextStripper tStripper = new PDFTextStripper();
                   String pdfFileInText = tStripper.getText(document);
                   System.out.println("Text:" + pdfFileInText);
                   
               }
           } catch (IOException e) {
               e.printStackTrace();
           }
        }
    }