java 浏览器 pdf_使用iText在浏览器中打开生成的PDF

我正在使用PDFStamper生成PDF文件,然后我想传递它在浏览器中打开 . 我的代码在JSP文件中 . 我实际生成PDF到桌面的代码可以工作但不能路由到浏览器 . 以下是我的代码 .

PdfReader reader = new PdfReader("/path/pdfs/raw.pdf");

ByteArrayOutputStream baos = new ByteArrayOutputStream();

PdfStamper stamper = new PdfStamper(reader, baos);

PdfContentByte canvas = stamper.getOverContent(1);

BaseFont font = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED);

canvas.setFontAndSize(font, 12);

canvas.beginText();

canvas.showTextAligned(Element.ALIGN_LEFT, "TEST! TEST! TEST! TEST! ", 80, 713, 0);

canvas.endText();

stamper.close();

reader.close();

String filename="test.pdf";

response.setContentType("application/pdf");

response.setHeader( "Content-Disposition", "filename=" + filename );

response.setContentType("application/pdf");

OutputStream os = response.getOutputStream();

baos.writeTo(os);

os.flush();

这当前打开一个空白页面 - 我不确定我到底做错了什么 .

我可以使用iText Document来完成这项工作但是因为我打开现有文档并添加内容我必须使用PDFStamper,这就是问题所在 . 我已经确认阅读器中存在PDF文件,可以通过浏览器直接访问该位置 .

任何帮助,将不胜感激!使用,Struts2,Tile2,Weblogic,Java,iText

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Spring Boot结合iText生成请假单PDF文件的步骤如下: 1. 添加依赖 在`pom.xml`文件添加iText库的依赖: ```xml <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> ``` 2. 编写Controller 编写一个Controller类,用于接收请假单的数据并生成PDF文件。 ```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 org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; @Controller public class LeaveController { @GetMapping("/leave") public void generateLeavePDF(@RequestParam String name, @RequestParam String startDate, @RequestParam String endDate, @RequestParam String reason, HttpServletResponse response) throws IOException, DocumentException { // 设置响应类型为PDF文件 response.setContentType("application/pdf"); // 设置响应头,表示文件名为leave_application.pdf response.setHeader("Content-Disposition", "attachment; filename=leave_application.pdf"); // 创建一个PDF文档对象 Document document = new Document(); // 获取输出流 OutputStream out = response.getOutputStream(); // 将输出流包装成PdfWriter对象 PdfWriter.getInstance(document, out); // 打开文档 document.open(); // 向文档添加内容 document.add(new Paragraph("Leave Application")); document.add(new Paragraph("Name: " + name)); document.add(new Paragraph("Start Date: " + startDate)); document.add(new Paragraph("End Date: " + endDate)); document.add(new Paragraph("Reason: " + reason)); // 关闭文档 document.close(); // 关闭输出流 out.close(); } } ``` 上述代码,我们使用`@RequestParam`注解来接收四个参数:姓名、开始日期、结束日期和请假原因。在`generateLeavePDF`方法,我们首先设置响应类型为PDF文件,并设置响应头表示文件名为`leave_application.pdf`。然后,我们创建一个PDF文档对象并获取输出流。我们使用PdfWriter对象将输出流包装起来,以便向文件写入内容。在文档添加内容后,我们关闭文档和输出流。 3. 运行程序 启动Spring Boot应用程序,并在浏览器输入URL `http://localhost:8080/leave?name=张三&startDate=2021-07-01&endDate=2021-07-05&reason=因私事需要请假。`。浏览器将下载名为`leave_application.pdf`的PDF文件,其包含输入的请假单信息。 上述步骤,我们使用iText库创建PDF文件使用Spring Boot框架将其作为响应返回给客户端。如果你需要更复杂的PDF文件,可以查阅iText库的官方文档以获取更多信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值