java实际项目反射、自定义注解的运用实现itext生成PDF的详细应用教程

开篇引语

小伙伴在学习java是否有这样的困混不知道反射是干嘛的不知道注解有什么用。导致很多人看 java基础的时候迷迷糊糊,那是你还没有在实际项目中遇到,不知道该如何使用它们。接下来我会为你们详细讲解实际项目中是如何运用反射和自定义注解的,不管你现在对反射和注解了解多少,这篇博客站在实际应用角度从业务介绍到代码实现每一步都给出了详细贴图和代码竭力为大家讲解,无论你是否感兴趣你都应该先点赞收藏起来方便以后用到了过来查看。

一、业务场景描述

将14天的气象预报数据以PDF的形式展示,现在已有14天预报的数据,如下。

 要将上面的14条数据放进下面的这个模板中,最终以PDF的形式生成。效果图如下

 二、使用工具准备好模板,最后保存生成PDF

这里需要使用软件工具Adobe Acrobat DC,需要工具的小伙伴可以评论区留言发送:资料。

具体如何使用工具和生成PDF可以看:java使用itex生成PDF-CSDN博客

  

三、代码实现

 实体类展示,这里建议可以大概看一下,先不用看为什么这样设计实体类,以及自定义注解的定义,后面代码具体地方引用了下面的实体类再来看就会清晰很多。

package com.hw.ioz.web.dto;

import com.zye.ioz.common.annotations.ReportFiled;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author:Ttc
 * @date 2024/1/22  14:36
 * @description: 导出大屏预报数据DTO
 */
@Data
public class ForecastDataDTO {
    /**
     * 日期
     */
    @ApiModelProperty(value = "日期", notes = "")
    @ReportFiled(value = "date")
    private String formattedDate;
    /**
     * 天气
     */
    @ApiModelProperty(value = "天气", notes = "")
    @ReportFiled(value = "weather")
    private String weaDay;
    /**
     * 大屏显示风力等级
     */
    @ApiModelProperty(value = "大屏显示风力等级", notes = "")
    @ReportFiled(value = "wind")
    private String largeScreenWind;
    /**
     * 最高温度
     */
    @ApiModelProperty(value = "最高温度", notes = "")
    @ReportFiled(value = "tem_max")
    private String tem1;

    /**
     * 最低温度
     */
    @ApiModelProperty(value = "最低温度", notes = "")
    @ReportFiled(value = "tem_min")
    private String tem2;
}
package com.hw.ioz.web.dto;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * @author:Ttc
 * @date 2024/1/22  15:40
 */
@Data
@AllArgsConstructor
public class PdfFiledDto {
    /**
     * 文本域内容
     */
    private String val;

    /**
     * 字体大小
     */
    private float fontsize;

    /**
     * 自定义字体
     */
    private String fontPath;
}
package com.hw
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值