Вопрос по pdf, browser, java, servlets, titlebar – Как изменить заголовок страницы браузера, на которую сервлет транслировал PDF?

10

В моем веб-приложении на Java есть сервлет, который передает содержимое PDF обратно в браузер на основе параметра запроса.

например пользователь нажимает на тег A со ссылкой «myApp / FetchPDFServlet? id = 123». Служба сопоставления сервлетов принимает запрос, передает данные PDF в ответ в виде приложения mime-типа / pdf, закрывает очищающие буферы.

Однако строка заголовка браузера для страницы, отображающей файл PDF, гласит: «FetchPDFServlet? Id = 123».

Как я могу изменить заголовок, отображаемый браузером для страницы, которая отображает PDF? Таким образом, заголовок браузера «Вот замечательный PDF» не "FetchPDFServlet? id = 123".

Это вообще возможно? Как лучше это сделать?

Ваш Ответ

5   ответов
0

и это сработало. Вы можете установить данные заголовки на других языках

response.setHeader("Content-Disposition","inline; filename=\"MyFile.pdf\"");
response.setContentType("application/pdf; name=\"MyFile.pdf\"");
response.getOutputStream().write(pdfAsBytesArray);
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededContent-Type headerError: User Rate Limit ExceedednameError: User Rate Limit Exceeded
1

в частности атрибута «Заголовок». Поэтому, если вы генерируете документ в своем приложении, в вашей библиотеке PDF должен быть способ задания метаданных документов.

Error: User Rate Limit Exceeded
4


Что-то вроде этого:

<html>
  <head>
      <title>Here is the amazing PDF</title>
      <style type="text/css">
       html, body, div, iframe { margin:0; padding:0; height:100%; }
       iframe { display:block; width:100%; border:none; }
      </style>
  </head>
  <body>
    <iframe width="100%" length="100%" src="myApp/FetchPDFServlet?id=123"/>
  </body>
</html>

Таким образом, вместо ссылки на документ PDF, используяmyApp/FetchPDFServlet?id=123, вы бы ссылались на то, что возвращает выше HTML. Например, страница JSP:myApp/ShowPDF.jsp?id=123&title=Here%20is%20the%20amazing%20PDF

2

и хотя у моего решения было довольно много ограничений, я думал, что поделюсь им.

По своему усмотрению я открою PDF-файл в новой вкладке, а затем поменяю его название с исходной страницы.

$('#aa').click(function(){
    ref = window.open('resume.pdf','mywindow');     
    ref.onload = function(){
        ref.document.title="New Title";
    }
    return false;
    });
  });

Обратите внимание, что родительская и дочерняя страницы должны находиться в одном домене.

Я проверил это в нескольких браузерах, и вот результаты:

Chrome 10 - Works like a treat Safari 5 - Works, but by default opens in a new window not tab. User can change this to open all new windows in tabs. IE 8 - Doesn't work, as expected :op Firefox - Works like a treat
7

response.setHeader("Content-Disposition","inline; filename=Here is the Amazing PDF");

Я считаю, что браузер поднимет его и будет использовать в качестве заголовка окна.

Похожие вопросы