【问题标题】:Read data from image in PDF从 PDF 中的图像读取数据
【发布时间】:2017-10-06 09:05:48
【问题描述】:

我正在使用 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();
            }
        }
    }

【问题讨论】:

    标签: java itext pdf-parsing


    【解决方案1】:

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

    算法(高级):

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

    【讨论】:

      【解决方案2】:

      iText 不支持 OCR 从图像中提取文本。尝试使用Tesseract 或其他方式。

      【讨论】:

      • 我可以使用 iText 从 PDF 中提取图像吗
      • 是的,您可以使用 iText 从 pdf 中提取图像,然后将该图像提供给 Tessaract,但这不是您的问题。
      • 我在想先提取图像,然后从图像中读取数据
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 2012-07-16
      • 1970-01-01
      相关资源
      最近更新 更多