maxchene/kirby-pdf

Kirby 插件,可以将 HTML 转换为 PDF 的 PDF 引擎

安装: 4

依赖项: 0

建议者: 0

安全: 0

星星: 23

关注者: 1

分支: 0

开放问题: 0

类型:kirby-plugin

1.0.2 2023-08-08 08:51 UTC

This package is auto-updated.

Last update: 2024-09-08 11:33:08 UTC


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'
]

方向可以是 portraitlandscape,默认为 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 渲染