安卓文档解析
来源:互联网 发布:软件研究资料 编辑:程序博客网 时间:2024/06/05 17:17
之前做的一个项目有需要用到支持对Word文档的查看,于是就从网上找了一些现成的DEMO。
对doc类型的处理方法有很多,举个例子:
private void convert2Html(String fileName, String outPutFile) throws TransformerException, IOException, ParserConfigurationException { HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(fileName)); WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory .newInstance() .newDocumentBuilder().newDocument()); wordToHtmlConverter.setPicturesManager(new PicturesManager() { @Overridepublic String savePicture(byte[] content, PictureType pictureType, String suggestedName, float widthInches, float heightInches) { return suggestedName; } }); wordToHtmlConverter.processDocument(wordDocument); // save pictures@SuppressWarnings("rawtypes") List pics = wordDocument.getPicturesTable().getAllPictures(); if (pics != null) { for (int i = 0; i < pics.size(); i++) { Picture pic = (Picture) pics.get(i); System.out.println(); try { pic.writeImageContent(new FileOutputStream(Environment .getExternalStorageDirectory() + "/doc/"+ pic.suggestFullFileName())); } catch (FileNotFoundException e) { e.printStackTrace(); } } } Document htmlDocument = wordToHtmlConverter.getDocument(); ByteArrayOutputStream out = new ByteArrayOutputStream(); DOMSource domSource = new DOMSource(htmlDocument); StreamResult streamResult = new StreamResult(out); TransformerFactory tf = TransformerFactory.newInstance(); Transformer serializer = tf.newTransformer(); serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); serializer.setOutputProperty(OutputKeys.METHOD, "html"); serializer.transform(domSource, streamResult); out.close(); writeFile(new String(out.toByteArray()), outPutFile);}
docx是对doc文档进行压缩处理后的文档,用解析doc的方法解析不了docx类型的文档,需要特殊的处理。一般解析docx类型文档的方法,是通过poi或者docx4j,我在项目中
最终使用的是AndroidDocxToHtml这个开源项目。在eclipse上可以正常使用,但我在android studio中使用时,却报出一错误,不知道是不是只有我一个人需要了这个问题。
跟踪Log输出,发现是在ae-awt.jar中使用了jdk中的rt.jar中的一个文件,在eclipse可以很好的支持对jdk中rt.jar文件的支持,但在android studio中却不支持。本想找到
ae-awt.jar的源码进行改正一下重新打包,却没找到它的源代码,退而求其次就将其反编译,找到出错的文件并进行修正后重新打了个包,OK,最终成功运行。
pdf方档的解析需要C++的支持,好在已经有好多这方面的so库资源可以直接使用,基本上不用修改。
近期整理了一下这个DEMO,给大家提供一个参考。http://download.csdn.net/detail/it_math/9786247
0 0
- 安卓文档解析
- 安卓文档
- 安卓文档
- 使用安卓内置的pull解析器解析xml文档,并自动映射成bean
- 安卓xml解析
- 安卓Jsoup解析
- 安卓多媒体解析
- 安卓HelloWorld解析
- 解析 xml 安卓
- 安卓 解析xml
- 安卓Json解析
- 安卓Binder解析
- 安卓_解析
- 安卓Json解析
- 安卓xml解析
- IOS 安卓 架构解析
- 深度解析安卓样式
- 安卓main.mk解析
- (转载)java中outputStream与inputStream的相互转换
- MATLAB中常用的函数和变量
- JavaScript初识
- 程序员成长第一步:编辑器和调试工具
- C#函数学习
- 安卓文档解析
- js中的return flase, return true, return的区别
- int 边界
- XML基础
- 教你写Linux设备驱动程序:一个简短的教程
- 完整的maven仓库和pom.xml
- Android编译工具Freeline的使用
- 单源最短路径---BellmanFord,Dijkstra
- java和android SDK环境变量配置过程(windows)