traincase/laravel-pdf-tinker

实时调试和修改将转换为PDF的HTML模板。

2.0.0 2022-04-27 15:14 UTC

This package is auto-updated.

Last update: 2024-09-27 20:50:42 UTC


README

此包旨在作为本地开发的工具。请勿将此包包含在生产构建中。

Latest Version on Packagist Quality Score

Laravel PDF Tinker 提供了一个快速界面,用于调试和修改将转换为PDF的HTML模板的创建。

如果你是那些经常需要为每个客户创建自定义模板(订单确认、商品交付、发票等)的人,这个包适合你。

alt text

安装

由于此包仅用于本地开发,请将其作为开发依赖项安装。

composer require traincase/laravel-pdf-tinker --dev

如果已选择退出自动发现,则包将自动注册其服务提供程序。例如,在 AppServiceProvider 中添加以下内容

// Put this inside the 'register' method
if ($this->app->isLocal()) {
    $this->register(\Traincase\LaravelPdfTinker\PdfTinkerServiceProvider::class);
}

不要忘记检查 驱动程序部分,以查看您计划使用的驱动程序是否需要任何额外的设置。

用法

您可以在沙盒的界面中找到大多数选项。您可能不需要编辑配置。尽管如此,还有一些可以配置的事情。

配置

路由前缀

服务提供程序将注册一些必要的路由,以便设置和运行沙盒。默认情况下,所有路由都以前缀 vendor/laravel-pdf-tinker 开头。这意味着沙盒可在 your-app.tld/vendor/laravel-pdf-tinker/playground 上使用。

您是否与路由存在意外冲突?不用担心!

您可能需要发布配置文件(php artisan vendor:publish),然后编辑 config/laravel-pdf-tinker.php 中的 route_prefix 键,以使用您喜欢的不同前缀。

驱动程序选项

如果您已发布配置文件,您还可以更新 default_driver_options.<your-driver-alias> 键,以设置将在界面(在“配置”>“选项”下)中设置的默认选项。这仅会在您进入沙盒时使用,您始终可以更新沙盒内的配置。任何更改都不会在您离开页面后持久化,因此如果您经常进行调试,您可能想要覆盖默认选项。

驱动程序

目前有两个可用的驱动程序。

DomPDF

DomPdf 是开始使用的最简单驱动程序。按照安装说明进行后,所有内容都应该已经就绪。

快乐的调试!

Wkhtmltopdf

wkhtmltopdf 驱动程序需要 wkhtmltopdf 可执行文件在您的PATH中可用。这意味着如果在终端中运行 wkhtmltopdf --version,它应该输出类似以下内容

$ wkhtmltopdf --version
wkhtmltopdf 0.12.5 (with patched qt)

如果您使用 mac&homebrew,可以运行 brew cask install wkhtmltopdf。在其他系统上,从 wkhtmltopdf 网站下载 您系统的二进制文件。

创建自己的驱动程序

可以创建您选择的HTML2PDF生成库的驱动程序。只需创建您的驱动程序并将其与 PdfTinkerManager 注册。

  1. 首先,现在是创建您驱动程序的时候了。您的驱动程序应扩展 \Traincase\HtmlToPdfTinker\Drivers\Driver。您可以从 Traincase\LaravelPdfTinker\DompdfDriver 中获取一个示例。
  2. 使用 PdfTinkerManager 进行注册。将以下行添加到您已注册的服务提供者中的 boot 方法中。
    public function boot()
    {
        if ($this->app->isLocal()) {
            $this->app->resolving(\Traincase\HtmlToPdfTinker\PdfTinkerManager::class, function($manager) {
                $manager->extend('test-driver', function() {
                    // Need to fetch some things from the container? Sure.
                    $dependency = $this->app->make(\SomeFancyClass::class);
      
                    return new \App\Drivers\YourFancyDriver($dependency);
                });
            });
        }
    }
  3. 您的驱动程序将自动显示在驱动程序下拉菜单中,您可以自由地进行尝试!

准备好了,准备...

如果您遵循了所有安装说明,请继续尝试!打开您的浏览器,导航到 your-app.tld/vendor/laravel-pdf-tinker/playground