通过程序从网页或单个DIV创建图像


Programmatically create image from web-page or a single DIV

有没有任何方法可以从特定的div或完整的(web)页面以编程方式创建(客户端或服务器端(PHP))图像?我目前正在创建一个免费优惠券的网站,其想法是,当最终用户点击"打印"按钮时,应用程序会打开一个新的选项卡/窗口,将所有选定的优惠券作为A4格式的单个图像(JPG、PNG等)进行打印。每个优惠券都有自己的数据(商品名称、价格、描述等),所以我需要通过我设计的优惠券模板进行编程。

我并不要求您为我编写代码,只是建议我可以使用/开发的解决方案。如果不存在,我将免费上传/发布:)

更新:我用PHP GD库做了这件事:)仍然不满意使用图像而不是PDF的想法,因为每次打印的结果都是在不同的PC上使用不同的优惠券大小(图像)。这就是为什么PDF可能是一个更好的解决方案。您可以在demo.svikuponi.ba上查看/测试它-只需选择几个优惠券,然后单击上面的PRINTAJ按钮。

您肯定不能从div创建图像,但可以使用它的gd库在php中创建动态图像。以下链接将有所帮助:

http://php.net/manual/en/function.imagecreate.php

http://phptutorial.info/learn/create_images/

这里有一个在客户端创建图像的好方法:http://smus.com/screen-capture-for-chrome-os

你可以利用这一点创建一个在webkit上运行良好的web应用程序(对于其他浏览器,我将研究JS polyfills)。

有人提到html2canvas和/或jsfeedback吗?

它完全用javascript创建了一个页面截图,然后你可以通过ajax发送到服务器。。

显然,CSS支持缺少一些东西。

在php中,有许多与图像相关的函数,如GD库中的imagettftext()有关详细信息,请查看http://php.net/manual/en/book.image.php如果GD还不够,你也可以试试imagick

对于模板,您可以尝试从您的文件(图像)中在php中创建一个真正的颜色句柄,并添加文本部分或其他具有各种效果和条形码等的内容。

但在您的情况下,我建议动态创建PDF,因为它最好使用格式化而不是纯图像,PDF库:http://www.fpdf.org/

您可以轻松地获得代币/凭证的背景图像,并使用一些php变量覆盖文本。

我相信用php图像创建一个独特的条形码也是可能的。

从网页上获取屏幕截图是可能的,但这相当麻烦。你需要启动一个网络浏览器来渲染页面,并从中获得屏幕截图。

您可能更擅长解析一些规范,并将其提供给几个GD或Imagick函数。这不太通用,但更易于管理。