Word转pdf
1、导入依赖
1.1 下载依赖(两个依赖已经打包好了)
依赖下载地址: https://files.cnblogs.com/files/blogs/605855/lib.rar
下载下来之后:
1.2 安装到本地maven库中
mvn install:install-file -DgroupId=com.aspose.words -DartifactId=aspose-words-jdk16 -Dversion=14.9.0 -Dpackaging=jar -Dfile=aspose-words-14.9.0-jdk16.jar
mvn install:install-file -DgroupId=com.aspectjweaver -DartifactId=aspectjweaver -Dversion=1.9.1 -Dpackaging=jar
1.3 在pom.xml中引入依赖
<dependencies>
<dependency>
<groupId>com.aspectjweaver</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>com.aspose.words</groupId>
<artifactId>aspose-words-jdk16</artifactId>
<version>14.9.0</version>
</dependency>
</dependencies>
2、编写代码(需要水印功能,解开注释即可)
public class Word2PdfUtil {
/**
*
* @param toFilePath 文件夹路径
* @param fileName 文件名
* @param type 文件类型(后缀 例如 .doc)
* @return
* @throws Exception
*/
public static String file2pdf(String toFilePath, String fileName, String type ) throws Exception {
String htmFileName;
//获取转换成PDF之后文件名
if(".doc".equals(type)){
htmFileName = fileName+".pdf";
}else if(".docx".equals(type)){
htmFileName = fileName+".pdf";
}else{
return null;
}
//通过转换之后的PDF文件名,创建PDF文件
File htmlOutputFile = new File(toFilePath + File.separatorChar + htmFileName);
//获取文件输出流
FileOutputStream os = new FileOutputStream(htmlOutputFile);
//获取Doc文档对象模型
Document doc = new Document(toFilePath+ File.separatorChar + fileName+type);
//为doc文档添加水印
// insertWatermarkText(doc, "cpeccsw");
//将doc文旦转换成PDF文件并输出到之前创建好的pdf文件中
doc.save(os, SaveFormat.PDF);
//关闭输出流
if(os!=null){
os.close();
}
return htmFileName;
}
/**
* 为word文档添加水印
* @param doc word文档模型
* @param watermarkText 需要添加的水印字段
* @throws Exception
*/
// private static void insertWatermarkText(Document doc, String watermarkText) throws Exception {
// Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT);
// //水印内容
// watermark.getTextPath().setText(watermarkText);
// //水印字体
// watermark.getTextPath().setFontFamily("宋体");
// //水印宽度
// watermark.setWidth(500);
// //水印高度
// watermark.setHeight(100);
// //旋转水印
// watermark.setRotation(-40);
// //水印颜色
// watermark.getFill().setColor(Color.lightGray);
// watermark.setStrokeColor(Color.lightGray);
// watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);
// watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);
// watermark.setWrapType(WrapType.NONE);
// watermark.setVerticalAlignment(VerticalAlignment.CENTER);
// watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
// Paragraph watermarkPara = new Paragraph(doc);
// watermarkPara.appendChild(watermark);
// for (Section sect : doc.getSections())
// {
// insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY);
// insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_FIRST);
// insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_EVEN);
// }
// System.out.println("Watermark Set");
// }
/**
* 在页眉中插入水印
* @param watermarkPara
* @param sect
* @param headerType
* @throws Exception
*/
// private static void insertWatermarkIntoHeader(Paragraph watermarkPara, Section sect, int headerType) throws Exception{
// HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType);
// if (header == null)
// {
// header = new HeaderFooter(sect.getDocument(), headerType);
// sect.getHeadersFooters().add(header);
// }
// header.appendChild(watermarkPara.deepClone(true));
// }
}