Многостраничная печать или библиотека отчетов для пользовательского интерфейса Vaadin 7

У нас была страница пользовательского интерфейса Vaadin 7 с несколькими макетами, панелями и диаграммами (браузер поставляется с полосой прокрутки, так как высота большая). Когда мы пытаемся напечатать с помощью JavaScript в коде Vaadin или используя Ctrl + P браузера, он печатает только одну страницу в Firefox 32.0.3; печатает несколько страниц с данными только для первой страницы в IE 8.

Оба вышеупомянутых случая не решили нашу проблему. Как мы можем понять из документации, что прокрутка Vaadin использует структуру DOM, было необычно знать, что такой инструмент не предоставляет правильную опцию печати.

Чтобы кратко сформулировать нашу цель, мы рассматриваем параметр Отчетность в Vaadin для анализа некоторых данных. Мы видели некоторые параметры (с использованием JasperReport и т. Д.), Упомянутые в StackOverflow, однако мы не сможем их реализовать, поскольку нам нужно развернуть это приложение в Google App Engine (GAE), который имеет неподдерживаемые функции, такие как FileOutputStream и т. Д.

В заключение, это наши проблемы -

  1. Как решить проблему печати нескольких страниц в Vaadin 7?
  2. Если мы не можем решить первую проблему, какова лучшая библиотека отчетов (для PDF, PNG, HTML или печати), которая поддерживается как Vaadin 7, так и GAE?

Мы будем благодарны за любые рекомендации или предложения.


person Sasi    schedule 25.09.2014    source источник
comment
Связанный вопрос для Vaadin 8: Создать HTML-страницу и открыть ее в новом окне из приложения Vaadin 8   -  person Basil Bourque    schedule 05.08.2018


Ответы (2)


Печать HTML-страниц в лучшем случае случайна.

В каждом браузере есть свои правила для отображения и разрывов страниц. Мы всегда используем pdf для печати.

iReport / Jasperreports - это то, что мы используем большую часть времени.

person André Schild    schedule 25.09.2014
comment
Мы пробовали использовать образец кода. На Ваадине работает нормально. Проблема связана с Google App Engine, который не поддерживает java.awt.Font, который используется в Jasper. Есть ли еще какая-нибудь библиотека с поддержкой на Vaadin7 + GAE? - person Sasi; 26.09.2014
comment
Например, этот поток: http://stackoverflow.com/questions/13485765/reporting-for-java-base-google-app-engine - person André Schild; 27.09.2014
comment
Спасибо, Андре. Мы попробуем это. - person Sasi; 27.09.2014

Вы можете попробовать этот обходной путь:

private void setSizeUndefined2Print()
{
    com.vaadin.ui.JavaScript.getCurrent().execute("document.body.style.overflow = \"auto\";" +
                                                  "document.body.style.height  = \"auto\"");
    UI.getCurrent().setSizeUndefined();
    this.setSizeUndefined();
}

Если в некоторых случаях вам нужно вернуться к «определенному» размеру, можно использовать следующий метод:

private void setSizeFull2Print()
{
    com.vaadin.ui.JavaScript.getCurrent().execute("document.body.style.overflow = \"\";" +
                                                  "document.body.style.height  = \"\"");
    UI.getCurrent().setSizeFull();
    this.setSizeFull();
}
person yeDor    schedule 02.07.2015