vaadin:使用像jspdf这样的javascript库来创建html内容的{pdf}

时间:2015-12-16 20:18:03

标签: javascript java html pdf vaadin

我正在与Vaadin 7合作,我创建了一些图表,我想创建/下载html内容图表的pdf。我发现javascript库'jspdf'可以做我想要的,但我不明白如何实现该库以及如何在vaadin中使用它。

可以使用以下代码行执行简单的JavaScript代码:

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

比我不知道该做什么。

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

1 个答案:

答案 0 :(得分:1)

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

  1. 生成PDF服务器端,这样您就可以完全控制生成的PDF。我不会在这里解释如何做到这一点。
  2. 使用(例如)jspdf lib,它可以从您的html内容创建PDF。结果可能会有所不同,具体取决于webbrowser等。
  3. 要在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();
        }
    }
    

    Full JS integration example