admin管理员组文章数量:1605301
1.java中实现word转pdf几种方式如下
1.使用jacob(Java COM Bridge)操作offfice的方式,基于这种方式无论是水印还是格式都可以完美转换;但是这个方式都只是基于windos下,但有些项目是需要部署到linux下的,因此这个方式有很大局限性。
2.利用apache poi 方式进行转换,可以支持linux和windos系统。但是局限性就是,采用这种方法是将word转换成html格式,再将html格式转成pdf,因此此方法的转换格式上会存在一定差异。
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontProvider;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.PicturesManager;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.hwpf.usermodel.PictureType;
import org.apache.poi.xwpf.converter.core.BasicURIResolver;
import org.apache.poi.xwpf.converter.core.FileImageExtractor;
import org.apache.poi.xwpf.converter.core.utils.StringUtils;
import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Entities;
import org.jsoup.select.Elements;
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
import java.nio.charset.Charset;
/**
* 使用poi+itextpdf进行word转pdf
* 先将word转成html,再将html转成pdf
*
* @author :yuwenke
* @date :Created in 2021/10/12 22:41
*/
public class TestPoi {
/**
* 将doc格式文件转成html
*
* @param docPath doc文件路径
* @param imageDir doc文件中图片存储目录
* @return html
*/
public static String doc2Html(String docPath, final String imageDir) {
String content = null;
ByteArrayOutputStream baos = null;
try {
HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(docPath));
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) {
File file = new File(imageDir + suggestedName);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
fos.write(content);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null) {
fos.close();
}
} catch (Exception e) {
版权声明:本文标题:关于java中实现word转pdf 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728481448a1160141.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论