【问题标题】:Can PDFreactor be used to create PDF documents from browser DOM?可以使用 PDFreactor 从浏览器 DOM 创建 PDF 文档吗?
【发布时间】:2016-12-15 22:58:13
【问题描述】:

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

提前谢谢你。

【问题讨论】:

    标签: pdf-reactor


    【解决方案1】:

    当然可以用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。

    【讨论】:

      猜你喜欢
      • 2014-03-11
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      相关资源
      最近更新 更多