我们有一个Vaadin 7 UI页面,其中包含多个布局,面板和图表(当高度很大时,浏览器将随ScrollBar一起提供)。当我们尝试使用Vaadin代码中的JavaScript或使用浏览器的Ctrl + P进行打印时,它只在Firefox 32.0.3中打印一页;打印多个页面,仅显示IE 8中第一页的数据。
以上两个案例都没有解决我们的问题。正如我们从文档中可以理解的那样,Vaadin滚动使用DOM结构,知道这样的工具不能提供正确的Print选项是不寻常的。
为了简要说明我们的目标,我们正在考虑Vaadin中的报告选项进行一些数据分析。我们看到StackOverflow中提到的一些选项(使用JasperReport等),但是无法实现它们,因为我们需要将此应用程序部署到具有不受支持的功能的Google App Engine(GAE),例如FileOutputStream等。
总而言之,这些是我们的问题 -
任何指导我们的指导或建议都将受到赞赏。
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以尝试以下解决方法:
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();
}