pdf-api-io / pdfapi-laravel
这是我的包 pdfapi-laravel
v1.0.0
2024-07-21 11:56 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.0
- illuminate/contracts: ^10.0||^11.0
- illuminate/http: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
README
此包为 Laravel 提供了 PDF-API.io 的集成。PDF-API.io 是一个允许您在拖放编辑器中设计 PDF 模板并使用简单 API 渲染它们的服务的平台。
安装
您可以通过 composer 安装此包
composer require pdf-api-io/pdfapi-laravel
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="pdfapi-laravel-config"
这是已发布配置文件的内容
return [ 'api_key' => env('PDF_API_KEY'), ];
如果您还没有访问令牌,请创建一个。您可以通过访问 PDF-API.io API 令牌页面 来完成此操作。将以下行添加到您的 .env
文件中
PDF_API_KEY=your-api-key
使用方法
您可以在 PDF-API.io 网站上 阅读完整的文档。
列出可用模板
要列出所有可用模板,您可以使用 PdfApi
门面上的 getTemplates
方法。
use Pdfapiio\PdfapiLaravel\Facades\PdfApi; $templates = PdfApi::getTemplates();
渲染 PDF
要渲染 PDF,您可以使用 render
方法。
use Pdfapiio\PdfapiLaravel\Facades\PdfApi; $pdf = PdfApi::render('your-template-id', [ 'some-variable' => 'some-value', ]); echo $pdf; // Output: "%PDF-1.7 %���� 6 0 obj << /Type /Page /Parent 1 0 R..."
默认情况下,render
方法将返回 PDF 内容作为字符串。如果您想要获取 JSON 响应,可以使用 asJson
方法。当请求 JSON 响应时,PDF 的内容将被 base64 编码。
use Pdfapiio\PdfapiLaravel\Facades\PdfApi; $pdf = PdfApi::asJson()->render('your-template-id', [ 'some-variable' => 'some-value', ]); $content = base64_decode($pdf['data']);
您可以通过调用 output
方法来控制输出
use Pdfapiio\PdfapiLaravel\Facades\PdfApi; PdfApi::output(ApiOutputType::PDF)->render('your-template', []); // Returns the PDF as a string PdfApi::output(ApiOutputType::URL)->render('your-template', []); // Returns the URL to the rendered PDF
合并模板
如果您有多个模板并希望将它们合并为单个 PDF,您可以使用 merge
方法。
use Pdfapiio\PdfapiLaravel\Facades\PdfApi; $pdf = PdfApi::merge([ [ 'id' => 'your-template-id', 'data' => [ 'some-variable' => ' ], ], [ 'id' => 'your-template-id', 'data' => [ 'some-variable' => ' ], ], ]);
您也可以在 merge
方法中使用 asJson
和 output
方法。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅 我们的安全策略。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。