【发布时间】:2017-09-03 02:07:09
【问题描述】:
我需要使用 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");
要么。
【问题讨论】:
-
itextsupport.com/apidocs/itext5/latest/com/itextpdf/text/pdf/… 它需要一个 PdfReader 对象。我还会隐约假设 D:/pdf/pdf 不是 PDF 文件,因为它没有 PDF 扩展名。
-
正如我所写,我也尝试使用 pdfreader,如果我尝试将 pdfDoc 设为 pdfReader,它会显示“PdfReader 无法转换为 pdfPage”。 D:/pdf/pdf 是一个错误,但我认为这对编译器无关紧要,当程序已经构建并运行时应该会出现这个错误。
-
检查您的 itext 版本,PdfTextExtractor 从 2.1.4 开始需要阅读器
-
您的导入中有两个
PdfTextExtractor,一个来自com.itextpdf.text.pdf.parser.PdfTextExtractor,另一个来自com.itextpdf.kernel.pdf.canvas.parser.PdfTextExtractor。您是否引用了正确的,您的类路径如何? -
上一个评论者是正确的。您正在混合 iText 5 和 iText 7 类!
标签: java pdf text itext extract