3

我目前正在编写代码以使用来自http://www.pdflib.com/的 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);

示例输出为: TO THE UNIT OWNER 测试文本测试测试类型:Apartment****var_name: ****var_company: ****var_date: ****submit: Save and Download<

它忽略了 html 标签,并将其包含在内容中。

是否有任何其他方法可以使用我当前使用的库(PDFlib)将 HTML 打印为 PDF。

谢谢。

问候, 雷斯蒂

4

3 回答 3

3

我会推荐 TCPDF 库。它可以将您的 HTML 转换为 PDF 文件,包括 CSS 代码。它支持相当多的 HTML 标签,并且做得不错。然而,从个人经验来看,虽然用它很可能生成高质量的 PDF 文件,但结果并不总是像预期的那样 100%。它可能需要一些调整和摆弄才能得到你想要的结果。

如果您只想删除 HTML 标签,我想您可能想看看 strip_tags。但我想这并不是你真正想要的。

最后,还有一个非常酷的新手——一个使用 WebKit HTML 和渲染引擎生成 PDF 的 PHP 扩展。它被称为libwkhtmltox 扩展,可以在此处找到。它产生了惊人的结果。例如,查看它从《纽约时报》主页制作的 PDF - 请参阅(http://www.2shared.com/document/kYuS_G7p/nytimes.html - 点击下方的“保存到我的电脑”)。该输出是在未指定任何其他选项的情况下生成的。非凡。但是,您需要让它作为 PHP 扩展运行,这可能是一项不平凡的任务。所以我想说:现在坚持使用 TCPDF 库。

于 2010-09-21T13:01:28.580 回答
2

您不能使用 PDFLib 从 HTML 生成 PDF 内容。好的,您可以编写转换器,但这是一项艰巨的工作。

我推荐使用支持 HTML 输入的TCPDF 。

于 2010-09-21T12:01:41.837 回答
2

伙计...我曾经试图做同样的事情。直接使用 pdflib 非常困难。

我发现了这个项目,托管在 Google 代码网站上。该项目应得 5 星中的 10 星。

它被称为 DOM PDF,你可以在这里下载。您可以使用 CSS 支持从 HTML 页面生成 PDF。不到 10 行代码就可以生成 PDF!

查看示例以查看它的实际效果。

于 2010-09-21T12:25:01.757 回答