java rtf 转 html_Java:将 rtf 或 doc 转成 html 格式

该博客展示了如何使用Java将RTF和DOC文件转换为HTML格式。通过Apache POI库,创建了一个名为`Word2HtmlAboutPic`的类,它包含用于读取输入文件、写入HTML输出以及管理图片转换的方法。`convert2Html`方法处理文档转换,同时使用自定义的图片管理器来处理图片,将其编码为base64并插入到HTML中。
摘要由CSDN通过智能技术生成

packageconv;importjava.io.BufferedWriter;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStreamWriter;importjava.util.Base64;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.ParserConfigurationException;importjavax.xml.transform.OutputKeys;importjavax.xml.transform.Transformer;importjavax.xml.transform.TransformerException;importjavax.xml.transform.TransformerFactory;importjavax.xml.transform.dom.DOMSource;importjavax.xml.transform.stream.StreamResult;importorg.apache.poi.hwpf.HWPFDocument;importorg.apache.poi.hwpf.converter.PicturesManager;importorg.apache.poi.hwpf.converter.WordToHtmlConverter;importorg.apache.poi.hwpf.usermodel.PictureType;importorg.w3c.dom.Document;public classWord2HtmlAboutPic {public static voidmain(String argv[]) {try{

convert2Html("D://2.doc", "D://2.html");

}catch(Exception e) {

e.printStackTrace();

}

}public static voidwriteFile(String content, String path) {

FileOutputStream fos= null;

BufferedWriter bw= null;try{

File file= newFile(path);

fos= newFileOutputStream(file);

bw= new BufferedWriter(new OutputStreamWriter(fos, "GB2312"));

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) {

ie.printStackTrace();

}

}

}public static void write2File(byte[] content, String path) {

FileOutputStream fos= null;

BufferedWriter bw= null;try{

File file= newFile(path);

fos= newFileOutputStream(file);

fos.write(content);

fos.close();

}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) {

ie.printStackTrace();

}

}

}public static voidconvert2Html(String fileName, String outPutFile)throwsTransformerException, IOException, ParserConfigurationException {

Base64.Encoder encoder=Base64.getEncoder();

HWPFDocument wordDocument= new HWPFDocument(newFileInputStream(fileName));

WordToHtmlConverter wordToHtmlConverter= newWordToHtmlConverter(

DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());

wordToHtmlConverter.setPicturesManager(newPicturesManager() {public String savePicture(byte[] content, PictureType pictureType, String suggestedName, floatwidthInches,floatheightInches) {

String encodedText= newString(encoder.encode(content));

String imgSrc= "data:" + pictureType.getMime() + ";" + "base64," +encodedText;returnimgSrc;

}

});

wordToHtmlConverter.processDocument(wordDocument);

Document htmlDocument=wordToHtmlConverter.getDocument();

ByteArrayOutputStream out= newByteArrayOutputStream();

DOMSource domSource= newDOMSource(htmlDocument);

StreamResult streamResult= newStreamResult(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();

write2File(out.toByteArray(), outPutFile);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值