Java生成PDF之iTextPDF的使用

Posted 光何

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java生成PDF之iTextPDF的使用相关的知识,希望对你有一定的参考价值。

  今天做财务方面相关数据的导出功能,需要导出PDF和Excel,在项目经理那里得知有一个叫iTextPDF的java框架导出PDF文件很好用,于是拿来玩儿玩儿。

 1 package com.smart.produce.modules.finance.controller;
 2 
 3 import com.alibaba.fastjson.JSONObject;
 4 import com.itextpdf.text.Document;
 5 import com.itextpdf.text.PageSize;
 6 import com.itextpdf.text.Rectangle;
 7 import com.itextpdf.text.pdf.PdfWriter;
 8 import com.smart.produce.modules.finance.service.IExportService;
 9 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.stereotype.Controller;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 import org.springframework.web.bind.annotation.RequestMethod;
13 import org.springframework.web.bind.annotation.ResponseBody;
14 
15 import javax.servlet.http.HttpServletRequest;
16 import java.io.FileOutputStream;
17 import java.lang.reflect.Method;
18 
19 @Controller
20 @RequestMapping("${admin.url.prefix}/finance/export")
21 public class ExportController {
22 
23     @Autowired
24     private IExportService exportService;
25 
26     private String exportPath = "/static/financeExport";
27 
28     @ResponseBody
29     @RequestMapping(value="exportPDF", method={RequestMethod.GET, RequestMethod.POST})
30     public String expStatementPDF(HttpServletRequest request, String name) {
31         JSONObject result = new JSONObject();
32         result.put("code", 0);
33         result.put("msg", "success");
34         // 输出文件路径
35         String filePath = exportPath + "/" + name + ".pdf";
36         result.put("data", filePath);
37         String realPath = request.getServletContext().getRealPath("/");
38         try {
39             //Step 1—Create a Document.
40             Rectangle rectangle = new Rectangle(PageSize.A4);
41             Document document = new Document(rectangle);
42             document.setMargins(20, 20, 40, 40);
43             //Step 2—Get a PdfWriter instance.
44             PdfWriter.getInstance(document, new FileOutputStream(realPath + filePath));
45             //Step 3—Open the Document.
46             document.open();
47             //Step 4—Add content.
48             Method method = IExportService.class.getDeclaredMethod(name + "Print", new Class[]{Document.class, String.class});
49             method.invoke(exportService, document, realPath);
50             //Step 5—Close the Document.
51             document.close();
52         } catch(Exception e) {
53             e.printStackTrace();
54             result.put("code", -1);
55             result.put("msg", e.getMessage());
56         }
57         return result.toString();
58     }
59 
60 }

 

以上是关于Java生成PDF之iTextPDF的使用的主要内容,如果未能解决你的问题,请参考以下文章

Java操作PDF之itext入门

Java操作PDF之iText超入门

转 Java操作PDF之iText详细入门

PDFJava操作PDF之iText超入门

如何运用Java组件itext生成pdf

如何运用Java组件itext生成pdf