x-easypdf v2.7.4 版本发布,新增布局组件

一个用搭积木的方式构建pdf的框架(基于pdfbox)

本次更新内容如下:

新特性:
1. XEasyPdfDocumentImager文档图像器新增设置图片DPI的方法
2. XEasyPdfTable表格组件支持表格嵌套
3. XEasyPdfRow表格行新增手动分页的方法
4. XEasyPdfCell单元格新增关闭上、下、左、右边框的方法
5. XEasyPdfWatermark水印组件新增设置水印单行文本数的方法
6. XEasyPdfWatermark水印组件新增设置水印文本字符间隔的方法
7. XEasyPdfWatermark水印组件新增设置水印文本行间距的方法
8. XEasyPdfWatermark水印组件新增设置位置坐标的方法
9. 新增XEasyPdfHorizontalLayout水平布局组件,支持嵌套任意组件
10. 新增XEasyPdfVerticalLayout垂直布局组件,支持嵌套任意组件

原有变更:
无

问题修复:
1. 文本替换问题(issue#I4YVA62. 使用布局组件可实现文本环绕图片的需求(issue#I4VFXH

布局组件的简单应用:实现文字环绕图片的效果

String filePath = OUTPUT_PATH + "testLayout.pdf";
        String imagePath = OUTPUT_PATH + "test.jpg";
        List<String> leftList = new ArrayList<>();
        List<String> rightList = new ArrayList<>();
        String content = "经过实际测试,目前在访问上述提及的四款广告拦截扩展的页面时,确实是会弹出以下提示";
        boolean isLeft = true;
        // 拆分文本
        while (content.length()>5) {
            if (isLeft) {
                leftList.add(content.substring(0, 5));
                isLeft = false;
            }else {
                rightList.add(content.substring(0, 5));
                isLeft = true;
            }
            content = content.substring(5);
        }
        rightList.add(content);
        // 添加页面
        XEasyPdfHandler.Document.build().addPage(
                // 添加组件
                XEasyPdfHandler.Page.build().addComponent(
                        // 构建垂直布局(包含三行)
                        XEasyPdfHandler.Layout.Vertical.build().setMarginLeft(150F).setMarginTop(200F)
                                // 添加布局组件(第一行)
                                .addLayoutComponent(
                                        // 构建布局组件
                                        XEasyPdfHandler.Layout.Component.build(300F, 20F).setComponent(
                                                // 构建水平布局
                                                XEasyPdfHandler.Layout.Horizontal.build()
                                                        // 添加布局组件
                                                        .addLayoutComponent(
                                                                // 构建布局组件
                                                                XEasyPdfHandler.Layout.Component.build(300F, 20F).setComponent(
                                                                        // 设置文本组件
                                                                        XEasyPdfHandler.Text.build("贵阳贵阳贵阳贵阳贵阳贵阳贵阳贵").setFontSize(20F)
                                                                )
                                                        )
                                        )
                                )
                                // 添加布局组件(第二行)
                                .addLayoutComponent(
                                        // 构建布局组件
                                        XEasyPdfHandler.Layout.Component.build(100F, 100F).setComponent(
                                                // 构建水平布局(包含三列)
                                                XEasyPdfHandler.Layout.Horizontal.build()
                                                        // 添加布局组件
                                                        .addLayoutComponent(
                                                                // 构建布局组件
                                                                XEasyPdfHandler.Layout.Component.build(100F, 100F).setComponent(
                                                                        // 设置文本组件
                                                                        XEasyPdfHandler.Text.build(leftList).setFontSize(20F)
                                                                )
                                                        )
                                                        // 添加布局组件
                                                        .addLayoutComponent(
                                                                // 构建布局组件
                                                                XEasyPdfHandler.Layout.Component.build(100F, 100F).setComponent(
                                                                        // 设置图片组件
                                                                        XEasyPdfHandler.Image.build(new File(imagePath)).disableSelfAdaption()
                                                                )
                                                        )
                                                        // 添加布局组件
                                                        .addLayoutComponent(
                                                                // 构建布局组件
                                                                XEasyPdfHandler.Layout.Component.build(100F, 100F).setComponent(
                                                                        // 设置文本组件
                                                                        XEasyPdfHandler.Text.build(rightList).setFontSize(20F)
                                                                )
                                                        )
                                        )
                                )
                                // 添加布局组件(第三行)
                                .addLayoutComponent(
                                        // 构建布局组件
                                        XEasyPdfHandler.Layout.Component.build(300F, 20F).setComponent(
                                                // 构建水平布局
                                                XEasyPdfHandler.Layout.Horizontal.build()
                                                        // 添加布局组件
                                                        .addLayoutComponent(
                                                                // 构建布局组件
                                                                XEasyPdfHandler.Layout.Component.build(300F, 20F).setComponent(
                                                                        // 设置文本组件
                                                                        XEasyPdfHandler.Text.build("贵阳贵阳贵阳贵阳贵阳贵阳贵阳贵").setFontSize(20F)
                                                                )
                                                        )
                                        )
                                )
                )
                // 保存并关闭
        ).save(filePath).close();

猜你喜欢

转载自www.oschina.net/news/188377/x-easypdf-2-7-4-released