如何解决如何在 Vaadin 中打印组件?
我一直在努力一段时间,试图找到使用 vaadin 打印/生成文档的方法。 我尝试使用以下代码,但这会打印所有组件。我只想打印特定的表格或布局。
UI.getCurrent().getElement().executeJs("print();")
有人可以指导我吗?
解决方法
您需要一些 CSS(类似于提到的方法 environ
),在调用打印时隐藏所有内容,需要打印的布局或组件除外。
例如,假设您的视图中有以下两个 DIV:
Div printable = new Div(new Span("printable"));
Div nonPrintable = new Div(new Span("nonPrintable"));
您可以为其中之一指定类名:
printable.addClassName("printable");
然后,您将以下 CSS 添加到全局范围:
@media print {
body,body * {
visibility: hidden;
}
.printable,.printable * {
visibility: visible;
}
.printable {
position: absolute;
left: 0;
top: 0;
}
}
注意,在 Vaadin 14 项目中,使用 @CssImport
注释最容易合并以前的 CSS。例如,可以将以下注释添加到您的 Java 类之一:
@CssImport("./shared-styles.css")
然后在目录 {projecr-root-directory}/frontend
下,您需要创建 shared-styles.css
并将上述样式放在那里。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。