gpt4 book ai didi

php - 使用 PHP (PDFLib) 编写 PDF

转载 作者:可可西里 更新时间:2023-11-01 00:27:10 25 4
gpt4 key购买 nike

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

样本输出是:给单位所有者测试文本测试一下type: Apartment****var_name: ****var_company: ****var_date: ****submit: 保存并下载<

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

关于如何使用我当前使用的库 (PDFlib) 将 HTML 打印成 PDF,还有其他方法吗?

谢谢。

问候,休息

最佳答案

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

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

最后,还有一个非常酷的新手——一个使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com