开发工具 使用

1.导出pdf
官方文档地址: https://www.x-easypdf.cn/guide/pdfbox/%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8.html
文章地址: https://blog.csdn.net/ejinxian/article/details/127875247

<dependency>
	  <groupId>wiki.xsx</groupId>
	  <artifactId>x-easypdf</artifactId>
	  <version>2.11.3</version>
</dependency>
  @Test
    public void document() {
        // 定义输出路径
        String outputPath = "E:\\\\pdf\\\\test\\\\fo\\\\template-demo.pdf";
        // 定义书签
        XEasyPdfTemplateBookmark bookmark = XEasyPdfTemplateHandler.Bookmark.build()
                // 设置标题
                .setTitle("目录")
                // 设置内部地址(对应组件id)
                .setInternalDestination("title");
        // 创建标题
        XEasyPdfTemplateText title = XEasyPdfTemplateHandler.Text.build()
                // 设置id
                .setId("title")
                // 设置文本
                .setText("贵阳市简介")
                // 设置字体大小
                .setFontSize("20pt")
                // 设置水平居中
                .setHorizontalStyle("center");
        // 创建扩展文本
        XEasyPdfTemplateTextExtend createText = XEasyPdfTemplateHandler.TextExtend.build()
                // 设置字体大小
                .setFontSize("12pt")
                // 设置段前空白
                .setSpaceBefore("12pt")
                // 设置段前缩进
                .setStartIndent("60pt")
                // 设置文本间隔
                .setTextSpacing("80pt")
                // 设置文本
                .addText(
                        XEasyPdfTemplateHandler.Text.build().setText("创建时间:2022-11-11 00:00:00"),
                        XEasyPdfTemplateHandler.Text.build().setText("创建人:x-easypdf")
                );
 
        // 创建二维码
        XEasyPdfTemplateBarcode barcode = XEasyPdfTemplateHandler.Barcode.build()
                // 设置条形码类型
                .setType("qr_code")
                // 设置条形码内容
                .setContent("https://baike.baidu.com/item/贵阳/438289")
                // 设置条形码说明文字
                .setWords("扫一扫")
                // 设置条形码图像宽度
                .setWidth("60pt")
                // 设置条形码图像高度
                .setHeight("60pt")
                // 设置水平居右
                .setHorizontalStyle("right")
                // 设置上移62pt
                .setMarginTop("-62pt");
        // 创建文本
        XEasyPdfTemplateText text = XEasyPdfTemplateHandler.Text.build()
                // 设置id
                .setId("text")
                // 设置文本
                .setText(
                        "贵阳,简称“筑”,别称林城、筑城,贵州省辖地级市、省会、Ⅰ型大城市,国务院批复确定的中国西南地区重要的中心城市之一、" +
                                "重要的区域创新中心和全国重要的生态休闲度假旅游城市。" +
                                "贵阳地处黔中山原丘陵中部,东南与黔南布依族苗族自治州的瓮安、龙里、惠水、长顺4县接壤," +
                                "西靠安顺市的平坝区和毕节市的织金县,北邻毕节市的黔西市、金沙县和遵义市的播州区," +
                                "截至2020年,全市下辖6个区、3个县,代管1个县级市。截至2021年末,贵阳市常住人口610.23万人。"
                )
                // 设置段前空白
                .setSpaceBefore("12pt")
                // 设置文本缩进
                .setTextIndent("24pt");
        // 创建文本
        XEasyPdfTemplateText remark = XEasyPdfTemplateHandler.Text.build()
                // 设置文本
                .setText("-- 摘自百度百科")
                // 设置字体大小
                .setFontSize("12pt")
                // 设置水平居右
                .setHorizontalStyle("right");
        // 创建子书签
        XEasyPdfTemplateBookmark child = XEasyPdfTemplateHandler.Bookmark.build()
                // 设置标题
                .setTitle("贵阳市行政区划")
                // 设置内部地址(对应组件id)
                .setInternalDestination("tableText");
        // 添加子书签
        bookmark.addChild(child);
        // 创建文本
        XEasyPdfTemplateText tableText = XEasyPdfTemplateHandler.Text.build()
                // 设置id
                .setId("tableText")
                // 设置文本
                .setText("贵阳市行政区划")
                // 设置字体大小
                .setFontSize("20pt")
                // 设置当前位置分页
                .setBreakBefore("page")
                // 设置段前空白
                .setSpaceBefore("20pt")
                // 设置水平居右
                .setHorizontalStyle("center");
        // 创建表格
        XEasyPdfTemplateTable table = XEasyPdfTemplateHandler.Table.build().setHeader(
                // 设置表头
                XEasyPdfTemplateHandler.Table.Header.build().addRow(
                        this.createRow("#7C7D7D", "center", "名称", "区划代码", "人口(万人)", "面积(平方千米)")
                )
        ).setBody(
                // 设置表格主体
                XEasyPdfTemplateHandler.Table.Body.build().addRow(
                        this.createRow(null, "left", "贵阳市", "520100", "599", "8035"),
                        this.createRow(null, "left", "南明区", "520102", "105", "271"),
                        this.createRow(null, "left", "云岩区", "520103", "106", "94"),
                        this.createRow(null, "left", "花溪区", "520111", "97", "964"),
                        this.createRow(null, "left", "乌当区", "520112", "34", "686"),
                        this.createRow(null, "left", "白云区", "520113", "46", "270"),
                        this.createRow(null, "left", "观山湖区", "520115", "64", "309"),
                        this.createRow(null, "right", "清镇市", "520181", "63", "1302"),
                        this.createRow(null, "right", "开阳县", "520121", "34", "2026"),
                        this.createRow(null, "right", "息烽县", "520122", "22", "1037"),
                        this.createRow(null, "right", "修文县", "520123", "29", "1076")
                )
        ).setMinRowHeight("30pt").setVerticalStyle("center");
        // 创建页面
        XEasyPdfTemplatePage page = XEasyPdfTemplateHandler.Page.build()
                // 设置页面id
                .setId("pageId")
                // 设置字体
                .setFontFamily("微软雅黑")
                // 设置字体大小
                .setFontSize("15pt")
                // 设置边距(上下左右)
                .setMargin("20pt")
                // 设置主体内容
                .addBodyComponent(title, createText, barcode, text, remark, tableText, table)
                // 设置页脚高度
                .setFooterHeight("20pt")
                // 设置页脚内容
                .addFooterComponent(
                        // 创建块容器并添加内容
                        XEasyPdfTemplateHandler.BlockContainer.build().addComponent(
                                // 创建文本
                                XEasyPdfTemplateHandler.Text.build().setText("第 "),
                                // 创建当前页码
                                XEasyPdfTemplateHandler.CurrentPageNumber.build(),
                                XEasyPdfTemplateHandler.Text.build().setText(" 页,共 "),
                                // 创建总页码并设置页面id
                                XEasyPdfTemplateHandler.TotalPageNumber.build().setPageId("pageId"),
                                XEasyPdfTemplateHandler.Text.build().setText(" 页")
                        ).setHorizontalStyle("center")
                )
                // 设置主体水印
                .setBodyWatermark(
                        // 创建文字水印
                        XEasyPdfTemplateHandler.Watermark.build()
                                // 设置水印图片目录
                                .setTempDir("E:\\\\pdf\\\\test\\\\fo")
                                // 设置水印id
                                .setId("watermark")
                                // 设置水印内容
                                .setText("贵阳", "x-easypdf")
                                // 设置水印图像宽度
                                .setWidth("600pt")
                                // 设置水印图像高度
                                .setHeight("300pt")
                                // 设置水印显示宽度
                                .setShowWidth("200pt")
                                // 设置文字大小
                                .setFontSize("100pt")
                                // 设置文字颜色
                                .setFontColor("gray")
                                // 设置文字透明度
                                .setFontAlpha("100")
                                // 设置逆时针旋转
                                .setRadians("-45")
                                // 开启文件覆盖
                                .enableOverwrite()
                );
        // 添加页面、书签并转换
        XEasyPdfTemplateHandler.Document.build().addPage(page).addBookmark(bookmark).transform(outputPath);
    }
 
    private XEasyPdfTemplateTableRow createRow(String backgroundColor, String style, String... texts) {
        XEasyPdfTemplateTableRow row = XEasyPdfTemplateHandler.Table.Row.build();
        for (int i = 0; i < texts.length; i++) {
            row.addCell(
                    XEasyPdfTemplateHandler.Table.Cell.build().addComponent(
                            XEasyPdfTemplateHandler.Text.build().setText(texts[i])
                    ).setBorderStyle("solid").setBackgroundColor(backgroundColor).setHorizontalStyle(style)
            );
        }
        return row;
    }

2.导出word
官方文档地址: http://deepoove.com/poi-tl/#plugin-list

<dependency>
  <groupId>com.deepoove</groupId>
  <artifactId>poi-tl</artifactId>
  <version>1.12.1</version>
</dependency>

3.导出excel文件
官方地址: https://easyexcel.opensource.alibaba.com/docs/current/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值