我现在面临一个有趣的问题:我希望在显示之前修改服务器上生成的PDF文件(使用TCPDF和Symfony2)。
为什么呢? PDF将包含一些半敏感信息,我们的客户可能会很高兴听到这些信息永远不会离开他们的机器。 (我知道HTTPS被认为非常安全,这对于向我们的客户保证他们的数据是安全的来说更是一个奢侈的问题。)
这就是我得到的:在PDF上使用占位符,将其保存为String并通过AJAX检索它,用本地数据替换占位符,并将字符串转换为Base64。真正的问题是将文件发送给用户。
很多人建议使用HTML5“下载”属性并点击隐藏链接,但该方法在Safari或旧版本的IE上不起作用。数据URI是另一种选择,但是超出一定的复杂度,base64字符串只会变得太长而浏览器会冻结,试图在地址字段中显示它。我也看过像Downloadify.js,FileSaver.js等库,但这些都没有被广泛支持(或者依赖flash,我很乐意避免)。
我非常愿意接受有关我还能尝试什么的建议,甚至有人告诉我为什么我要做的事情完全没必要。