也许我不理解这些流,但我有这样的servlet:
String filename = "test.pdf";
String Str1 = new String("Lorem ipsum dolor sit amet, eos omnes mandamus in, modus voluptua ei mel. Nec et illud facete maluisset, ");
byte[] Str2 = Str1.getBytes();
InputStream inputStream = null;
inputStream = new ByteArrayInputStream(Str2);
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int bytesRead;
while ( (bytesRead = inputStream.read(buffer)) != -1)
baos.write(buffer, 0, bytesRead);
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
OutputStream os = response.getOutputStream();
baos.writeTo(os);
os.flush();
os.close();
但是当我在保存错误之后尝试打开文件时:
我检查了,并且baos有字符串" Lorem ipsum"。我做错了什么?
答案 0 :(得分:3)
您只能发送一个string
作为PDF
,并期望它采用PDF
格式。这与保存扩展名为text
的{{1}}文件相同。
您必须使用类似Apache PDFBox
的库将字符串转换为pdf
格式。查看他们的example文档。