- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我被难住了。如果我对文件路径进行硬编码,则此脚本在我的 Windows 机器上的 Eclipse 中运行良好。如果我尝试接受参数并在我的边缘节点(一个 linux 机器)上运行它,它不会抛出任何特定的错误,但只会留下一个空的输出文件。我一定是错过了一些愚蠢的东西,但我没有看到它。有人知道发生了什么事吗?
package com.trv.cbia.de.tika;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.metadata.TikaCoreProperties;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.SAXException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
public class DocParser {
public Map<String, Object> processRecord(String path) {
Map<String, Object> map = new HashMap<String, Object>();
String docPath = path;
try{
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
InputStream inputstream = new FileInputStream(new File(docPath));
ParseContext pcontext = new ParseContext();
Parser pdfparser = new AutoDetectParser();
pdfparser.parse(inputstream, handler, metadata, pcontext);
map.put("text", handler.toString().replaceAll("\n|\r|\t", " "));
map.put("title", metadata.get(TikaCoreProperties.TITLE));
map.put("pageCount", metadata.get("xmpTPg:NPages"));
} catch (IOException ex){
System.out.println("Caught IOException:" + ex.getMessage());
}
catch(TikaException tx) {
System.out.println("Caught TikaException: " + tx.getMessage());
}
catch(SAXException sx){
System.out.println("Caught SAXException: " + sx.getMessage());
}
return map;
}
public static void main(String args[]){
String file = args[0];
String out = args[1];
DocParser textExtract = new DocParser();
Map<String, Object> extractedMap = textExtract.processRecord(file);
try {
PrintWriter writer = new PrintWriter(out,"UTF-8");
writer.println(extractedMap.get("text"));
writer.flush();
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
最佳答案
最终我需要将 tika-app-1.13.jar 添加到我的类路径中。它从未泄露任何类路径错误。我不得不通过一堆 apache 邮件列表来寻找有类似问题的人。在这里发布解决方案以防其他人遇到它。
关于java - Apache Tika - PrintWriter 适用于本地 Windows 机器,但不适用于 Linux 机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257557/
我运行一个未修改的 Apache tika-server 1.22 的 JAX-RS 实例,并将其用作 HTTP 端点服务,我将文件发布到(主要是 Office、PDF 和 RTF)并通过 HTTP
我们当前的 Scala 代码与 Tika 1.13+ 一起运行,我们使用现已弃用的 LanguageIdentifier 代码,如下所示: import org.apache.tika.languag
使用Apache Tika提取JPEG图片元数据时遇到如下错误 java.lang.NoSuchMethodError: com.adobe.xmp.properties.XMPPropertyInf
我在网上找到了以下示例源代码,它的名称为 MyFirstTika.java,但我无法确定使用哪个版本的 Tika 来编译它。或者 Tika 的所有版本都兼容吗? The code is linked
我正在使用 Tika 阅读 PDF,并且我的代码直到昨天才正常工作。现在,当我运行相同的代码时,我收到错误,并且显然 Tika 找不到 Tika 服务器 jar 文件。我正在使用以下代码来阅读 PDF
Apache Tika 服务器提供了一个 Rest API 来从文档中提取文本。也可以设置特定的请求 header 参数,例如 X-Tika-PDFOcrStrategy。例如: $ curl -T
我在评论中添加了RTF文件。在文本编辑器中复制以下文本并另存为RTF格式。 BodyContentHandler handler = new BodyContentHandler(); Metadat
我想在 Maven 项目中使用 Tika 作为依赖项,从文件中提取元数据。当我使用 mvn exec:java 运行该类时它工作正常,但使用 java -cp 运行该类时它工作正常,所以我怀疑这是一个
对于 docx 文件,我检索 application/x-tika-ooxml,但我应该检索 application/vnd.openxmlformats-officedocument.wordpro
对于 docx 文件,我检索 application/x-tika-ooxml,但我应该检索 application/vnd.openxmlformats-officedocument.wordpro
我正在尝试使用 tika 包来解析文件。 Tika 已成功安装,tika-server-1.18.jar 使用 cmd 中的代码运行 Java -jar tika-server-1.18.jar 我在
我使用 jersey 框架在 java 中编写了一个 Web 服务,该框架使用了我的 apache tika 包装器。该包装器包装了 tika-app-1.7.jar。我的问题是什么是最好的方法:包装
我正在尝试在 Nutch 中启用 Tika 的 BoilerpipeContentHandler 解析器,以从网页中提取文章文本。为此,我配置了 tika-config.xml 以排除 HTMLPar
我正在尝试解析一些包含工程图纸的 PDF 文件以获取文件中的文本数据。我尝试将 TIKA 用作 python 的 jar,并将其与 jnius 包一起使用(在此处使用本教程: http://www.h
在 Tika 的网站上,它说(关于 tika-app-1.2.jar)它可以在服务器模式下使用。有谁知道如何在该服务器运行后发送文档并从该服务器接收解析的文本? 最佳答案 Tika 支持两种“服务器”
我正在使用 Tika 解析大型 pdf 和 word 文档,但我收到以下错误消息。 Your document contained more than 100000 characters, and s
我正在使用 Apache Tika 从 PDF 文件获取内容。 当我运行它时,出现以下错误。我没有在任何地方看到这个错误的记录,这只是一个糟糕的惊喜。 org.apache.tika.sax.Writ
我知道 Tika 有一个非常好的包装器,它让我可以像这样从解析文件中获取一个 Reader: Reader parsedReader = tika.parse(in); 但是,如果我使用它,我无法指定
我阅读了一些文章,认为服务器模式下的 tika 可以提高性能。有人能解释一下怎么做吗?我们能否在 Java 应用程序中实现类似的功能以获得更好的性能? Running tika in server m
在我们的应用程序中,我们使用 Apache Tika 处理文件。但是有一些文件(例如*.mov,*.mp4)Tika无法处理并在用户的Temp文件夹中留下相应的*.tmp文件。经过一些研究,我发现这是
我是一名优秀的程序员,十分优秀!