java – 使用apache tika在doc文件中获取嵌入式资源
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使用apache tika在doc文件中获取嵌入式资源,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2033字,纯文字阅读大概需要3分钟。
内容图文
![java – 使用apache tika在doc文件中获取嵌入式资源](/upload/InfoBanner/zyjiaocheng/817/21c91acbdb664bbd9ab42234c6f7d6dd.jpg)
我有ms文档包含文本和图像.我想解析它们以获得xml结构.在研究之后,我最终使用apache tika来转换我的文档.我可以将我的doc解析为xml.这是我的代码:
AutoDetectParser parser=new AutoDetectParser();
InputStream input=new FileInputStream(new File("1.docx"));
Metadata metadata = new Metadata();
StringWriter sw = new StringWriter();
SAXTransformerFactory factory = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
TransformerHandler handler = factory.newTransformerHandler();
handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "xml");
handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "no");
handler.setResult(new StreamResult(sw));
parser.parse(input, handler, metadata, new ParseContext());
String xhtml = sw.toString();
我想从文档中提取图像并将其转换为二进制格式.我不知道如何从文档中提取嵌入的资源.
解决方法:
您需要定义自己的类来实现Parser,并将其附加到解析外部文档时提供的ParseContext.然后将为所有嵌入资源调用您的Parser,允许您根据需要将其保存
我能想到的最好的例子是Tika CLI,正如-z(extract)标志所使用的那样.如果您查看source code for TikaCLI,那么您正在寻找FileEmbeddedDocumentExtractor作为示例.
最简单的代码是这样的:
final AutoDetectParser parser = new AutoDetectParser();
public class ExtractParser extends AbstractParser {
private int att = 0;
public Set<MediaType> getSupportedTypes(ParseContext context) {
// Everything AutoDetect parser does
return parser.getSupportedTypes(context);
}
public void parse(
InputStream stream, ContentHandler handler,
Metadata metadata, ParseContext context)
throws IOException, SAXException, TikaException {
// Stream to a new file
File f = new File("out-" + (++att) + ".bin");
FileOutputStream fout = new FileOutputStream(f);
IOUtils.copy(strea, fout);
fout.closee();
}
}
InputStream input = new FileInputStream(new File("1.docx"));
Metadata metadata = new Metadata();
ParseContext context = new ParseContext();
context.set(Parser.class, extractParser);
parser.parse(input, handler, metadata, context);
如果您愿意,也可以使用EmbeddedDocumentExtractor接口,如果最好直接使用Parser,则取决于您想要做什么
内容总结
以上是互联网集市为您收集整理的java – 使用apache tika在doc文件中获取嵌入式资源全部内容,希望文章能够帮你解决java – 使用apache tika在doc文件中获取嵌入式资源所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。