我正在构建一个网站,从表单中获取数据(人名)并将其发布到下一页表格中的自定义“注释”中。我希望用户能够将他们的“注释”保存为带有自定义名称的图像。有没有办法将特定HTML表格保存为PNG?也许在网页上截取特定坐标的截图?
如果没有办法在HTML画布中从表单中呈现发布的PHP内容?
任何帮助都会很棒。我现在有点过头了。
答案 0 :(得分:2)
虽然您可以使用各种工具呈现HTML,但您无法确定这些工具是否会像浏览器呈现HTML一样呈现HTML。
如果您的最终目标是 生成带有文字的图片 ,那么让我们解决该问题,而不是尝试使您建议的解决方案有效。
看一下PHP的imagettftext()函数。它包含一个 Example#1 ,它可以从文本中创建一个小而简单的图像,可以存储在任何变量中......包括表单变量。
通过使用此示例,并添加一些PHP's GD functions的其他内容,您可以制作一个合适的表副本,并确保它看起来完全符合您的需要,而不是html2ps或其他方式工具呈现它。
<?php
// Set the content-type
header('Content-Type: image/png');
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = isset($_POST['name']) ? $_POST['name'] : "name";
// Replace path by your own font path
$font = 'arial.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
以下是上述脚本生成的示例输出:
请注意,您需要按照上面链接中的说明提供 arial.ttf
。
如果事情不起作用,请在屏幕上和Web服务器的错误日志中首先查找错误,然后再进行此处的跟进。您的Web服务器上可能没有安装PHP的GD模块。如果是这种情况,您应该咨询服务器管理员,以确保您可以获得所需的信息。
答案 1 :(得分:2)
您可以在客户端尝试this JS library。
答案 2 :(得分:1)
可行的解决方案
答案 3 :(得分:0)
您可以使用html2ps
之类的内容答案 4 :(得分:0)
您也可以使用Xvfb。这是一个linux包。它代表“X-window虚拟帧缓冲区”(如果你想知道为什么它在地球上有这么深奥的名字)。
它将做什么,是加载页面,执行任何JavaScript并应用CSS中的不同样式,所有这些都在服务器的帧缓冲区中。然后你可以保存图像。
Xvfb可能无法在大多数共享托管服务上使用,但是,如果这无关紧要,那么这将是一个可行的解决方案。