Javascript 如何从html网页生成pdf?

Javascript 如何从html网页生成pdf?,javascript,jquery,html,pdf,css-to-pdf,Javascript,Jquery,Html,Pdf,Css To Pdf,我正在寻找一个库来转换我的网页成PDF文件后,点击事件从一个按钮。 我正在尝试jspdf,但是它在没有CSS的情况下打印,如何使用JavaScript/jQuery实现这一点并保留CSS?还是我可以选择的其他CSS?有一个新的jQuery+云解决方案,可以将任何HTML页面及其CSS(包括打印媒体规则)呈现为PDF。解决方案是设置为打印网页的任何区域,您只需告诉格式化程序要打印哪个容器元素,其余部分由库完成。您得到的是一个可嵌入的PDF,或者后端将推回PDF供下载 这是您的库(GitHub):

我正在寻找一个库来转换我的网页成PDF文件后,点击事件从一个按钮。
我正在尝试
jspdf
,但是它在没有CSS的情况下打印,如何使用
JavaScript/jQuery
实现这一点并保留CSS?还是我可以选择的其他CSS?

有一个新的jQuery+云解决方案,可以将任何HTML页面及其CSS(包括打印媒体规则)呈现为PDF。解决方案是设置为打印网页的任何区域,您只需告诉格式化程序要打印哪个容器元素,其余部分由库完成。您得到的是一个可嵌入的PDF,或者后端将推回PDF供下载

这是您的库(GitHub):

这是你的小提琴:

这是一个有效的演示:

目前还没有使用说明,但是下面的示例(查看源代码)应该是非常自解释的(查看Print It按钮),下面是Format方法或多或少理解的附加选项/参数

options 
{
    pageWidth: "8.5in",             
    pageHeight: "11in", 
    pageMargin: ".25in", 
    pageMarginTop: "1in",
    pageMarginRight: "1in",
    pageMarginBottom: "1in",
    pageMarginLeft: "1in",
    render: ("none"|"newwin<default>"|embed"|"download<default IE>"),
    foStyle: { 
        // puts fo style attributes on the root, ex. fontSize:14px
        foStyleName: 'value', ...
    }           
}

希望这有帮助

试试这个npm包
htmlto
。它用CSS样式从html创建PDF

var htmlTo = require('htmlto')

htmlTo.pdf('./public/html/report.html','./public/pdf/report.pdf',{width: 2480, height: 3508})
安装:

npm安装-S htmlto

npm安装-S幻影


*您还可以指定dimensions.phantom版本^4.0.3和node版本v6.5.0

我创建了一个简单易用的API,它使用基于webkit的CLI的库,以便将HTML页面从URL转换为PDF。以下是Github回购协议:

这是一个如何从锚标记使用它的示例。这将显示生成的<代码>https://www.github.com新浏览器选项卡中的站点:

<a href="https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=show" target="_blank">Show PDF</a>

在repo中,我还解释了如何在中非常轻松地克隆和部署您自己的API,这样您就可以自己维护API,而不必依赖外部服务。

。。。他们在那里解释了很多,但我找不到任何脚本或如何使用itI。我请一位开发人员为您发布说明。JS和该示例页面的源代码都在Github上,以了解如何在Github上找到它?您好,我尝试使用此库,但遇到错误:缺少或无效选择器'。现在我的选择器(ID)很好,我知道,但我没有任何带有媒体打印的CSS或类似的东西。HTML页面使用常规CSS设置样式。这就是问题所在吗?这是xepOnline插件引发的自定义错误。选择器的形式应为“#ContainerID”或任何有效的jQuery选择器。您使用的是哪个版本的xepOnline插件?使用常规CSS进行样式设置很好。这似乎使用了外部服务后端,因此可能不适合敏感内容correct@pvgoddijn。此免费版本的软件和公共服务不适用于内容敏感数据。这项服务可以在自己的网络后面进行定制和私人安装。我同意上面的两条评论-小心使用。这是在服务器上进行的渲染。a能否生成链接以下载结果PDF?将PDF保存在应用程序的公共路径中,然后即可下载Hello David。您的项目非常棒,但它不再有效。你能修一下吗?我们将表示感谢。
<a href="https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=show" target="_blank">Show PDF</a>
<a href="https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=download&file_name=my_pdf">Download PDF</a>
document.getElementById("your-button-id").addEventListener("click", function() {
    var link = document.createElement('a');
    link.href = 'https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=download';
    link.download = 'file.pdf';
    link.dispatchEvent(new MouseEvent('click'));
});