x-easypdf v2.7.8 版本发布,新增 PDF 转换器

x-easypdf基于pdfbox二次封装,极大降低使用门槛,以组件化的形式进行pdf的构建。简单易用,仅需一行代码,便可完成pdf的相关操作。

本次更新内容如下:

新特性:

  1. 文档替换器XEasyPdfDocumentReplacer优化文本替换逻辑
  2. 新增pdf转换器XEasyPdfConvertor,支持doc/docx/jpg/tiff/markdown/html/mhtml/rtf/odt/txt/mobi等格式转pdf,需添加aspose-words依赖
  3. 文档XEasyPdfDocument新增开启重置上下文的方法
  4. 页面XEasyPdfPage新增开启重置上下文的方法

原有变更:

  1. 页面参数类XEasyPdfPageParam改为私有类

问题修复: 无

新特性说明:

本次新增pdf转换器XEasyPdfConvertor,其中提供一系列转pdf的方法,需依赖aspose-words(改依赖为收费软件,使用试用版会生成水印),可配合文本替换的方法实现word转pdf模板进行模板导出的功能,可参考以下方式实现:

1.  使用word制作模板:

2.  使用pdf转换器转为pdf模板(水印请自行处理):

pom文件中添加仓库与依赖:

<!--添加仓库-->
<repositories>
        <repository>
            <id>AsposeJavaAPI</id>
            <name>Aspose Java API</name>
            <url>https://repository.aspose.com/repo/</url>
        </repository>
</repositories>
<!--添加依赖-->
<dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-words</artifactId>
        <version>22.4</version>
        <type>pom</type>
</dependency>

转换代码:

// word源文件路径
String source = "C:\\Users\\Administrator\\Desktop\\test.doc";
// pdf文件路径
String dest = "C:\\Users\\Administrator\\Desktop\\test.pdf";
// 转换
XEasyPdfConvertor.toPdf(source, dest);

效果如下:

3. 替换模板:

@Test
    public void testFill(){
        // 模板文件路径
        String sourcePath = "C:\\Users\\Administrator\\Desktop\\test.pdf";
        // 替换后的文件路径
        String filePath = "C:\\Users\\Administrator\\Desktop\\testFill.pdf";
        // 字体文件路径,与模板文件字体保持一致,非必须
        String fontPath = "C:\\Windows\\Fonts\\simsun.ttc,0";
        // 定义替换字典(key为待替换字符串,value为替换后的字符串)
        Map<String, String> map = new HashMap<>(9);
        map.put("title", "测试报告");
        map.put("date", "2022-04-10");
        map.put("depart", "呼吸外科");
        map.put("no", "0001");
        map.put("name", "张三");
        map.put("sex", "男");
        map.put("age", "10");
        map.put("sign", "李某某");
        map.put("signTime", "2022-04-10 12:00:00");
        // 读取模板文件并替换保存
        XEasyPdfHandler.Document
                .load(sourcePath)
                .replacer()
                .setFontPath(fontPath)
                .enableReplaceCOSArray()
                .replaceText(map)
                .finish(filePath);
    }

效果如下:

猜你喜欢

转载自www.oschina.net/news/190479/x-easypdf-2-7-8-released