我正在使用 javascript 开发图像切割应用程序。主要目标是将图像切割成易于打印的部分,并使用这些部分生成 pdf。您可以在http://framingapp.com/和 github https://github.com/jmorel/framingapp上在线找到开发版本
图像处理本身效果很好,但是在生成 pdf 时,Chrome 会杀死我的页面并显示aww snap
错误消息。我尝试使用两个可用的 pdf generationg js 库,jsPDF
但是ByteScoutPDF
没有一个能够生成大的 pdf(并且ByteScoutPDF
不是开源的,我无法修改它以支持更大的分辨率和各种页面大小)。
我认为我要构建的 pdf 的绝对大小会使页面挂起,Chrome 认为这是一个错误并杀死它。我曾想过使用 webworkers 来避免这种情况,但无法让它们与 jsPDF 一起使用。pdf 对象似乎太复杂而无法作为 web worker 参数传递,并且由于它严重依赖于 window 元素,因此我无法在 webworker 中包含和使用它。
因此,我的问题是:无论如何在 js 中生成一个大的 pdf 而不让浏览器杀死页面?
在有人问我为什么不做 pdf 生成服务器端之前:图像处理本身有点密集,我不想让服务器过载;但主要原因是我不希望人们将图像上传到服务器:对于非常大的图像来说它很慢而且不切实际。更不用说我的服务器上的可用空间很小了。