热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java导出pdf功能

 首先添加依赖,版本要一致,这里是个坑,不然会出现字体无法识别的情况

  •  

  • 首先添加依赖,版本要一致,这里是个坑,不然会出现字体无法识别的情况

  •         
                com.itextpdf
                itextpdf
                5.2.0
            

     
            
            
                com.itextpdf
                itext-asian
                5.2.0

  • java代码

  • /**
     * 导出PDF文件 java项目 www.fhadmin.org
     * @param orkQ
     * @param request
     * @param response
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "exportPdf")
    public AjaxJson exportPdf(orkQ orkQ, HttpServletRequest request, HttpServletResponse response) throws Exception {
    AjaxJson j = new AjaxJson();
    Page page = orkQService.findPage(new Page(request, response, -1), orkQ);
    List list = page.getList();
    // 第一步,实例化一个document对象
    Document document = new Document(new RectangleReadOnly(842F, 595F));
    // 第二步,设置要到出的路径
    // 第二步,设置要到出的路径
    //FileOutputStream out = new FileOutputStream("D:/workbook111.pdf");
    //如果是浏览器通过request请求需要在浏览器中输出则使用下面方式
    OutputStream out = response.getOutputStream();
    // 第三步,设置字符
    BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false);
    Font fontZH = new Font(bfChinese, 12.0F, 0);
    // 第四步,将pdf文件输出到磁盘
    PdfWriter writer = PdfWriter.getInstance(document, out);
    // 第五步,打开生成的pdf文件
    document.open();
    // 第六步,设置内容
    String title = "IT事";
    try {
    Paragraph elements = new Paragraph(title, fontZH);
    elements.setAlignment(Paragraph.TITLE);
     
    document.add(elements);
    // document.add(new Paragraph(new Chunk(title,fontZH).setLocalDestination(title)));
    document.add(new Paragraph("\n"));
    } catch (DocumentException e) {
    e.printStackTrace();
    }
    // 添加图片
     
    /*Image image = Image.getInstance("图片路径");
    image.setAlignment(Image.ALIGN_CENTER);
    image.scalePercent(40); //依照比例缩放
    //image.setAbsolutePosition(40,60);
    document.add(image);*/
    // 创建table,注意这里的3是三列的意思,下面通过table.addCell添加的时候必须添加整行内容的所有列
    //创建表格对象
    PdfPTable table = new PdfPTable(3);
    PdfPCell cell = new PdfPCell();
    Paragraph zhi = new Paragraph("事件概要",fontZH);
    cell.setPhrase(zhi);
    //单元格水平居中对齐
    cell.setUseAscender(true);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell);
     
    zhi = new Paragraph("联系人",fontZH);
    cell.setPhrase(zhi);
    cell.setUseAscender(true);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell);
     
    zhi = new Paragraph("事件类型",fontZH);
    cell.setPhrase(zhi);
    cell.setUseAscender(true);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell);
    for (int i = 0;i zhi = new Paragraph(list.get(i).getItSummary(),fontZH);
    cell.setPhrase(zhi);
    cell.setUseAscender(true);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell);
    zhi = new Paragraph(list.get(i).getContacts(),fontZH);
    cell.setPhrase(zhi);
    cell.setUseAscender(true);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell);
    zhi = new Paragraph(list.get(i).getItType(),fontZH);
    cell.setPhrase(zhi);
    cell.setUseAscender(true);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell);
     
    }
    document.add(table);
    document.add(new Paragraph("\n"));
    // 第七步,关闭document
    document.close();
     
     

    return j;
    }



推荐阅读
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 大连微软技术社区举办《.net core始于足下》活动,获得微软赛百味和易迪斯的赞助
    九月十五日,大连微软技术社区举办了《.net core始于足下》活动,共有51人报名参加,实际到场人数为43人,还有一位专程从北京赶来的同学。活动得到了微软赛百味和易迪斯的赞助,场地也由易迪斯提供。活动中大家积极交流,取得了非常成功的效果。 ... [详细]
  • 本文研究了使用条件对抗网络进行图片到图片翻译的方法,并提出了一种通用的解决方案。通过学习输入图像到输出图像的映射和训练相应的损失函数,我们可以解决需要不同损失函数公式的问题。实验证明该方法在合成图片、重构目标和给图片着色等多个问题上都很有效。这项工作的重要发现是不再需要人为构建映射函数和损失函数,同时能够得出合理的结果。本文的研究对于图片处理、计算机图片合成和计算机视觉等领域具有重要意义。 ... [详细]
  • 计算成像的原理与应用研究
    本文探讨了计算成像的原理与应用研究。首先介绍了小孔成像实验和软件方面的相关内容。随后从傅里叶光学的角度简单谈了成像的过程。成像是观测样品分布的一种方法,通过成像系统接收光的强度来呈现图像。视网膜作为接收端接收到的图像实际上是由像元组成的矩阵,每个元素代表相应位置像元接收光的强度。大脑通过对图像的分析,得出一系列信息,如识别物体、判断距离等。计算成像是一种采集记录系统,通过处理数据得到样品分布与像的对应关系,用于后续问题的分析。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
author-avatar
滞留童年车
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有