vaadin:使用类似jspdf的javascript库来创建html内容的pdf

vaadin: use javascript library like jspdf to create pdf of the html content

本文关键字:创建 html pdf javascript vaadin jspdf      更新时间:2023-09-26

我正在使用Vaadin 7,我已经创建了一些图表,我想创建/下载html内容的图表的pdf。我发现javascript库"jspdf"可以做我想做的事情,但我不知道如何实现该库,也不知道如何在vaadin中使用它。

一个简单的javascript代码可以用这行代码执行:

Page.getCurrent().getJavascript().execute("alert('Hello World')");

除此之外,我不知道该怎么办。

或者可能还有另一种更好/更简单的方法来创建pdf文件。

使用vaadin,有两种方法可以创建PDF:

  1. 生成PDF服务器端,这样您就可以完全控制生成的PDF。我不会在这里解释怎么做
  2. 使用(例如)jspdf-lib,它可以从html内容创建PDF。结果可能会有所不同,具体取决于网络浏览器等

要在vaadin中集成任何类型的JS库,可以使用以下方法:

@JavaScript({ "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js", "bootstrap.js", "bootstrap_connector.js" })
public class JavascriptTooltipExtension extends AbstractJavaScriptExtension {
    public void extend(Link link) {
        Resource resource = link.getResource();
        String display = resource instanceof ExternalResource ? ((ExternalResource) resource).getURL().toString() : "???";
        getState().setDisplay(display);
        super.extend(link);
        attachTooltip();
    }
    protected void attachTooltip(Object... commandAndArguments) {
        invokeCallback("attach", commandAndArguments);
    }
    @Override
    protected Class<? extends ClientConnector> getSupportedParentType() {
        return Link.class;
    }
    @Override
    public BootstrapTooltipState getState() {
        return (BootstrapTooltipState) super.getState();
    }
}

完整JS集成示例