【发布时间】:2019-07-05 03:57:54
【问题描述】:
如何使用 apache tika 提取 (pdf,docx,doc,odt) 等不带页眉和页脚的文档。
【问题讨论】:
-
抓取为 XHTML,去掉页眉和页脚 div,然后根据需要缩混为纯文本?
标签: apache-tika
如何使用 apache tika 提取 (pdf,docx,doc,odt) 等不带页眉和页脚的文档。
【问题讨论】:
标签: apache-tika
我用所有文件格式测试了这段代码,有些解析得很好(pdf 和 html),但不适用于 doc、docx、xlsx、xls 格式
import org.apache.tika.exception.TikaException;
import org.apache.tika.io.TikaInputStream;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.html.BoilerpipeContentHandler;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import org.apache.tika.metadata.Metadata;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
public class NewtikaXpath {
public static void main(String args[]) throws IOException, SAXException, TikaException {
AutoDetectParser parser = new AutoDetectParser();
ContentHandler textHandler = new BodyContentHandler();
Metadata xmetadata = new Metadata();
try (InputStream stream = TikaInputStream.get(new URL("your favourite url"))){
parser.parse(stream, new BoilerpipeContentHandler(textHandler), xmetadata);
System.out.println("text:\n" + textHandler.toString());
}
}
}
【讨论】:
您可以按程序进行。以下是所有 tika 支持的文档的工作方式,包括 docx、pptx、odt pdf
ParseContext parseContext = new ParseContext();
AutoDetectParser parser = new AutoDetectParser();
ContentHandler contentHandler = new BodyContentHandler();
inputStream = new BufferedInputStream(new FileInputStream(inputFileName));
Metadata metadata = new Metadata();
OfficeParserConfig officeParserConfig = new OfficeParserConfig();
officeParserConfig.setIncludeHeadersAndFooters(false);
parseContext.set(OfficeParserConfig.class, officeParserConfig);
parser.parse(inputStream, contentHandler, metadata, parseContext);
System.out.println(contentHandler.toString());
【讨论】: