PHP生成PDF时,背景文字怎么去掉?

zhrn 2009-08-25 12:21:57
我在PHP程序中生成PDF文档,但是PDF文档每次都会出现一个背景文字,如:www.phplib.com这些字,如何把这些字去掉呢,下面的是原程序:
<?
try {
$p = new PDFlib();

if ($p->begin_document("", "") == 0) {
die("Error: " . $p->get_errmsg());
}


$p->begin_page_ext(595, 842, "");

$font = $p->load_font("Helvetica-Bold", "winansi", "");


$p->setfont($font, 24.0);
$p->set_text_pos(50, 700);
$p->show_xy("Hello world (PHP)!",100 , 750 );
$p->end_page_ext("");

$p->end_document("");



$buf = $p->get_buffer();
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print $buf;

}
catch (PDFlibException $e) {
die("PDFlib exception occurred in hello sample:\n" .
"[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
$e->get_errmsg() . "\n");
}
catch (Exception $e) {
die($e);
}

$p = 0;
?>

谢谢!
...全文
1536 点赞 收藏 16
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlbc 2009-08-28
学习学习了
回复
zhrn 2009-08-27
谢谢 foolbirdflyfirst,

但是有个奇怪的问题,我用你所说的dompdf在我本机上可以实现打开或者保存pdf文件,但是我上传到服务器上就不行了,打开之后是个空白的页面,没有任何提示,不知道是怎么回事
回复
foolbirdflyfirst 2009-08-27
[Quote=引用 14 楼 zhrn 的回复:]
我的PHP版本是5.1的,dompdf 是这个版本的dompdf_0-5-2_alpha1.zip ,
我刚查了一下服务器上的是4.3的版本,可能用不了
[/Quote]
厄..php4.那只好去试下fpdf了。也挺好,有不少扩展类。
回复
zhrn 2009-08-27
我的PHP版本是5.1的,dompdf 是这个版本的dompdf_0-5-2_alpha1.zip ,
我刚查了一下服务器上的是4.3的版本,可能用不了
回复
foolbirdflyfirst 2009-08-27
怎么我的文件里就没有这个设置?
手册:
==========================
sys_get_temp_dir

(PHP 5 >= 5.2.1)

sys_get_temp_dir — Returns directory path used for temporary files


你php版本是5.2+么?不是的话用不了,你是不是下的最新版本?刚发现7月份又有新的版本出来,我没用过,我用的是dompdf-0.5.1.zip (432 KB, date: 2009-04-29)这个版本。你试试看。


回复
zhrn 2009-08-27
我把error_reporting(0);改成error_reporting(E_ALL);出来的
Fatal error: Call to undefined function: sys_get_temp_dir() in E:\espow\ADMIN\sale\dompdf\dompdf_config.inc.php on line 125

这个错误提示

在我本地上也有过这个提示,我把它屏蔽了,也可以运行,但到了服务器就不行了。

这个该怎么修改呢?
回复
homejiji 2009-08-27
mark
回复
foolbirdflyfirst 2009-08-27
还有看下dompdf_config.inc.php里,它默认把错误信息屏蔽了
在设置的第一行
error_reporting(0);改成error_reporting(E_ALL);看看错误信息。
回复
foolbirdflyfirst 2009-08-27
[Quote=引用 8 楼 zhrn 的回复:]
谢谢 foolbirdflyfirst,

但是有个奇怪的问题,我用你所说的dompdf在我本机上可以实现打开或者保存pdf文件,但是我上传到服务器上就不行了,打开之后是个空白的页面,没有任何提示,不知道是怎么回事
[/Quote]
路径问题? 只能在服务器上调试调试了,着重看下源码中的render,stream两个函数。
回复
foolbirdflyfirst 2009-08-25
去看PDFlib类的源代码,ctrl+F找"www.phplib.com",应该是强制加进去的吧,用来标注版权的
回复
zhrn 2009-08-25
怎么设置呢,不知道在哪设置呀,请高手指点一下吧
回复
woshiguozhongbin 2009-08-25
可能是你的设置 没有设置吧。
回复
foolbirdflyfirst 2009-08-25
[Quote=引用 6 楼 zhrn 的回复:]
首先谢谢你的回答,对PDF我不懂,如果用其它的还要配置PHP.ini吗,还是怎么做,能不能教我一下怎么做,分不够可以再加,谢谢了
[/Quote]
不用配置php.ini.到官网去看吧,有例子,
dompdf:
http://www.digitaljunkies.ca/dompdf/examples.php
例子:
require_once("dompdf_config.inc.php");

$html =
'<html><body>'.
'<p>Put your html here, or generate it with your favourite '.
'templating system.</p>'.
'</body></html>';

$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf");

dompdf强大之处在于,直接将不是很复杂的html转成pdf,支持外部样式(必须css2.0规范),支持table嵌套...所以一些简单的pdf页面,你就在php端输出个简单的html串,调用它的load_html方法,它会自动将html转成pdf格式.开源而且能做到这样的功能,dompdf已经足够强大了.

fpdf也不错,http://www.fpdf.org
http://www.docin.com/p-25286971.html看看教程
回复
zhrn 2009-08-25
首先谢谢你的回答,对PDF我不懂,如果用其它的还要配置PHP.ini吗,还是怎么做,能不能教我一下怎么做,分不够可以再加,谢谢了
回复
foolbirdflyfirst 2009-08-25

要么看看api是否允许把背景去掉,如果是强制加的背景,那就有点恶心了...
要么用其它开源的pdf类库,大把啊,比如我就用dompdf,还有fpdf..
回复
zhrn 2009-08-25
q我只是加载了一个php_pdf.dll 这个文件,没有什么PDFLIB源代码的,能不能说详细点啊,谢谢了
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告