我想知道是否有人知道如何将生成的PDF文档保存到服务器,而不是提示用户在本地下载?
使用此: http://www.cloudformatter.com/CSS2Pdf
非常感谢
编辑: 我正在使用以下JS来启动PDF。
$(function(){
$('#generatePDF').click(function(e) {
e.preventDefault();
var pdfdata = xepOnline.Formatter.Format('printableInvoice',
{
pageWidth:'216mm',
pageHeight:'279mm',
render: 'base64'
}
);
console.log(pdfdata);
});
});
答案 0 :(得分:0)
由于下面的评论是相关的,所以留下答案。最初的答案是如何获取源信息(使用“base64”选项),而不是最终的PDF。
所以要获取内存中的最终PDF,如果你检查Github中的代码:
https://github.com/Xportability/css-to-pdf/blob/master/js/xepOnline.jqPlugin.js
从第602行的“else”处开始...如果您强制下载以外的任何内容,则执行“else”。如果你选择“newwin”或“embed”作为方法和浏览器嗅探JS并没有强制它重新下载(它在Safari,IE和移动浏览器上都有),那么这个“别的”被执行。
在成功的AJAX帖子上,执行函数“xepOnline.Formatter .__ postBackSuccess”。此函数从第863行开始。在第865行,加载实际PDF的base64编码字节。如果您调试站点并在该行代码上进行调试,则可以获得var“base64”的值,该值将是base64编码的字节。
所以,如果您只考虑Firefox和Chrome,那么您可以对代码执行一些操作,将结果发布回服务器而不显示它。如果您要考虑所有这些浏览器,则需要添加一些选项(比如说选项:'memory',它会跳过所有浏览器嗅探,运行AJAX版本但具有自己的成功功能。
我可以看一下将它添加到库中,但你可以自由地拉它并自己制作一些mod。