springboot pdf模板打印

  • Post author:
  • Post category:其他


springboot pdf模板打印

1、下载Adobe Acrobat DC工具来制作pdf的模板

打开一个pdf

2、制作pdf模板

把自动生成的文本框删除

然后 拖入文本框并自定义键

导入maven 依赖

复制代码

com.itextpdf

itextpdf

5.5.5

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

复制代码

复制代码

1 @Controller

2 public class PdfView {


3

4 @RequestMapping(“/pdfView/{id}”)

5 public void fillTemplate(HttpServletResponse response,@PathVariable(“id”) Integer id) {


6 System.out.println(id);

7 // 模板路径

8 String templatePath = “E:\print\moban\ylmoban.pdf”;

9 // 生成的新文件路径

10 String newPDFPath = “E:\print\测试11.pdf”;

11 PdfReader reader;

12 FileOutputStream out;

13 ByteArrayOutputStream bos;

14 PdfStamper stamper;

15 int page=1;

16 List list = new ArrayList();

17 try {


18 //for(int i=0;i<19;i++){


19 reader = new PdfReader(templatePath);

20 PdfReader pdfReader = null;

21 bos = new ByteArrayOutputStream();

22 stamper = new PdfStamper(reader, bos);

23 AcroFields form = stamper.getAcroFields();

//这个form就是pdf里面的表单key就是pdf的键 value 就是往里面要放的值

24 form.setField(“test1”,“张三”);

25 form.setField(“test2”,“总经理”);

26 form.setField(“test4”,“德信养老院”);

27 form.setField(“test5”,“其它”);

28

29 //true代表生成的PDF文件不可编辑

30 stamper.setFormFlattening(true);

31 stamper.close();

32 pdfReader = new PdfReader(bos.toByteArray());

33 list.add(pdfReader);

34

35 //}

36 // out = new FileOutputStream(newPDFPath);

37 ServletOutputStream outputStream = response.getOutputStream();

38

39 Document doc = new Document();

40 PdfCopy copy = new PdfCopy(doc, outputStream);

41 doc.open();

42 for (int k = 0; k < list.size(); k++) {


43 PdfReader pdfReader1 = list.get(k);

44 doc.newPage();

45 copy.addDocument(pdfReader1);

46 }

47 copy.close();

48 // PdfImportedPage importPage = copy.getImportedPage(new PdfReader(bos.toByteArray()), 1);

49 // copy.addPage(importPage);

50 // doc.close();

51 } catch (Exception e) {


52 e.printStackTrace();

53 }

54

55 }

56 public static void main(String[] args) {


57 //fillTemplate();

58 }

复制代码

这样直接访问这个controller 就可以直接生成打印预览



版权声明:本文为qq_41908571原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。