0

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

先感谢您。

4

1 回答 1

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 更有效。只要在您的 PDFreactor 集成中启用了 JavaScript 处理(默认禁用),PDFreactor 就会处理您输入文档中的任何 JavaScript。

于 2016-12-15T14:58:13.207 回答