使用PHP编写PDF(PDFLib)

使用PHP编写PDF(PDFLib),php,html,pdf,pdflib,Php,Html,Pdf,Pdflib,我目前正在编写一个代码,使用PDFlib从中输出PHP中的pdf文件。问题是所有html标记也都写入了输出文件中。如何才能取消所有这些标签 这是我的示例代码 $postVariable = $_POST; $contentData = ""; foreach($postVariable as $key => $value){ if(is_array($key)){ foreach($key as $key1 => $value1){

我目前正在编写一个代码,使用PDFlib从中输出PHP中的pdf文件。问题是所有html标记也都写入了输出文件中。如何才能取消所有这些标签

这是我的示例代码

$postVariable = $_POST;

$contentData = "";
foreach($postVariable as $key => $value){ 
    if(is_array($key)){
        foreach($key as $key1 => $value1){
           $contentData.= $key1 .": ". $value1."<nextline>";
        }
    }else{
        $contentData.= $key .": ". $value."<nextline>";
    } 
}

$testdata = nl2br($contentData);
$pdf = pdf_new();
// open a file
pdf_open_file($pdf, $_SERVER['DOCUMENT_ROOT']."cas".DIRECTORY_SEPARATOR."$filename.pdf");
// start a new page (A4)
pdf_begin_page($pdf, 595, 842);

// Locate Font Directory
$fontdir = "C:\WINDOWS\Fonts";
// Font Name Parameters
pdf_set_parameter($pdf, "FontOutline", "arialMyName=$fontdir\arial.ttf");
// Find Font
$arial = PDF_findfont($pdf,"arialMyName","host",0 );
// Set font size and font name
pdf_setfont($pdf, $arial, 10);

//$arial = pdf_findfont($pdf, "Arial", "host", 1);
//pdf_setfont($pdf, $arial, 10);
// print text
pdf_show_xy($pdf, "TO THE UNIT OWNER",50, 750); 
pdf_show_xy($pdf, "Test ext", 50,730);
pdf_show_xy($pdf, "test test", 50,715);
pdf_show_xy($pdf, $contentData, 50,700);
// end page
pdf_end_page($pdf);
// close and save file
pdf_close($pdf);
$postVariable=$\u POST;
$contentData=“”;
foreach($key=>$value的postVariable){
if(is_数组($key)){
foreach($key as$key1=>$value1){
$contentData.=$key1.:“$value1.”;
}
}否则{
$contentData.=$key.:“$value.”;
} 
}
$testdata=nl2br($contentData);
$pdf=pdf_new();
//打开一个文件
pdf_open_file($pdf,$_SERVER['DOCUMENT_ROOT'].“cas”.DIRECTORY_SEPARATOR.$filename.pdf”);
//开始新页面(A4)
pdf开始页($pdf,595842);
//找到字体目录
$fontdir=“C:\WINDOWS\Fonts”;
//字体名称参数
pdf_set_参数($pdf,“FontOutline”,“arialMyName=$fontdir\arial.ttf”);
//查找字体
$arial=PDF_findfont($PDF,“arialMyName”,“host”,0);
//设置字体大小和字体名称
pdf_setfont($pdf$arial,10);
//$arial=pdf_findfont($pdf,“arial”,“host”,1);
//pdf_setfont($pdf$arial,10);
//打印文本
pdf_show_xy($pdf,“致业主”,50750);
pdf_show_xy($pdf,“测试分机”,50730);
pdf_show_xy($pdf,“测试”,50715);
pdf_show_xy($pdf$contentData,50700);
//结束页
pdf_end_页面($pdf);
//关闭并保存文件
pdf_close($pdf);
样本输出为: 致单位业主 测试文本 测试
类型:公寓****var\u名称:****var\u公司:****var\u日期:***提交:保存并下载您不能使用PDFLib从HTML生成PDF内容。好的,您可以编写转换器,但这是一个巨大的工作要做


我建议使用支持HTML输入的。。。我曾经试着做同样的事情。直接使用pdflib非常困难

我在谷歌代码网站上找到了这个项目。该项目五颗星中有十颗星当之无愧

它被称为dompdf。您可以使用CSS支持从HTML页面生成PDF。您可以用少于10行的代码生成PDF


查看它的运行情况。

我建议使用TCPDF库。它可以将HTML转换为PDF文件,包括CSS代码。它支持相当多的HTML标记,并且做得很好。然而,从个人经验来看,虽然使用它生成高质量的PDF文件是非常可能的,但结果并不总是100%符合预期。它可能需要一些调整和摆弄来获得你想要的结果

如果您只想删除HTML标记,我想您可能想看看strip_标记。但我想那不是你真正想要的


最后,这里有一个非常酷的新手——一个使用WebKit HTML和渲染引擎生成PDF的PHP扩展。它被称为。它产生了惊人的结果。例如,看看这张来自《纽约时报》主页的PDF——请参阅(单击下面的“保存到我的电脑”)。该输出是在未指定任何其他选项的情况下生成的。异常但是,您需要将其作为PHP扩展运行,这可能是一项非常重要的任务。所以我想说:现在就坚持使用TCPDF库。

可能重复感谢大家分享您的知识。我将尝试TCPDF.float,绝对位置。。。不支持。还有其他选择吗?这个项目功能更强大,它基于Webkik(Safari&Chrome和其他人使用的浏览器渲染引擎)。我相信它会解决你所有的问题。