cangelis/l4pdf

另一个针对 Laravel4 的 HTML 转 PDF 转换器

2.0.0 2014-11-15 21:21 UTC

This package is auto-updated.

Last update: 2024-09-16 02:27:47 UTC


README

这是一个针对 Laravel 4 的另一个 HTML 转 PDF 转换器。此包使用 wkhtmltopdf 作为第三方工具,因此需要在您的 PHP 配置中启用 proc_*() 函数,并且需要在您的机器上安装 wkhtmltopdf 工具(您可以从 这里 下载)。

如果您不是 Laravel 用户,请查看 这里

安装

步骤 1

将此添加到您的 composer.json

{
    "require": {
        "cangelis/l4pdf": "2.0.*"
    }
}

步骤 2

将此行添加到您的 app/config/app.php 中的 providers 数组

'CanGelis\L4pdf\ServiceProvider'

步骤 3

将此行添加到您的 app/config/app.php 中的 aliases 数组

'PDF' => 'CanGelis\L4pdf\PDFFacade'

步骤 4

运行此命令以发布此包的配置

php artisan config:publish cangelis/l4pdf

步骤 5

app/config/packages/cangelis/l4pdf/config.php 下配置您的 wkhtmltopdf 可执行路径

'executable' => '/usr/bin/wkhtmltopdf'

一些示例

PDF::loadView('pdf.invoice')->download('invoice.pdf');

PDF::loadURL('http://www.laravel.com')->grayscale()->pageSize('A3')->orientation('Landscape')->stream('laravel.pdf')

Route::get('/', function() {
    return PDF::loadHTML('<strong>Hello World</strong>')->lowquality()->pageSize('A2')->download();
});

## 保存 PDF

l4pdf 使用 League\Flysystem 将文件保存到本地或远程文件系统。

用法

$pdfObject->save(string $filename, League\Flysystem\AdapterInterface $adapter, $overwrite)

filename: 您要保存的文件的名称

adapter: FlySystem 适配器

overwrite: 如果设置为 true 且文件存在,则会覆盖该文件,否则将抛出异常。

示例

// Save the pdf to the local file system
PDF::loadHTML('<b>Hello World</b>')
    ->save("invoice.pdf", new League\Flysystem\Adapter\Local(__DIR__.'/path/to/root'));

// Save to AWS S3
$client = S3Client::factory([
    'key'    => '[your key]',
    'secret' => '[your secret]',
]);
PDF::loadHTML('<b>Hello World</b>')
    ->save("invoice.pdf", new League\Flysystem\Adapter\AwsS3($client, 'bucket-name', 'optional-prefix'));

// Save to FTP
$ftpConf = [
    'host' => 'ftp.example.com',
    'username' => 'username',
    'password' => 'password',

    /** optional config settings */
    'port' => 21,
    'root' => '/path/to/root',
    'passive' => true,
    'ssl' => true,
    'timeout' => 30,
];
PDF::loadHTML('<b>Hello World</b>')
    ->save("invoice.pdf", new League\Flysystem\Adapter\Ftp($ftpConf));

// Save to the multiple locations and stream it
return PDF::loadHTML('<b>Hello World</b>')
        ->save("invoice.pdf", new League\Flysystem\Adapter\Ftp($ftpConf))
        ->save("invoice.pdf", new League\Flysystem\Adapter\AwsS3($client, 'bucket-name', 'optional-prefix'))
        ->save("invoice.pdf", new League\Flysystem\Adapter\Local(__DIR__.'/path/to/root'))
        ->download();

请参阅 League\Flysystem 的文档中的所有可用适配器

文档

您可以在完整的 文档 文件中查看所有可用方法

贡献

欢迎贡献!