将Html呈现为图像

将Html呈现为图像,html,image,yii,mpdf,Html,Image,Yii,Mpdf,我有一个页面,有一个叫做预览的表单和按钮。我需要一个方法来生成预览,将生成的HTML转换为图像 单击preview按钮启动对控制器操作的ajax调用(我使用的是Yii框架),因此我从表单中收集了所有数据,并使用填充的数据生成了一个预览 我需要将生成的HTML转换为图像;通过这种方式,我可以重新调整尺寸到我需要的尺寸 我尝试过动态生成一个.pdf,然后从pdf生成图像,并使用mpdf扩展名和imagick。但是imagick要求pdf是现有文件,而我更喜欢使用mpdf生成.pdf字符串(我不能为每

我有一个页面,有一个叫做预览的表单和按钮。我需要一个方法来生成预览,将生成的HTML转换为图像

单击preview按钮启动对控制器操作的ajax调用(我使用的是Yii框架),因此我从表单中收集了所有数据,并使用填充的数据生成了一个预览

我需要将生成的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();

您需要重新考虑获取HTML并生成其图像文件的要求

我需要将生成的HTML转换为图像;这样我就能 重新调整尺寸到我需要的尺寸

您可以使用适当的CSS轻松调整维度和表单中的所有元素的大小。这是我要走的路线


生成图像似乎有些过分。

要使用Imagick,您需要设置图片的大小,而不仅仅是解决方案: 你能先试试这样的东西看看会发生什么吗


是的,我知道这不是一个好的解决方案,但这样的结果是一个不可点击的对象,只有一个图像;)。我需要这个结果。有什么想法吗?你可以在预览表单上放置一个覆盖div,增加覆盖上的z索引,并将不透明度降低到0。然后用户将无法单击预览表单,但可以查看它。我仍然认为HTML解决方案比图像选项更重要。
$thumb = new imagick("/path/".$filename);
$thumb->setImageFormat( "png" );
$thumb->thumbnailImage( 128, 128);