springboot pdf模板打印

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 就可以直接生成打印预览

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一个AI助手,我并不具备编写代码的能力,但是我可以为您提供一些思路和参考。 SpringBoot可以通过使用iText库来实现PDF打印功能。iText是一个用于创建和操作PDF文档的Java库,它提供了丰富的API,可以方便地生成、修改和操作PDF文件。 以下是一个使用iText库实现PDF打印的示例代码: 1. 添加iText依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> ``` 2. 编写打印代码 ```java import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; @Controller public class PdfPrintController { @GetMapping("/print") public void print(HttpServletResponse response) throws IOException, DocumentException { // 设置HTTP响应的Content-Type为application/pdf response.setContentType("application/pdf"); // 设置HTTP响应头Content-Disposition,指定附件文件名为Print.pdf response.setHeader("Content-Disposition", "attachment;filename=Print.pdf"); // 获取HTTP响应输出流 OutputStream out = response.getOutputStream(); // 创建PDF文档对象 Document document = new Document(); // 创建PDF写入器 PdfWriter.getInstance(document, out); // 打开PDF文档 document.open(); // 添加文本内容 document.add(new Paragraph("Hello, World!")); // 关闭PDF文档 document.close(); // 关闭HTTP响应输出流 out.close(); } } ``` 在上面的示例代码中,我们定义了一个/print接口,当用户访问该接口时,会将一个包含“Hello, World!”文本的PDF文件发送给用户进行打印。其中,我们使用了response对象获取HTTP响应输出流,并在该输出流中写入PDF文件内容。 需要注意的是,在实际应用中,我们可能需要动态生成PDF文件内容,比如根据用户输入的数据生成PDF文件,这时可以使用iText提供的丰富API来实现。在生成PDF文件时,我们需要使用Document对象表示PDF文档,使用PdfWriter对象将PDF文档写入输出流中,通过添加Paragraph对象来添加文本内容。 以上就是一个简单的使用SpringBoot和iText实现PDF打印的示例代码,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值