arielmejiadev/filament-printable

获取您的Filament资源可打印的包

2.2.0 2024-08-03 01:13 UTC

This package is auto-updated.

Last update: 2024-09-03 01:35:10 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包提供了一个快速简便的方式将您的Filament资源表格或表单打印出来,或打印为PDF,非常适合添加基本报告(很多时候这就足够了),它可以与任何排序、搜索、筛选或分页或全部数据一起使用。

安装

您可以通过composer安装此包

composer require arielmejiadev/filament-printable

您可以发布并运行占位符

php artisan filament-printable:install

// or

php artisan vendor:publish --tag="filament-printable-stubs"

用法

// Add print button in a filament list header

class ListUsers extends ListRecords
{
    protected function getHeaderActions(): array
    {
        return [
            // ...
            PrintAction::make(),
        ];
    }
}


// Add print button in Filament CreateRecord or EditRecord class

class EditUser extends EditRecord
{
    protected function getHeaderActions(): array
    {
        return [
            // ...
            \ArielMejiaDev\FilamentPrintable\Actions\PrintAction::make(),
        ];
    }
} 


// Add print button as a bulk action

->bulkActions([
    Tables\Actions\BulkActionGroup::make([
        Tables\Actions\DeleteBulkAction::make(),
        \ArielMejiaDev\FilamentPrintable\Actions\PrintBulkAction::make(),
    ]),
]);

打印Filament表格

默认情况下,filament-printable设置了打印样式,使表格看起来很棒,无论表格是否已排序

  • 已排序
  • 显示搜索结果
  • 显示筛选结果
  • 显示分页结果
  • 显示所有结果

样式可以在public/css/filament-printable/filament-printable-styles.css中轻松自定义

打印Filament表单

默认情况下,Filament为表单元素添加了一些灵活的网格,如果您想为打印文档的元素设置显式的特定分布。

您可以使用Filament的GridSection元素在表单内部分布元素

    public static function form(Form $form): Form
    {
        return $form
            ->schema([

                Forms\Components\Grid::make()->schema([
                    Forms\Components\TextInput::make('name'),
                    Forms\Components\TextInput::make('email'),
                ])->columns([
                        'xs' => 1,
                        'sm' => 2,
                    ]),

                Forms\Components\Section::make([
                    Forms\Components\TextInput::make('name'),
                    Forms\Components\TextInput::make('email'),
                    Forms\Components\TextInput::make('second_email'),
                ])->columns([
                        'xs' => 1,
                        'sm' => 3,
                    ]),
            ]);
    }

重要

对于信函和法律纸大小的纸张,Filament列的sm大小分布将被使用。

自定义

Filament Printable包括一些用于打印资源的CSS样式,通常看起来很棒,但您可以根据自己的要求自定义打印CSS,在public/css/filament-printable/filament-printable-styles.css

以下是一个示例,说明如何删除打印时的一些部分样式

.fi-section {
    background-color: transparent !important;
    box-shadow: none !important;
}

测试

composer test

变更日志

请参阅变更日志,了解最近有哪些变化。

贡献

请参阅贡献指南以获取详细信息。

安全漏洞

请参阅我们的安全策略,了解如何报告安全漏洞。

致谢

许可

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