在java中将PDF导入String

时间:2017-04-07 15:51:38

标签: 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.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 = new PdfReader(“D:/ pdf / pdf”);

或者

1 个答案:

答案 0 :(得分:0)

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

将 PDFBox jar 依赖项添加到您的 pom.xml。

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

Java 类

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();
           }
        }
    }