可以使用PDFreactor从浏览器DOM创建PDF文档吗?

时间:2016-09-02 22:06:50

标签: pdf-reactor

可以将PDFreactor用作Web服务,在浏览器上运行的javascript可以使用REST API从DOM中移植页面内容以转换为PDF吗?在此应用程序中,在浏览器中呈现的内容仅由浏览器端javascript(使用D3库)生成;这里的要求是提供一个"导出到PDF"从当前呈现的页面内容(通过按钮或菜单操作)向浏览器最终用户键入操作。然后,目标是通过REST API将元素从当前DOM传递到PDFreactor,以便Web服务可以生成PDF。这是PDFreactor的合理使用吗?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

当然可以使用PDFreactor转换浏览器已经处理过的HTML内容。在这种情况下你可以例如使用JavaScript API将从“body”元素提取的内容传递给PDFreactor,并在同一页面中显示生成的PDF。请参阅下面的示例脚本:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <script src="http://www.pdfreactor.com/product/wrappers/javascript/lib/PDFreactor.js"></script>
        <script>
            window.onload = function() {
                convertToPDF();
            }
            function convertToPDF() {
                // Create new PDFreactor instance
                var pdfReactor = new PDFreactor();
                // Get the content from the body element
                var content = "<html><body>"+document.body.innerHTML+"</body></html>";
                // Create a new PDFreactor configuration object
                var config = {
                    // Specify the input document
                    'document': content,
                    // Set a base URL for images, style sheets, links
                    baseURL: window.location.href,
                }
                // Render document and save result
                pdfReactor.convert(config, function(result) {

document.body.innerHTML += '<iframe id="result" style="width: 100%; height: 95vh"></iframe>';
                    document.getElementById("result").src = "data:application/pdf;base64," + result.document;
                }, function(error) {
                    document.body.innerHTML += "<h1>An Error Has Occurred</h1>"
                                            + "<h2>" + error + "</h2>";
                });
            }
        </script>
    </head>
    <body>
        <p>Hello World</p>
    </body>
</html>

然而,由于PDFreactor支持各种流行的JavaScript库,包括D3.js,jQuery等,将包含JavaScript的输入文档直接传递给PDFreactor Web服务而不是转换浏览器呈现的HTML可能更有效。 。只要在PDF反应器集成中启用了JavaScript处理(默认情况下禁用),PDFreactor将处理输入文档中的任何JavaScript。