php如何实现html内容生成图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何实现html内容生成图片相关的知识,希望对你有一定的参考价值。

我想把一个html页面的整个源码写入图片,从而生成一个图片,但是直接用GD库写的话,整个源码就会写入图片,css样式和标签不能转化成样式的形式,如下图所示:

请问:我如果想实现css在页面里的样式,如何才能做到?
感谢!
找到了一种实现方法---phantomjs,可以直接实现html内容转成图片格式
地址:http://www.woiweb.net/phantomjs-quick-use-tutorials.html

需要借助第三方扩展 wkhtmltopdf 可转成图片或者pdf追问

我是用DOMPDF转成pdf,可是文字不能换行,而且有的显示,有的不显示

追答

试试这个

DOMPDF负责渲染文本的text_frame_reflower.cls.php文件,把以空格、分隔符为界的分割模式,修改为以一个utf-8字符为界的分隔模式。

将此代码:

// ........text_frame_reflower.cls.php ........  
// split the text into words  
$words = preg_split('/([\\s-]+)/u', $text, -1, PREG_SPLIT_DELIM_CAPTURE);  
$wc = count($words);  
// ...............................................

 


换成:


// ........text_frame_reflower.cls.php ........  
// split the text into words  
preg_match_all("/./u", $text, $array);  
$words = array(0);  
$wc = count($words);  
// ..

引用自http://blog.csdn.net/yuhui_fish/article/details/10520355

参考技术A 可以拿取CSS文件后,在PHP中编辑到HTML页面中。然后在生成图片。

php生成图片验证码

<?php 
/**
 * 生成验证码
 * @param int $type
 * @param int $length
 * @return string
 */
function buildRandomString($type=1,$length=4){
    if ($type == 1) {
        //join()函数是implode()函数的别名,用来将数组变成字符串,第一个参数为数组元素之间放置的内容
        $chars = join ( "", range ( 0, 9 ) );
    } elseif ($type == 2) {                     
        //range()函数创建一个包含指定范围的元素的数组
        //array_merge()函数把一个或多个数组合并为一个数组
        $chars = join ( "", array_merge ( range ( "a", "z" ), range ( "A", "Z" ) ) );
    } elseif ($type == 3) {
        $chars = join ( "", array_merge ( range ( "a", "z" ), range ( "A", "Z" ), range ( 0, 9 ) ) );
    }
    if ($length > strlen ( $chars )) {
        exit ( "字符串长度不够" );
    }
    $chars = str_shuffle ( $chars );//str_shuffle()函数随机打乱字符串中的所有字符
    return substr ( $chars, 0, $length );//substr()函数返回指定部分的字符串
}

 

以上是关于php如何实现html内容生成图片的主要内容,如果未能解决你的问题,请参考以下文章

PHP:如何在一个表单操作中实现图片与文字一起传递

Python如何将上百个pyecharts生成的html转成图片格式?

使用php如何生成验证码

PHP实现简单的文本提交表单(可放入图片)

CSS如何实现鼠标悬停在图片上底部弹出文字内容?

php代码如何实现扫描二维码获取扫描者的信息