命名我的内联pdf

时间:2012-11-15 17:25:08

标签: java pdf servlets

我正在java servlet中创建一个pdf,当我创建的pdf打开时,它错误地将我的servlet命名为pdf。这是我的代码:

     response.setHeader(contentDisposition, "inline; filename=TemporaryVerification.pdf");

     try {

         reader = new PdfReader(CreateStuVerification.class.getResource("/resource/" +     tempFile));
         stamp = new PdfStamper(reader, response.getOutputStream());

所以我希望我的pdf命名为“TemporaryVerification.pdf”,但名称为“CreateStuVerification.pdf”(这是我的servlet的名称)。有谁知道这是为什么,也可能是如何纠正它?

编辑:我必须将其保留为内嵌pdf。虽然当我尝试将它作为附件时,它被正确命名。

1 个答案:

答案 0 :(得分:1)

此行为特定于IE浏览器。它使用URI路径的最后一部分作为下载资源的默认名称。理智的浏览器会正确使用filename标题的Content-Disposition属性。

您最好在路径模式(例如/pdf/*)上重新映射您的servlet,然后将所需的文件名直接附加到应该返回PDF的URL中

<a href="pdf/TemporaryVerification.pdf">

如果需要,您可以按如下方式获取servlet中的文件名部分:

String filename = request.getPathInfo().substring(1); // TemporaryVerification.pdf
// ...