当前位置: 首页 > 知识库问答 >
问题:

如何在Vaadin Flow中打印?

轩辕越泽
2023-03-14

我想从一个按钮打印出用Vaadin 14创建的主页的内容。

不幸的是,Vaadin 8是一种不再适用的解决方案:

Button print = new Button("Print This Page");
print.addClickListener(new Button.ClickListener() {
    public void buttonClick(ClickEvent event) {
        // Print the current page
        JavaScript.getCurrent().execute("print();");
    }
});

你知道在瓦迪14怎么做吗?

共有1个答案

章禄
2023-03-14

在Vaadin 10及更高版本中,您可以通过调用Page::execteJs来运行任意JavaScript

UI.getCurrent().getPage().executeJs( … )

在那里,您应该能够调用相同的打印函数。请参见:在浏览器中执行JavaScript。

所以在你的例子中,打印当前页面:

UI.getCurrent().getPage().executeJs( "print();" ) ;

Vaadin 14.0.12中使用lambda语法的完整示例:

package com.example;

import com.vaadin.flow.component.ClickEvent;
import com.vaadin.flow.component.UI;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.html.H1;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.Route;

/**
 * The main view contains a button and a click listener.
 */
@Route ( "" )
public class MainView extends VerticalLayout
{
    public MainView ( )
    {
        this.add( new H1( "Print example" ) );

        Button printButton = new Button( "Print…" );
        printButton.addClickListener( ( ClickEvent < Button > clickEvent ) ->
        {
            UI.getCurrent().getPage().executeJs( "print();" );
        } );
        this.add(printButton);
    }
}
 类似资料:
  • 问题内容: 我正在尝试将我的网站转换为ElectronJS制作的应用程序 在我的网站上,我会打印带有条形码的div。这工作得很好,但是在electronjs中我无法达到这个目的。 本来我会用这个功能 与electronicjs 我不知道如何传递对象进行打印。 我也试图从我可以加载的内容生成PDF。但PDF损坏 有一种简单的方法可以用electronjs打印DIV? 感谢您的阅读。 问题答案: 加载

  • 问题内容: 有人可以告诉我如何用以下方式用“双引号”打印内容吗? “双引号” 问题答案: 要在字符串中插入双引号之前有一个反斜杠: 现在是: 他们说“没关系”,不是吗? 它被称为“转义”字符:您使用的是字面值,不会被解释。 使用Swift 4,您也可以选择在不需要转义的文本上使用定界符: 这给出: 他们说“没关系”,不是吗? 是的,他们说的是“好”。 使用Swift 5,您可以使用增强的定界符:

  • 问题内容: 我知道python中的\ xb函数,但是它似乎对我不起作用。我知道我可能需要下载第三方模块来完成此任务,如果是这样,哪一个最好? 我目前正在编写一个二项式展开求解器,以尝试和使用我自学的技能。当我尝试显示用户输入的扩展用于确认时,就会出现问题。目前,我必须像这样打印表达式: 这将打印(2x4)^ 5,而我希望将索引打印为上标。如何才能做到这一点? 问题答案: 您可以使用为您执行必要格式

  • 关于分色 为了重现彩色和连续色调图像,印刷商通常将图稿分为四个印版(称为印刷色),分别用于图像的青色、洋红色、黄色和黑色四种原色。还可以包括自定油墨(称为专色)。在这种情况下,要为每种专色分别创建一个印版。当着色恰当并相互套准打印时,这些颜色组合起来就会重现原始图稿。 将图像分成两种或多种颜色的过程称为分色;而用来制作印版的胶片则称为分色片。用彩色激光打印机打印的复合图像与用照排机打印的四色分色图

  • 问题内容: 我需要使用SwiftUI在我的应用程序中打开ImagePicker,我该怎么做? 我考虑过使用UIImagePickerController,但是我不知道如何在SwiftUI中做到这一点。 问题答案: Xcode 11.4的清理版本可以通过SPM作为Swift软件包获得: https://github.com/ralfebert/ImagePickerView 资源: