我有一个名为preview的窗体和按钮。我需要一种方法来生成预览,将生成的HTML转换为图像。将Html渲染为图像
点击预览按钮开始对控制器动作(我使用Yii Framework)的ajax调用,所以我收集了表单中的所有数据并生成了预填充的数据。
我需要将生成的HTML转换为图像;通过这种方式,我可以重新调整到我需要的尺寸。
我已经尝试生成一个.pdf,然后生成从pdf的图像,并使用mpdf扩展和imagick。但imagick要求PDF是一个现有的文件,而我更喜欢用mpdf生成.pdf字符串(我无法为预览按钮上的每次点击生成和删除pdf)。
什么是一个很好的方法来生成一个图像从HTML或PDF字符串生成“即时”?
这是我使用的代码,但它从imagick返回一个错误,说没有图像尺寸:
$html2pdf = Yii::app()->ePdf->mpdf('','A4');
$html2pdf->WriteHTML($this->render('preview', array("data" => $data, "imageProvider" => $arrayImage),true));
$content_PDF = $html2pdf->Output('', EYiiPdf::OUTPUT_TO_STRING);
$im = new Imagick();
$im->readImageBlob($content_pdf);
//$im->setIteratorIndex(0);
$im->setResolution(800, 600);
$im->setImageFormat("jpeg");
header("Content-Type: image/jpeg");
echo $im->getImage();
是的,我知道这是不是一个很好的解决方案,但这种方式的结果是一个对象,无法点击,只有图像)。我需要这个结果。 有什么想法? –
您可以随时在预览窗体中放置叠加div,增加叠加层上的z-index并将不透明度降低到0.然后用户将无法单击预览窗体,但可以查看它。我仍然认为HTML解决方案不是图像选项。 – Lowkase