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