当前位置:  开发笔记 > 编程语言 > 正文

PDF到文本工具或Java库?

如何解决《PDF到文本工具或Java库?》经验,为你挑选了2个好方法。

我需要将PDF转换为普通文本(这是我们县注册商的"投票声明").文件很大(大约2000页),大多包含表格.一旦我把它写入文本,那么我将使用我正在编写的程序来解析它并将数据放入数据库中.我在Adobe Reader中尝试过"另存为文本"功能,但它并不像我想的那样精确,特别是在将表格数据划分为CSV时.那么,对工具或Java库的任何建议都可以做到这一点?



1> Michael Myer..:

好吧,有iText.我只有有限的经验,但它似乎可以做你想要的.

Apache PDFBox肯定可以做到.它的网站提到"PDF to text extraction"作为其主要功能.有一个ExtractText命令行工具,专门用于此(源代码),基于其PDFTextStripper类.还有一个PDFBox 文本提取指南!



2> Arjan..:

鉴于问题的标题:Apache Tika非常适合我从PDF中提取纯文本.我没有用它来从表中获取文本.

对于PDF,它实际上使用PDFBox.但是,除了PDF,它同样为其他格式,如Microsoft Word(DOC和DOCX),Excel和PowerPoint,OpenOffice.org/LibreOffice ODT,HTML,XML,以及更多.它的AutoDetectParser可以轻松地从任何输入中提取文本.

如果需要处理生成的文本(例如将其传递给Mahout进行分类),可以使用ParsingReader将结果导入Reader,同时后台进程将其提取出来.最后,在提取内容时,它还会填充它找到的元数据:

public Reader getPlainTextReader(final InputStream is) {
    try {
        Detector detector = new DefaultDetector();
        Parser parser = new AutoDetectParser(detector);
        ParseContext context = new ParseContext();
        context.set(Parser.class, parser);
        Metadata metadata = new Metadata();

        Reader reader = new ParsingReader(parser, is, metadata, context);

        for (String name : metadata.names()) {
            for (String value : metadata.getValues(name)) {
                logger.debug("Document {}: {}", name, value);
            }
        }

        return reader;

    } catch (IOException e) {
        ...
    }
}

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有