java将数据转为pdf并添加图片、文字水印(表格样式)超简易模式

pdf预览、导出、文字、图片水印(表格样式)

  • 用到的maven依赖

<!-- pdf -->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
</dependency>
<!-- pdf 转 图片 -->
<dependency>
	<groupId>org.apache.pdfbox</groupId>
	<artifactId>pdfbox</artifactId>
</dependency>
<!-- 字体 -->
<dependency>
	<groupId>com.itextpdf</groupId>
	<artifactId>itext-asian</artifactId>
</dependency>		
  • 用到的工具类

请添加图片描述

PDFUtils.java :主要操作页面转换为pdf

FileUtils.java : 导出、预览pdf使用

config.properties :pdf中使用的字体的位置(部分字体无法显示中文,建议华文系列)
工具类地址 密码:eqqu

请添加图片描述config.properties中配置文件内容

  • 使用

    前端页面直接请求这里携带一个状态参数,通过响应对象到浏览器

@RequestMapping("exprotPDF")
public @ResponseBody void exprotPDF(Integer mode, HttpServletResponse response) throws Exception {
    // 从数据库查询出需要转换的内容
    PageInfo<Funds> page = fundsService.queryByPage(null, 1, 100);
    // 创建一个文档对象
    Document document = new Document();
    // 生成pdf文件名称
    String pdf = UUID.randomUUID().toString() + ".pdf";
    // 建立一个pdf的书写器,跟上面文档建立关系 可以将文档写入磁盘
    PdfWriter writer = PDFUtils.createDoc(document, "d:/mypdf/" + pdf);
    // 文档中要添加的内容  标题 等等
    ArrayList<String> list = new ArrayList<>();
    list.add("基金列表");
    // 通过工具类给文档对象添加并规定字体大小
    PDFUtils.addContent(document,list,20);
    // 给文档对象添加表格,标明表头,实体类中名称,数据来源,页面从左向右偏移量,从下向上偏移量
    PDFUtils.addTable(writer,new String[] {"基金编号","基金名称","基金价格"},new String[]{"id","name","price"},page.getList(),40,600);
    // 一定要先关闭 在添加水印
    document.close();
    writer.close();
    // 添加水印 参数:要作为水印的图片位置,文件输入流(未加水印的位置),文件输出流(添加完水印的pdf要输出位置),文字水印
    PDFUtils.markImage("G:\\img\\323743.jpg",new FileInputStream("d:/mypdf/"+ pdf),new FileOutputStream("d:/mypdf1/"+pdf),"版权所有");
    // 下载文件 响应对象,加完水印之后的位置,要生成的文件名,状态(0:导出,1:预览)
    FileUtils.download(response,"d:/mypdf1/"+pdf,"基金列表.pdf",mode);
}
  • 效果

请添加图片描述
请添加图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值