Tag: apache tika

Apache Tika提取扫描PDF文件

我在使用Apache TIKA(版本1.10)时遇到了一些麻烦。 我得到了一些PDF文件,这些文件只是扫描过的纸片。 这意味着每个页面只是一个图像。 我的目标是提取PDF文件的文本。 我的tesseract设置正确,提取JPG和PNG文件就像一个魅力。 我正在使用的代码看起来像那样(不介意缺少的除外处理): public String extractText(InputStream stream) { AutoDetectParser parser = new AutoDetectParser(); BodyContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE); Metadata metadata = new Metadata(); ParseContext context = new ParseContext(); parser.parse(stream, handler, metadata, context); String text = handler.toString(); return text; } 我搜索了很多,但我找不到任何适合我的解决方案。 我已经尝试过PDFParserConfig类的setExtractInlineImages方法,但这没有改变。 使用自定义ParsingEmbeddedDocumentExtractor提取嵌入的文档确实提取了doc文件的嵌入资源,但没有提取我的PDF文件。 如果你们中的任何人都能提供一些帮助,那真是棒极了:)

如何从Java中的MIME类型确定适当的文件扩展名

我正在将文件上传到Amazon s3存储桶,并且可以访问InputStream和包含文件的MIME类型但不包含原始文件名的String。 在将文件推送到S3之前,实际创建文件名和扩展名取决于我。 是否有库或方便的方法来确定要使用的MIME类型的适当扩展名? 我已经看到一些对Apache Tika库的引用,但这看起来有点过分,我还没有能够成功检测到文件扩展名。 从我能够收集到的内容看起来这个代码应该可以工作,但是当我的类型变量是“image / jpeg”时,我只是得到一个空字符串 MimeType mimeType = null; try { mimeType = new MimeTypes().forName(type); } catch (MimeTypeException e) { Logger.error(“Couldn’t Detect Mime Type for type: ” + type, e); } if (mimeType != null) { String extension = mimeType.getExtension(); //do something with the extension }