Как переименовать PDF в медиа теге primefaces - PullRequest
0 голосов
/ 20 декабря 2018

Я использую streamedcontent в простых символах и использую медиа тег для его отображения.Когда в средстве просмотра нажата кнопка загрузки, он загружает файл с именем dynamiccontent.properties.Есть ли способ переименовать его?

Я использую html4, java 7 и primefaces 5.2.24.

Я попытался установить параметр #toolbar, чтобы скрыть панель инструментов, как показано ниже, но она не работает:

<p:media id="pdfViewer" value="#{mybean.pdfMedia}" width="100%" height="90%" player="pdf" cache="false" >
        <f:param name="#toolbar" value="0"></f:param>
</p:media>

и мой потоковый контент генерируется из iText следующим образом:

   baos = new ByteArrayOutputStream();
   document = new Document();
   document.setPageSize(PageSize.A4);
   document.setMargins(70, 70, 100, 100);
   writer = PdfWriter.getInstance(document, baos);
   document.open();
   document.newPage();
   XMLWorkerHelper.getInstance().parseXHtml(writer, document,
                new ByteArrayInputStream(pageContents));
   document.close();

   InputStream stream = new ByteArrayInputStream(baos.toByteArray());
   StreamedContent  pdfMedia = new DefaultStreamedContent(stream, "application/pdf");

Есть ли способ переименовать его?или есть ли способ скрыть панель инструментов?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Это ошибка в PF 5.2.24, которую вы используете, и она исправлена ​​в PF 6.1 или выше.
См. Этот билет об ошибке: https://github.com/primefaces/primefaces/issues/2055

Убедитесь, что установлено "NAME" вDefaultStreamedContent с помощью конструктора org.primefaces.model.DefaultStreamedContent.DefaultStreamedContent(InputStream stream, String contentType, String name) или метода org.primefaces.model.DefaultStreamedContent.setName(String).

0 голосов
/ 20 декабря 2018

Вам необходимо установить имя для вашего потокового контента, используя конструктор org.primefaces.model.DefaultStreamedContent.DefaultStreamedContent(InputStream stream, String contentType, String name) или метод org.primefaces.model.DefaultStreamedContent.setName(String).

...