2017-08-17 128 views
0

我对我的项目使用了角度2。我准备好打印模板了。我想重复使用相同的我的PDF也使用相同的CSS。所以我写了下面的代码拿起HTML使用javascript创建使用静态html的pdf

parseHTML(html) { 
     return new DOMParser().parseFromString(html, 'text/html'); 
    } 

    this._http.get('assets/print-template.html').toPromise() 
       .then((response: any) => { 
        let mynewnodes = me.parseHTML(response._body) 
        mynewnodes.head.innerHTML = mynewnodes.head.innerHTML + AllStyleSheets; 
        mynewnodes.getElementById('holder').innerHTML = printContents; 
        const source = mynewnodes.getElementsByTagName('html')[0].outerHTML; 
}); 

它主要从本地文件中获取HTML,并使其作为一个DOM对象,并添加CSS和动态内容吧。我想打印作为pdf的源html字符串。我试过jspdf,但无法正常工作。

我在下面找到http://blog.stahlmandesign.com/export-html-to-pdf-how-hard-can-it-be/不确定使用哪一个。基本要求是打印静态HTML在一个变量与HTML和CSS到PDF和导出。

回答

0

你有没有使用iframe,您可以使用“srcdoc”标签引用HTML和“类型”标签来创建它作为一个PDF考虑:

<iframe srcdoc="<p>Hello world!</p>" src="demo_iframe_srcdoc.htm" type="application/pdf"></iframe> 

,你可以的作风,以填补整个屏幕类似于:

<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>' 
+0

如何激活PDF的下载? – Hacker

+1

那么它应该显示在浏览器内置的pdf查看器(它提供了一个下载和打印按钮)。 – Jayyf9

+0

不知道如何使用它。你能举一个例子吗? – Hacker