php html2pdf asp生成html后html中的图片不显示

php gd库和html中其他的不能显示,我用gd生成了一个图片,但是其他的不能显示了,为什么?怎么解决?_百度知道
php gd库和html中其他的不能显示,我用gd生成了一个图片,但是其他的不能显示了,为什么?怎么解决?
生成了个报表的折线图我用的是tp的框架,为什么。浏览器中其他的东西不能显示了
提问者采纳
片单独用个PHP文件来写吧;标签的src写路径就可以了啊,然后&img&gt
你能给我说个详细点的步骤吗?是不是生成的图片放在一个文件加下面,还是怎么?
对,生成图片的PHP文件可以放在文件夹里面呀,然后在另一个需要显示这个图片的页面里写个&img src=&PHP图片路径& /&就可以啦,我写验证码都是这样的。。
提问者评价
其他类似问题
php的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁长微博生成(html to image)原理 - 为程序员服务
为程序员服务
推荐团队博客
相关专栏文章
最近更新博客
长微博生成(html to image)原理
在平时工作中有一些需求,简单而言就是需要将一些内容生成图片。简单的内容通过PhotoShop处理还行,但是类似于带表格等的内容,每次都通过PhotoShop进行处理太浪费时间。网上有很多类似于长微博等的生成工具,生成简单的图片还行,但是要使用富文本生成图片,则多需要money,于是便自己研究了一下基于PHP的实现。
首先展示一下演示效果:
需求及原理
基于PHP,将html内容生成图片(PNG,JPEG等)
1. 直接通过图形函数生成
可以直接使用PHP中自带的或,将文字内容转换成为图片。这在处理纯文字内容的时候是很给力的,但是对于富文本内容来说却很吃力了,很难处理好。目前开源的有等,可以支持p、img等几个简单的html标签。
2. html->pdf->png
该方式即首先将html内容生成pdf文档,再将pdf文档转换成为图片。
html to pdf:目前较为成熟的方案包括,等,其实HTML2PDF也是使用的tcpdf的内核;
pdf to png:可以通过扩展。
目前基于该种方式的开源代码有,其原理如下图所示。
核心代码为(摘自:):
//获取某个URL地址的内容
echo file_get_contents('http://loosky.net/');
//将内容转换成pdf文档
$html2pdf = new HTML2PDF('P', 'A4');
$html2pdf-&writeHTML($html_content);
$file = $html2pdf-&Output('temp.pdf','F');
//将pdf文档转换成图片
$im = new imagick('temp.pdf');
$im-&setImageFormat( "jpg" );
$img_name = time().'.jpg';
$im-&setSize(800,600);
$im-&writeImage($img_name);
$im-&clear();
$im-&destroy();
这里使用了HTML2PDF的代码,其实个人建议使用tcpdf的,毕竟tcpdf的版本更新,功能更为强大。经过实际测试,tcpdf对中文、html格式等的支持更好,相对而言,HTML2PDF有点惨不忍睹,较长的中文会出现无法自动换行等基本错误。
但同时,这种方法存在一个较大的缺陷,当插入了图片等媒体后,经常会出现一页内无法放进去需要重新在另外一页进行排版的问题,从而生成的图片就会有较大的空白区域;同时每页的内容如果没有完全排满的话,生成的图片同样存在较大的空白区域,十分不美观。
因此,并不推荐这种方式。
3. 通过截图
该种方式类似于采用浏览器的截图功能,直接将某个URL地址的内容进行截图。相对前面两种方式而言:第一,对于富文本的html内容渲染更为方便、简单,直接生成html代码即可;第二,内容排版更为合理,不会出现pdf文档中存在的空白区域等问题;第三,对于中文的支持更为友好。
目前主要的开源项目包括:
:基于Linux平台,可以将html转成图片格式,有如下要求:
kdelibs for KDE 3.x (kdelibs4-dev)
zlib (zlib1g-dev)
对于服务器而言,尤其是资源比较吃紧的VPS而言,安装一个KED有点花销太大。
及其兄弟版本:其中CutyCapt是基于Linux、Windows平台,IECapt基于Windows平台,支持svg,ps,pdf,itext,html,rtree,png,jpeg,mng,tiff,gif,bmp,ppm,xbm,xpm等多种格式,使用均较为简单,直接使用如下命令。
注意:CutyCapt的可执行命令在Windows平台和Linux平台下的大小写不太一致。
./CutyCapt --url=http://www.example.org --out=example.png
IECapt --url=http://www.example.org/ --out=localfile.png
它的部署要求是:
CutyCapt depends on Qt 4.4.0+.
但是它比khtml2png好的一点是它可以不用装X server,可以用Xvfb这种轻量级的东西,然后可以这样使用:
xvfb-run --server-args="-screen 0, " ./CutyCapt --url=... --out=...
通过对各种实现方式进行实际的对比,本人倾向于采用CutyCapt的方式。
具体实现过程
1、如首页所示,通过嵌入富文本编辑器,提供富文本编辑功能,同时可以提供对作者信息、版权标记、图片大小格式等的定制。
2、将提交的内容进行过滤,并生成htm/html文档,通过CSS对生成的文档内容进行格式渲染。
3、通过PHP执行CutyCapt命令,对生成的网页文件进行截图。
到这一步已经完全可以实现html内容生成图片的功能了,但CutyCapt生成的图片相对而言会比较大,因此还可以进一步进行优化。
4、通过imagick对生成的图片进行优化
imagick具有强大的图片处理功能,可以优化CutyCapt生成的图片的质量及大小,同时还可以方便地进行加水印等操作。
开发经验分享
在实际开发过程中碰到了各种问题,进行一些分享。
1、操作系统选择
CutyCapt及imagick都有Linux和Windows的版本,在Windows下面的开发、运行不存在较大的问题,按照正常步骤进行安装配置即可。
在Linux平台下,CutyCapt的安装教程可参考:
centos下安装cutycapt:
(1)安装qt47
增加qt47的源
vim /etc/yum.repos.d/atrpms.repo
//加入如下内容
name=CentOS $releasever – $basearch – ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
[atrpms-testing]
name=CentOS $releasever – $basearch - ATrpms testing
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/testing
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
//进行安装
yum update
yum install qt47
yum install qt47-devel
yum install qt47-webkit
yum install qt47-webkit-devel
2、安装cutycapt
yum install svn
svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
mv cutycapt/CutyCapt /usr/local/cutycapt
cd /usr/local/cutycapt
qmake-qt47
3、安装xvfb
yum install Xvfb
4、测试cutycapt截图
xvfb-run --server-args="-screen 0, " CutyCapt --url= --out=baidu.png
5、将xvfb置入后台运行
Xvfb -fp /usr/share/fonts :0 -screen 0
DISPLAY=:0 ./CutyCapt --url= --out=baidu.png
ubuntu下安装cutycapt
1、两条命令搞定
apt-get install cutycapt
apt-get install xvfb
2、测试截图
xvfb-run --server-args="-screen 0, " CutyCapt --url= --out=baidu.png
中文乱码问题:
将windows下的中文字体上传至/usr/share/fonts目录,执行下命令fc-cache即可。
在这里,作者想说的是,尽量选择Ubuntu吧,安装方便;更重要的是,CentOS下面会出现各种问题,如CutyCapt: cannot connect to X server :99等,会让你非常郁闷,我甚至安装了新的包含Gnome、KDE桌面环境的操作系统仍无法解决,而在Ubuntu下面几乎不存在任何问题。
2、Web服务器的选择
因为截图功能涉及到PHP需要执行操作系统的CutyCapt命令,可以通过system()或者exec()函数。
作者分别使用了apache和Nginx两种Web服务器,在Nginx下会出现执行调用CutyCapt的PHP脚本无法运行的情况,会遇到比较麻烦的权限问题,中提供了一种解决方案,但作者没有测试成功。使用apache服务器则是一路畅通,不存在这个问题。
因此,作者建议选择Ubuntu+apache的组合,千万不要选择CentOS+Nginx,需要解决的麻烦问题太多,从而也容易造成一些不安全的因素。
安装代码如下:
apt-get install apache2
apt-get install php5 libapache2-mod-php5
3、Ubuntu中安装imagick
apt-get install php5-dev php5-cli php-pear
//安装支持环境
apt-get install imagemagick
//有可能不是最新版本,需要通过源代码安装最新版本
//源代码方式安装http://www.imagemagick.org/script/download.php
cd /usr/local/src
wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.8.7-0.tar.gz
tar xzvf ImageMagick-6.8.7-0.tar.gz
cd ImageMagick-6.8.7-0/
./configure && make && make install
apt-get install graphicsmagick-libmagick-dev-compat
pecl install imagick
echo extension=imagick.so &&/etc/php5/conf.d/imagick.ini
service apache2 restart
常见错误:
在运行pecl install imagick 时有以下出错提示:
checking if ImageMagick version is at least 6.2.4... configure: error: no. You need at least Imagemagick version 6.2.4 to use Imagick.
ERROR: `/tmp/pear/temp/imagick/configure --with-imagick=hjw' failed
根据提示是没有安装Imagemagick或者Imagemagick版本不够,可以通过源代码的方式安装最新版本的Imagemagick。
4、Linux平台下的字体渲染
可以将Windows平台下的雅黑、宋体、开题、黑体等常用中文字体安装到Ubuntu系统中,避免出现截图中的字体不好看的情况,同时也满足对富文本编辑中支持的字体进行渲染。
相关文章推荐:我用PHP内嵌了一个HTML文件,HTML文字可以显示,图片却不能显示,请问该怎么办?
[问题点数:0分]
我用PHP内嵌了一个HTML文件,HTML文字可以显示,图片却不能显示,请问该怎么办?
[问题点数:0分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2002年7月 PHP大版内专家分月排行榜第一2002年5月 PHP大版内专家分月排行榜第一2002年7月 C/C++大版内专家分月排行榜第一
2003年1月 PHP大版内专家分月排行榜第三2002年7月 专题开发/技术/项目大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。php下,有没有开源的class,能把页面按照原来的样式生成pdf?_百度知道
php下,有没有开源的class,能把页面按照原来的样式生成pdf?
也就是将浏览器端的html生成pdf文件。需要在线生成,而不是安装任何软件生成。
提问者采纳
dompdf是一个HTML到PDF的转换工具,layer&#47.sourceforge。它的核心是一个遵循大部份CSS2。它同样支持目当大部份HTML属性,复杂表格(包含rowspan&#47。这个PHP脚本构建在FPDFPHP脚本之上.1样式的Rendering引擎.net/3.tufat.1支持非常好.HTML2PDF能够把一个HTML文本转换成一个打印机友好的PDF文件。dompdf采用样式驱动://www,它能够下载并读取外部样式://www,整个样式标签和单个HTML元素的样式属性.tufat.html2ps能够把带有图片.ca/dompdf/2.sourceforge。<a href="http://www。<a href="1。
其他类似问题
开源的相关知识
其他3条回答
生成图片的我见过,pdf的还真没见过。
可以通过PDFlib,或者到这上面去看看:
在Joomla CMS中有这个功能,看看能不能提取出来吧
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁html2pdf | SourceForge.net
Description
HTML2PDF is a PHP class using FPDF for the PHP4 release, and TCPDF for the PHP5 release. It can convert valid HTML and xHTML to PDF. More details and examples on
HTML2PDF is now on GitHub :
Categories
KEEP ME UPDATED
By clicking on "Follow" below, you are agreeing to the
Sent to None.
You seem to have CSS turned off. Please don't fill out this field.
You seem to have CSS turned off. Please don't fill out this field.
User Ratings
&#9733;&#9733;&#9733;&#9733;&#9733;
&#9733;&#9733;&#9733;&#9733;
&#9733;&#9733;&#9733;
&#9733;&#9733;
User Reviews
jitendrakatiyar
not working to real html.....
michaelbella
Beware! This program has the Xerox compression bug (google it) which can alter the pdf in ways you will not notice. Everything seems to work great, but then portions of the output are moved around or replaced in surprising ways.
I&#39;m rating this poor in every way to get your attention, even though it is very nice except for this bug.
Use wkhtmltpdf instead. It is being actively developed and does not appear to suffer from this problem.
Works nicely, but sometimes it&#39;s hard to figure out what went wrong
This is very good, even works better for me than tcpdf. I will surely donate when I earn some money with help of this software
jonahbailey
Great app phphtml2pdf
Additional Project Details
googletag.cmd.push(function() {
googletag.display('div-gpt-ad-0-0');
Upload a new icon
Icons must be PNG, GIF, or JPEG and less than 1 MiB in size.
They will be displayed as 48x48 images.

我要回帖

更多关于 asp生成html 的文章

 

随机推荐