maxchene / kirby-pdf
Kirby 插件,可以将 HTML 转换为 PDF 的 PDF 引擎
1.0.2
2023-08-08 08:51 UTC
Requires
- php: >=8.1
- getkirby/composer-installer: ^1.1
Requires (Dev)
- getkirby/cli: ^1.1
- symfony/var-dumper: ^6.2
README
此插件允许您选择 PDF 引擎将 HTML 渲染为 PDF。
进行中
目前,此插件仅在您的服务器上安装了 WkHtmlToPdf 时才能工作。
很快将会有更多引擎:tcpdf、dompdf、mpdf。
安装
下载并将此存储库复制到 site/plugins/pdf
或使用 composer : composer require maxchene/kirby-pdf
渲染
使用当前模板进行渲染
这是一个最简单的渲染。PDF 引擎将使用其当前模板和 CSS 解析当前页面以渲染 PDF 文件。
对于此渲染,您可能希望使用 打印媒体查询 和 页面媒体查询 来满足您的需求。
专用的 PDF 模板
有时使用媒体查询渲染 PDF 可能很棘手,有时您可能希望对于相同的数据在 HTML 页面和 PDF 文件之间有不同的渲染。
在这种情况下,您可以使用自定义 CSS 文件和自定义 HTML 树配置一个专用的模板用于 PDF 渲染。
要激活专用模板,您必须在 templates 文件夹的 pdf 子目录中创建一个与您的页面模板具有相同名称的新模板。
以下是一个使用 recipe 页面模板的示例
├── snippets
├── templates
│ ├── pdf
│ │ ├── recipe.php <- used to render the PDF file
│ ├── recipe.php <- used to render the HTML page
因此,在 templates/pdf/recipe.php 中,您可以使用完全不同的布局和 CSS 来渲染 PDF 文件。
配置
要配置 kirby pdf 插件,在您的 site/config/config.php 中添加 maxchene.kirbypdf 条目
'maxchene.kirby-pdf' => [ 'margin' => [ 'bottom' => 10, // margins unit is millimeter(mm) 'left' => 10, 'right' => 10, 'top' => 10, ], 'orientation' => 'portrait' //either 'portrait' or 'landscape' ]
方向可以是 portrait 或 landscape,默认为 portrait。
注意,页边距是以毫米(mm)为单位的。
如何在模板中使用
以下是一个快速示例,说明您如何在模板中从页面到 PDF
<h1>Guacamole recipe</h1> <a href="<?= $page->pdfUrl();?>" target="_blank"> Here is a link to pdf file, will open in new browser tab </a> <a href="<?= $page->pdfUrl();?>" download="my-pdf-filename.pdf"> This will force PDF download with provided filename </a>
待办事项
- 添加更多 PDF 引擎
- 允许用户通过页面模板禁用 PDF 渲染