我正在使用 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