我目前正在编写代码以使用 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);

样本输出是:
给单位所有者
测试文本
测试一下
类型:公寓****var_name:****var_company:****var_date:****提交:保存并下载<

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

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

谢谢。

问候,
休息

最佳答案

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

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

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

关于php - 使用 PHP (PDFLib) 编写 PDF,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3760050/

10-11 05:23