gpt4 book ai didi

java - 从 PDF 图像中读取数据

转载 作者:行者123 更新时间:2023-12-02 12:10:11 25 4
gpt4 key购买 nike

我正在使用iText java TextExtraction从PDF文件中读取文本。我使用下面的代码,它对于英文 PDF 工作正常现在我有包含图像数据的 PDF。我想从该图像读取数据

public class pdfreader {
public static void main(String[] args) throws IOException, DocumentException, TransformerException {
String SRC = "";
String DEST = "";

for (String s : args) {
SRC = args[0];
DEST = args[1];
}
File file = new File(DEST);
file.getParentFile().mkdirs();
new pdfreader().readText(SRC, DEST);
}

public void readText(String src, String dest) throws IOException, DocumentException, TransformerException {
try {
PdfReader pdfReader = new PdfReader(src);
PdfReaderContentParser PdfParser = new PdfReaderContentParser(
pdfReader);
PrintWriter out = new PrintWriter(new FileOutputStream(
dest));
TextExtractionStrategy textStrategy;
for (int i = 1; i <= pdfReader.getNumberOfPages(); i++) {
textStrategy = PdfParser.processContent(i,
new SimpleTextExtractionStrategy());
out.println(textStrategy.getResultantText());
}
out.flush();
out.close();
pdfReader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

最佳答案

您可以使用 iText 实现 OCR 工作流程。正如 Amedee 已经暗示的那样,这是我们在 iText 上尝试过的方法,并取得了非常有希望的结果。

算法(高级):

  1. 实现 IEventListener 来解析文档页面
  2. 留意 ImageRenderInfo 事件,当 PDF 解析器命中图像时,它们会被触发
  3. 您可以在事件上调用 getImage() 并最终获得 BufferedImage
  4. 将 BufferedImage 输入到 Tesseract
  5. 应用坐标变换(tesseract 不使用与 iText 相同的坐标空间)
  6. 现在您已经有了图像中的 texf 和位置,您可以使用 iText 在 PDF 上覆盖文本。或者直接提取它。

关于java - 从 PDF 图像中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46602171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com