soap / dompdf-thai
为 Laravel DomPdf 包装包添加泰文字体
v1.0.0
2023-10-11 04:15 UTC
Requires
- php: ^7.4|^8.0|^8.1
- illuminate/support: ^8.0|^9.0|^10.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
为 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 包模板 生成的。