Word转pdf

Word转pdf

1、导入依赖

1.1 下载依赖(两个依赖已经打包好了)

依赖下载地址: https://files.cnblogs.com/files/blogs/605855/lib.rar

下载下来之后:

Word转pdf

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));
//    }
}

上一篇:mybatis 的模糊查询,别名,添加后返回自增列的值,mapper中sql字段的提取 configration节点中子节点顺序


下一篇:Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习