我正在使用Apache Tika从包括office在内的各种文档格式中提取原始文本。
从包含超链接的word文档中提取文本时,仅提取文本并丢失有关超链接的信息。
有没有办法配置解析器,以便提取底层链接?
ParseContext context = new ParseContext();
Detector detector = new DefaultDetector();
Parser parser = new AutoDetectParser(detector);
context.set(Parser.class, parser);
Metadata metadata = new Metadata();
try (TikaInputStream input = TikaInputStream.get(new File(fileName))) {
BodyContentHandler handler = new BodyContentHandler();
parser.parse(input, handler, metadata, context);
String rawText = handler.toString();
input.close();
}
我正在使用tika-app从bash中的office文档中提取超链接。我正在使用--html选项输出文件的HTML内容。然后我使用sed和grep将HTML过滤到该HTML中的href属性的内容。我得到的结果是每个href的内容,每行一个。
java -jar /root/tika-app-1.20.jar --html TEST.docx 2>/dev/null | sed 's/href/\nhref/g' | grep '^href' | sed 's/href="//' | sed 's/".*//'
我知道OP不使用tika-app,但也可以使用Java中的Tika来应用一般方法。