我想知道是否有任何方法可以将整个HTML页面转换为png(或其他类型的图像?)我正在尝试动态创建PDF,但它正在将我的样式作为文本拉动,但我希望样式与页面保持一致(cufon和all)。任何帮助,将不胜感激! :)
答案 0 :(得分:0)
这看起来并不简单。后端(PHP等)不进行渲染,布局。它只是生成内容。
网站的布局和视觉方面由您的客户端(浏览器)完成,后端无法访问此网站。
但是,给定一个HTML文件,有些库可以将它呈现为像Prince XML这样的PDF,它们似乎能够做到这一点。
答案 1 :(得分:0)
在观看您的网站时,生成与浏览器在浏览器中看到的内容相同或甚至接近的图像的唯一方法是启动浏览器并截取屏幕截图。您需要浏览器的渲染引擎来呈现页面。你发现没有浏览器的所有图书馆创建的东西都与访问者看到的东西大不相同,并且根本不会渲染cufon或其他奇特的东西。
提供网页截图预览的公司现在运行许多服务器,每个服务器运行许多虚拟PC,每个服务器运行完整的操作系统和真实的Web浏览器。他们拥有所有这些系统拉动工作,在真实浏览器中打开网页,截取屏幕截图和保存图像。你不会用一点PHP脚本复制它。
答案 2 :(得分:0)
使用PHP将网页转换为图像和PDF是一种巨大的痛苦。解决方案通常需要操作系统级脚本,假打印机驱动程序或屏幕捕获,这可能会导致相当脆弱的设置。几年前我遇到了同样的问题,并开始研究本机PHP扩展,利用Gecko引擎将HTML呈现为PDF,但从未完成。
我见过的最佳答案并非完全将完整的网页转换为PDF,而是将XML转换为PDF。 XEP by RenderX是Apple用于从XML源以多种格式(包括HTML和精美呈现的PDF)生成开发人员文档的商业工具。将XEP工具与PHP结合使用的好处是,PHP可以很好地处理XML,因此您可以将生成的XML传递给XEP二进制文件,让它转换为PDF,然后用PHP处理生成的PDF文件。
答案 3 :(得分:0)
考虑构建一个类似于您网页的常规PDF文件:
PHP::PDF - 使用php构建
PDF Reference - 文件结构。