ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java 导出pdf 功能

2020-11-25 11:51:51  阅读:209  来源: 互联网

标签:fontZH java 导出 cell Paragraph new zhi pdf document


  •  

  • 首先添加依赖,版本要一致,这里是个坑,不然会出现字体无法识别的情况
  • <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>itextpdf</artifactId>
                <version>5.2.0</version>
            </dependency>
     
            <!-- https://mvnrepository.com/artifact/com.itextpdf/itext-asian -->
            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>itext-asian</artifactId>
                <version>5.2.0</version>
  • 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<orkQ> page = orkQService.findPage(new Page<orkQ>(request, response, -1), orkQ);
    		List<orkQ> 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<list.size();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;
    }

标签:fontZH,java,导出,cell,Paragraph,new,zhi,pdf,document
来源: https://blog.51cto.com/14622073/2554315

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有