iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java实现PDF导出功能
  • 775
分享到

Java实现PDF导出功能

java开发语言PDF导出 2023-09-15 21:09:16 775人浏览 安东尼
摘要

一、添加依赖 com.lowagie itext 2.1.5 二、实现示例代码 如下代码中使用了 【SIMYOU

在这里插入图片描述

一、添加依赖

 <dependency>            <groupId>com.lowagiegroupId>            <artifactId>itextartifactId>            <version>2.1.5version>        dependency>

二、实现示例代码

  • 如下代码中使用了 【SIMYOU.TTF】幼圆字体,根据需要可以自行下载
package com.lyp;import com.lowagie.text.*;import com.lowagie.text.Font;import com.lowagie.text.pdf.BaseFont;import com.lowagie.text.pdf.PdfPCell;import com.lowagie.text.pdf.PdfPTable;import com.lowagie.text.pdf.PdfWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.text.SimpleDateFORMat;import java.util.*;import java.util.List;public class downLoadPDF {    public static void main(String[] args) {        String fileName = "test.pdf";        String path = "D:pdf/";        try {            //创建文档,设置页面大小、左右上下边距            Document document = new Document();            //处理中文显示问题,使用资源字体            BaseFont bfChinese = BaseFont.createFont("/font/SIMYOU.TTF",BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);            Font dateTitle = new Font(bfChinese,7,Font.NORMAL);            Font title = new Font(bfChinese,12,Font.BOLD);//文字加粗            Font textFont = new Font(bfChinese,7,Font.NORMAL);//文字正常            //给出输出路径            PdfWriter.getInstance(document, new FileOutputStream(path+fileName));            //打开文档            document.open();            //标题            PdfPTable tableTitle = new PdfPTable(3);            PdfPTable codeTitle = new PdfPTable(1);            //生成一个7列的表格            PdfPTable table = new PdfPTable(7);            //定义每个单元格的宽度            float[] widthsHeaderTitle = {1f,1f,1f};            float[] widthsCodeTitle = {1f};            float[] widthsHeader = {1f,1f,1f,1f,1f,1f,2f};            float lineHeight = (float)20.0;            //设置表格每一格的宽度            tableTitle.setWidths(widthsHeaderTitle);            codeTitle.setWidths(widthsCodeTitle);            table.setWidths(widthsHeader);            //设置表格总体宽度            tableTitle.setWidthPercentage(100);            codeTitle.setWidthPercentage(100);            table.setWidthPercentage(100);            int colSpan = 1;            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");            Date date = new Date(System.currentTimeMillis());            //添加标题            createTableCellLeft("导出人:行如火", textFont, tableTitle, lineHeight, colSpan);            createTableCellCenter("确认出差记录表", title, tableTitle, lineHeight, colSpan);            createTableCellRight(formatter.format(date), dateTitle, tableTitle, lineHeight, colSpan);            document.add(tableTitle);            createTableCellRight("功能码: XXXXXXXXX",textFont, codeTitle, lineHeight, colSpan);            document.add(codeTitle);            document.add(new Paragraph("\n"));            String[] array = {"报表生成日期 ","状态 ", "经办人员 ", "提交时间 ","复核人员 ", "复核时间 ", "情况补充 "};            for (String s : array) {                createTableCell(s, textFont, table, lineHeight, colSpan);            }            List<Map<String, Object>> dataResult = getResult();            for (Map<String, Object> map : dataResult) {                String dataTime = map.get("dateTime") != null?map.get("dateTime").toString():"0";                String status = "0";                if (null != map.get("status")) {                    if ("0".equals(map.get("status"))) {                        status = "待确认";                    }                    if ("1".equals(map.get("status"))) {                        status = "待复核";                    }                    if ("2".equals(map.get("status"))) {                        status = "已复核";                    }                }                String creator = map.get("creator") != null?map.get("creator").toString():"0";                String createTime = map.get("createTime") != null?map.get("createTime").toString():"0";                String updator = map.get("updator") != null?map.get("updator").toString():"0";                String updateTime = map.get("updateTime") != null?map.get("updateTime").toString():"0";                String description = map.get("description") != null?map.get("description").toString():"0";                createTableCell(dataTime, textFont, table, lineHeight, colSpan);                createTableCell(status, textFont, table, lineHeight, colSpan);                createTableCell(creator, textFont, table, lineHeight, colSpan);                createTableCell(createTime, textFont, table, lineHeight, colSpan);                createTableCell(updator, textFont, table, lineHeight, colSpan);                createTableCell(updateTime, textFont, table, lineHeight, colSpan);                createTableCell(description, textFont, table, lineHeight, colSpan);            }            document.add(table);            document.close();        } catch (DocumentException e) {            e.printStackTrace();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        File file = new File(fileName);        System.out.println(file);    }    private static void createTableCell(String text, Font font, PdfPTable table, float lineHeight, int colSapn) {        PdfPCell cell;        cell = new PdfPCell(new Paragraph(text,font));        //合并单元格列        cell.setColspan(colSapn);        //设置水平居中        cell.setHorizontalAlignment(Element.ALIGN_CENTER);        //设置垂直居中        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);        cell.setFixedHeight(lineHeight);        //将单元格内容添加到表格中        table.addCell(cell);    }    private static void createTableCellLeft(String text, Font font, PdfPTable table, float lineHeight ,int colSapn) {        PdfPCell cell;        cell = new PdfPCell(new Paragraph(text,font));        //合并单元格列        cell.setColspan(colSapn);        //设置水平        cell.setHorizontalAlignment(Element.ALIGN_LEFT);        //设置垂直        cell.setVerticalAlignment(Element.ALIGN_BOTTOM);        cell.setFixedHeight(lineHeight);        cell.setBorderWidthRight(0);        cell.setBorderWidthBottom(0);        cell.setBorderWidthLeft(0);        cell.setBorderWidthTop(0);        //将单元格内容添加到表格中        table.addCell(cell);    }    private static void createTableCellCenter(String text, Font font, PdfPTable table, float lineHeight ,int colSapn) {        PdfPCell cell;        cell = new PdfPCell(new Paragraph(text,font));        //合并单元格列        cell.setColspan(colSapn);        //设置水平居中        cell.setHorizontalAlignment(Element.ALIGN_CENTER);        //设置垂直居中        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);        cell.setFixedHeight(lineHeight);        cell.setBorderWidthLeft(0);        cell.setBorderWidthRight(0);        cell.setBorderWidthBottom(0);        cell.setBorderWidthTop(0);        //将单元格内容添加到表格中        table.addCell(cell);    }    private static void createTableCellRight(String text, Font font, PdfPTable table, float lineHeight , int colSapn) {        PdfPCell cell;        cell = new PdfPCell(new Paragraph(text,font));        //合并单元格列        cell.setColspan(colSapn);        //设置水平        cell.setHorizontalAlignment(Element.ALIGN_RIGHT);        //设置垂直        cell.setVerticalAlignment(Element.ALIGN_TOP);        cell.setFixedHeight(lineHeight);        //将单元格内容添加到表格中        //去除边框        cell.setBorderWidthLeft(0);        cell.setBorderWidthBottom(0);        cell.setBorderWidthRight(0);        cell.setBorderWidthTop(0);        table.addCell(cell);    }    private static List<Map<String, Object>> getResult() {        List<Map<String, Object>> result = new ArrayList<>();        for (int i = 0; i < 10; i++) {            Map<String, Object> map = new HashMap<>();            map.put("dateTime", "2022/10/11");            map.put("creator", "行如火");            map.put("createTime", "2022/10/10");            map.put("updator", "疾如风");            map.put("updateTime", "2022/10/11");            if(i == 0) {                map.put("status", "0");                map.put("description", "测试导出PDF");            } else if (i < 4){                map.put("status", "1");                map.put("description", "测试导出PDF"+i);            } else {                map.put("status", "2");                map.put("description", "测试导出PDF"+i);            }            result.add(map);        }        System.out.println(result);        return result;    }}

三、效果展示

  • 对应目录下生成test.pdf 文件
    在这里插入图片描述
  • 生成效果如下所示:
    在这里插入图片描述
    在这里插入图片描述

来源地址:https://blog.csdn.net/weixin_46822367/article/details/127401879

--结束END--

本文标题: Java实现PDF导出功能

本文链接: https://www.lsjlt.com/news/409113.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实现PDF导出功能
    一、添加依赖 com.lowagie itext 2.1.5 二、实现示例代码 如下代码中使用了 【SIMYOU...
    99+
    2023-09-15
    java 开发语言 PDF导出
  • PHPlaravel实现导出PDF功能
    目录一、laravel-tcpdf二、tcpdf三、TCPDF解决保存中文文件名的方法补充一、laravel-tcpdf 导出PDF文件Laravel框架为我们集成了一个插件tcpd...
    99+
    2022-11-13
    PHP laravel导出PDF PHP 导出PDF PHP laravel
  • PHP laravel如何实现导出PDF功能
    今天小编给大家分享一下PHP laravel如何实现导出PDF功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、lara...
    99+
    2023-07-04
  • Java实现导出Excel功能
    文章参考《Qt5开发及实例(第4版)》陆文周 主编 一、建立Qt工程 1、选择类别 2、建立项目名称 3、选择Qt基类及修改名称 4、选择编译器(这边两个都选择,生成两个Deb...
    99+
    2024-04-02
  • java怎么实现导入导出功能
    在Java中,可以使用以下两种方式来实现导入和导出功能:1. 使用文件输入输出流:可以使用FileInputStream和FileO...
    99+
    2023-10-08
    java
  • java导出pdf(纯代码实现)
    java导出pdf 在项目开发中,产品的需求越来越奇葩啦,开始文件下载都是下载为excel的,做着做着需求竟然变了,要求能导出pdf。导出pdf倒也不是特别大的问题关键就是麻烦。 导出pdf我知道的一共有3中方法: 方法一:利用模板导出,但...
    99+
    2023-08-17
    java pdf 开发语言
  • Java如何实现导出Excel功能
    这篇文章将为大家详细讲解有关Java如何实现导出Excel功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。刚写了个导入Excel表格,现在来写个导出,其实形式都差不多,废话不多说,贴代码&...
    99+
    2023-06-21
  • JAVA怎么实现导出Excel功能
    Java可以通过使用Apache POI库来实现导出Excel功能。下面是一个简单的示例代码:```javaimport org.a...
    99+
    2023-10-08
    java
  • java利用easyexcel实现导入与导出功能
    目录前言1先添加依赖2批量插入数据3创建需要导出数据实体类4创建一个类ExcelListener5实现下载excel6控制器添加我们的导入操作代码7导出效果如图8导入直接调用前言 p...
    99+
    2024-04-02
  • Java中怎样实现导出Excel功能
    这篇文章将为大家详细讲解有关Java中怎样实现导出Excel功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用第三方库实现导出Excel业界有句话:不重复造轮子。 使用工具类可以减少日常繁琐的编码,减...
    99+
    2023-06-14
  • java怎么实现文件导出功能
    要实现文件导出功能,可以使用Java中的文件操作相关的类和方法。下面是一个示例代码,演示了如何实现文件导出功能:```javaimp...
    99+
    2023-10-08
    java
  • Winform利用分页控件实现导出PDF文档功能
    目录1、PDF的导出插件2、导出PDF的逻辑处理当前的Winform分页控件中,当前导出的数据一般使用Excel来处理,Excel的文档可以用于后期的数据展示或者批量导入做准备,因此...
    99+
    2023-03-22
    Winform分页控件实现导出PDF Winform分页控件 Winform导出PDF
  • Winform怎么用分页控件实现导出PDF文档功能
    本篇内容主要讲解“Winform怎么用分页控件实现导出PDF文档功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Winform怎么用分页控件实现导出PDF文档功能”吧!1、PDF的导出插件使用...
    99+
    2023-07-05
  • SpringBoot+EasyPoi实现excel导出功能
    在实际项目开发中,对于Excel的导入导出还是很常见的需求,比如说将数据根据模板批量导入到数据库中,以及将数据库中的数据批量导出陈Excel的形式 现有需求: 根据检索条件查询列表并...
    99+
    2024-04-02
  • EasyExcel实现Excel文件导入导出功能
    一、EasyExcel简介 Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的fu...
    99+
    2023-09-15
    excel java Powered by 金山文档
  • AntV+Vue实现导出图片功能
    目录一、业务场景:二、问题描述:三、具体实现步骤:四、完整代码五、效果展示:一、业务场景: AntV 组织图操作完毕以后,需要点击按钮将画布以图片的形式导出 二、问题描述: 官网上有...
    99+
    2023-01-31
    Vue导出图片 Vue AntV导出图片 vue导出功能
  • Vue如何实现导出Excel功能
    小编给大家分享一下Vue如何实现导出Excel功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.前端主导流程:点击页面中导出按钮(注册点击事件)事件回调里面,发送请求后台数据对后台数据进行处理,完成想要的效果生成Exc...
    99+
    2023-06-20
  • java中PDF文本如何使用itext实现导出
    java中PDF文本如何使用itext实现导出?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。jar:itext-4.2.1.jar在很多公文的落款处都需要绝对定位,所以记录此代...
    99+
    2023-05-31
    java itext pdf
  • C#使用NPOI实现Excel导入导出功能
    本文实例为大家分享了C#使用NPOI实现Excel导入导出的具体代码,供大家参考,具体内容如下 Excel导入 使用OpenFileDiolog控件和button结合,选择文件导入,...
    99+
    2024-04-02
  • vue + element-ui如何实现导入导出功能
    小编给大家分享一下vue + element-ui如何实现导入导出功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言众所周知...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作