ictsolutions/codeigniter-dompdf

CodeIgniter 4 框架的 Dompdf。

dev-develop 2024-03-18 21:02 UTC

README

CodeIgniter Dompdf 库是一个包装器,它帮助在 CodeIgniter 框架中使用 Dompdf 库生成 PDF 文件。

Dompdf 库是一个流行的 PHP 库,允许您从 HTML 标记创建 PDF 文档。它将 HTML 和 CSS 转换为 PDF 格式,允许您根据您 Web 应用程序的数据动态生成 PDF 文件。

使用 CodeIgniter Dompdf 库,您可以通过传递 HTML 内容或视图到库的方法轻松生成 PDF 文件。库会处理 HTML 渲染、应用 CSS 样式并将其转换为可下载的 PDF 文件。

PHP CodeIgniter

安装

安装通过 Composer 完成。

composer require ictsolutions/codeigniter-dompdf

配置

可以通过配置文件覆盖或增强库的默认行为。将 examples/Pdf.php 复制到 app/Config/Pdf.php 并按照注释中的说明操作。如果没有找到配置文件,库将使用其默认设置。在 Breadcrumb 类中,您可以设置以下配置选项

showWarnings (布尔值,默认: false)

如果设置为 true,将抛出异常以显示 dompdf 的警告。

convertEntities (布尔值,默认: true)

如果设置为 true,则使用 Dejavu Sans 字体。然而,这个字体没有 € 和 £ 等某些实体的符号。如果您需要正确显示这些字符,可以将此选项设置为 false

defaultMediaType (字符串,默认: 'screen')

此选项指定了应渲染到 PDF 中的目标媒体视图。可能的值有

  • screen
  • tty
  • tv
  • projection
  • handheld
  • print
  • braille
  • aural
  • all

defaultPaperSize (字符串,默认: 'a4')

此选项指定了 PDF 文档的默认纸张大小。它接受标准纸张大小,如 'letter'、'legal'、'A4' 等。

defaultPaperOrientation (字符串,默认: 'portrait')

此选项指定了 PDF 文档的默认纸张方向。可能的值是 'portrait' 和 'landscape'。

defaultFont (字符串,默认: 'serif')

此选项指定了在找不到合适字体时使用的默认字体族。字体必须存在于字体文件夹中。

fontHeightRatio (整数,默认: 1)

此选项将比率应用于字体的高度,使其更接近浏览器的行高。

dpi (整数,默认: 96)

此选项指定图像和字体的 DPI(每英寸点数)设置。这决定了 PDF 文档的默认渲染分辨率。

isPhpEnabled (布尔值,默认: false)

如果设置为 true,DOMPDF 将自动评估 <script type="text/php"> ... </script> 标签中包含的行内 PHP 代码。

注意:为不受信任的文档启用此选项可能存在安全风险。

isRemoteEnabled (布尔值,默认: true)

如果设置为 true,DOMPDF 将根据需要访问远程站点以获取图像和 CSS 文件。

注意:启用此选项可能存在安全风险,尤其是当与 isPhpEnabled 等其他选项结合使用时。

isJavascriptEnabled (布尔值,默认: true)

如果设置为 true,DOMPDF 将自动插入 <script type="text/javascript"> ... </script> 标签中包含的 JavaScript 代码。

用法

首先,我们需要加载 Pdf 库

$dompdf = new \IctSolutions\CodeIgniterDompdf\Pdf();

在创建 Dompdf 实例后,我们可以设置 PDF 属性

$dompdf->set_option('isRemoteEnabled', TRUE);
$dompdf->setPaper('A4', 'landscape');

然后,我们用它来加载 Html 内容

$html = '<h1>Welcome to PDF Generator</h1>';
$dompdf->loadHtml($html);

我们可以渲染 Html 内容

$dompdf->render();

最后,我们可以流式传输输出

$dompdf->stream('welcome.pdf', array("Attachment"=>0)); // stream to client side

示例:使用Dompdf创建CodeIgniter项目

以下是包含Dompdf库在CodeIgniter中的通用指南步骤

  1. 通过Composer在您的项目中安装库
composer require ictsolutions/codeigniter-dompdf
  1. 当您需要创建PDF时,加载库
$dompdf = new \IctSolutions\CodeIgniterDompdf\Pdf();
  1. 使用库来创建PDF。以下示例展示了从视图创建PDF
$htmlContent = $this->load->view('pdf_view',$data,TRUE);
$dompdf->loadHtml($htmlContent);
$dompdf->render();
$dompdf->stream("welcome.pdf", array("Attachment"=>0));

在这个例子中,'pdf_view' 将是一个包含您的HTML结构的视图文件,而 $data 将是您想要传递给视图的任何数据。输出将以 welcome.pdf 的文件名流式传输到客户端。如果您将附件选项设置为1,客户端将下载PDF文件而不是在浏览器中显示。请根据您的实际项目和代码库修改和调整这些示例。

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。