poi的word转html,怎么显示修订内容的最终状态
发布网友
发布时间:2022-04-26 06:03
我来回答
共1个回答
热心网友
时间:2022-04-21 13:20
实现代码如下:
public class Word2Html {public static void main(String argv[]) {try {//word 路径 html输出路径convert2Html("D:/doctohtml/1.doc","D:/doctohtml/1.html");} catch (Exception e) {e.printStackTrace();}}public static void writeFile(String content, String path) {FileOutputStream fos = null;BufferedWriter bw = null;try {File file = new File(path);fos = new FileOutputStream(file);bw = new BufferedWriter(new OutputStreamWriter(fos,"utf-8"));bw.write(content);} catch (FileNotFoundException fnfe) {fnfe.printStackTrace();} catch (IOException ioe) {ioe.printStackTrace();} finally {try {if (bw != null)bw.close();if (fos != null)fos.close();} catch (IOException ie) {}}}public static void convert2Html(String fileName, String outPutFile)throws TransformerException, IOException,ParserConfigurationException {HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(fileName));//WordToHtmlUtils.loadDoc(new FileInputStream(inputFile));WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());wordToHtmlConverter.setPicturesManager( new PicturesManager() { public String savePicture( byte[] content, PictureType pictureType, String suggestedName, float widthInches, float heightInches ) { //html 中 图片标签中 显示的图片路路径 <img src="d:/test/0.jpg"/> return "d:/doctohtml/"+suggestedName; } } );wordToHtmlConverter.processDocument(wordDocument);//save picturesList 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 {//word中图片的存储路径pic.writeImageContent(new FileOutputStream("D:/doctohtml/"+ 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);}}