java代码生成pdf表格和内容 前端采用pdf.js进行在线预览读取

本文介绍如何使用Java生成包含动态表格内容的PDF文件,表格长度依据数据列表自动调整。前端部分则利用pdf.js实现在线预览和读取PDF。
摘要由CSDN通过智能技术生成

1、公司要求生成pdf文件,内容中间需要一个表格,表格要根据数据列表的长度动态变长

直接上代码,需要的复制+百度

引入包

<dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.10</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-asian</artifactId>
            <version>5.2.0</version>
        </dependency>


    代码

    /**
     * 生成最终版本的pdf
     * @param newPath       已写入数据的pdf模板路径
     * @param finalPath     最终版本的pdf生成路径
     * @param listNum 
     * @param baselineData2
     */
    public static byte[] generateFinalPdf(List<String[]> list, String[] titleArr,
            float[] widths, List<String[]> listNum,Map<String, Object> params) throws Exception {

        /** 实例化文档对象 */
        Document document = new Document();
        /** 创建 PdfWriter 对象 */
        //创建临时文件名
        String uuid = UUID.randomUUID().toString().replaceAll("-", "");
        //临时路径
        String path = uuid+".pdf";
        FileOutputStream outputStream = new FileOutputStream(path);
        PdfWriter writer = PdfWriter.getInstance(document, outputStream);// 文件的输出路径+文件的实际名称
        document.open();
        // document.newPage();//新创建一页来存放后面生成的表格
        BaseFont bfCN = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
        // 表格的字体
        Font headFont = new Font(bfCN, 11f, Font.BOLD, BaseColor.BLACK);
        Font textFont = new Font(bfCN, 9f, Font.NORMAL, BaseColor.BLACK);
        //正文的字体
        Font headTxtFont = new Font(bfCN, 16f, Font.BOLD, BaseColor.BLACK);//标题
        Font TxtFont = new Font(bfCN, 11f, Font.NORMAL, BaseColor.BLACK);//正文
        
        Font Fwhite = FontFactory.getFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        Fwhite.setColor(BaseColor.WHITE);
        
        /** 向文档中添加内容,创建段落对象 */
        Paragraph titleParagraph = new Paragraph();
        Chunk chunk = new Chunk("应收账款转让通知书",headTxtFont);
        titleParagraph.setAlignment(Element.ALIGN_CENTER);
        titleParagraph.add(chunk);
        document.add(titleParagraph);
       
        
        document.add(blankRow31);
        // 建立一个titleArr长度列的表格
        PdfPTable table = new PdfPTable(titleArr.length);

        // 计算'合并列'的合并相关集合
        List<Integer> index
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值