soap/dompdf-thai

为 Laravel DomPdf 包装包添加泰文字体

v1.0.0 2023-10-11 04:15 UTC

This package is auto-updated.

Last update: 2024-09-11 08:02:27 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

为 barryvdh/laravel-dompdf 包添加泰文字体支持。目前仅包含 THSanrabunNew。

安装

您可以通过 composer 安装此包

composer require soap/dompdf-thai

发布资源(字体文件)到 public/vendor/dompdf-thai

php artisan vendor:publish --tag="dompdf-thai-assets"

创建 storage/fonts 以存储缓存文件。

mkdir storage/fonts

用法

在您的 pdf 视图布局的 head 中添加 @DompdfThaiFont。您可以在 resources/views/layouts/pdf.blade.php 文件中放置。以下文件是从 Laravel Breeze Guest 布局文件改编的。

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="csrf-token" content="{{ csrf_token() }}">

        <title>{{ config('app.name', 'Laravel') }}</title>

        <!-- Fonts -->
        <link rel="preconnect" href="https://fonts.bunny.net">
        <link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />

        <!-- Scripts -->
        @DompdfThaiFont
        @vite(['resources/css/app.css', 'resources/js/app.js'])
        <style>
            body {
                font-family: 'THSarabunNew';
            }
        </style>
    </head>
    <body class="font-sans antialiased text-gray-900">
        <div class="flex flex-col items-center min-h-screen pt-6 bg-gray-100 sm:justify-center sm:pt-0 dark:bg-gray-900">
            <div>
                <a href="/">
                    <x-application-logo class="w-20 h-20 text-gray-500 fill-current" />
                </a>
            </div>

            <div class="w-full px-6 py-4 mt-6 overflow-hidden bg-white shadow-md sm:max-w-md dark:bg-gray-800 sm:rounded-lg">
                {{ $slot }}
            </div>
        </div>
    </body>
</html>

以下文件位于 resources/views/products。此文件将由 ProductController 用于流式传输 pdf 内容。

<x-pdf-layout>
    <div class="py-12">
        <div class="mx-auto max-w-7xl sm:px-6 lg:px-8">
            <div class="overflow-hidden bg-white shadow-sm dark:bg-gray-800 sm:rounded-lg">
                <div class="p-6 text-gray-900 dark:text-gray-100">
                    ทดสอบ This is a test for pdf
                </div>
            </div>
        </div>
    </div>
</x-pdf-layout>

这是产品控制器的一部分。

  namespace App\Http\Controllers;

  use App\Models\Product;
  use App\Http\Requests\StoreProductRequest;
  use App\Http\Requests\UpdateProductRequest;
  use Barryvdh\DomPDF\Facade\Pdf;

  ....
    /**
     * Remove the specified resource from storage.
     */
    public function destroy(Product $product)
    {
        //
    }

    public function toPdf()
    {
        $pdf = Pdf::loadView('products.pdf'); //, ['products' => Product::all()]);

        return $pdf->stream();
    }

有关如何从 Laravel 视图生成 pdf 的详细信息,请参阅 barryvdh/laravel-dompdf 文档

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近更改的信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全

如果您发现任何安全问题,请通过电子邮件 prasit.gebsaap@gmail.com 而不是使用问题跟踪器。

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件

Laravel 包模板

此包是使用 Laravel 包模板 生成的。