当前位置:首页 > 文章列表 > 文章 > php教程 > 在 Laravel 中生成 PDF 文档

在 Laravel 中生成 PDF 文档

来源:dev.to 2024-07-15 10:19:01 0浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习文章相关编程知识。下面本篇文章就来带大家聊聊《在 Laravel 中生成 PDF 文档》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

在 Laravel 中生成 PDF 文档

laravel 和 dompdf:使用图像和 css 生成 pdf 文档的分步指南

创建 pdf 文档是 web 应用程序中的常见需求,尤其是生成发票、收据、证书、票据和各种报告。在这个综合教程中,我们将深入研究如何使用 laravel 和 dompdf 生成带有图像和 css 的 pdf 文档。我们将介绍配置选项、设计注意事项、输出大小、性能和数据库查询。此外,我们还将讨论处理分页符、使用 base64 加载图像等的提示和技巧。

先决条件

在我们开始之前,请确保您已安装以下软件:

  • php >=8.2
  • 作曲家2+
  • laravel 10+

介绍

dompdf 是一个流行的 php 库,允许您从 html 内容生成 pdf 文档。它支持 css 样式、图像和各种配置选项。通过将 dompdf 与 laravel 集成,您可以使用 blade 模板和 laravel 的强大功能轻松创建复杂的 pdf 文档。

其他流行的 pdf 库包括 tcpdf、fpdf 和 snappy。

然而,dompdf 由于其易于集成和强大的功能集而被广泛使用。

在本教程中,我们将逐步介绍设置 laravel 项目、配置 dompdf、创建处理 pdf 生成的控制器、为 pdf 内容设计 blade 模板、添加路由和优化性能的过程。我们还将讨论高级配置选项,并提供生成高质量 pdf 文档的提示和技巧。

假设

本教程假设您对 laravel 和 php 有基本的了解。如果您是 laravel 新手,请考虑阅读官方 laravel 文档来熟悉该框架。否则,您可以按照 laravel bootcamp 开始使用 laravel。

第 1 步:设置 laravel 项目

首先,如果你还没有 laravel 项目,请创建一个新的 laravel 项目,或者使用现有的项目,当然,如果你已经有 laravel 项目,你可以跳过这一步。

composer create-project --prefer-dist laravel/laravel pdf-tutorial
cd pdf-tutorial

接下来,安装dompdf:

composer require barryvdh/laravel-dompdf

发布配置文件:

php artisan vendor:publish --provider="barryvdh\dompdf\serviceprovider"

第2步:配置dompdf

打开config/dompdf.php 文件。配置文件包含用于自定义 pdf 输出的各种选项。在这里您可以设置各种选项,包括默认纸张尺寸、方向、字体等。

  • 纸张尺寸: 您可以设置默认纸张尺寸。
  'default_paper_size' => 'a4',
  • 方向: 设置默认方向(纵向或横向)。
  'orientation' => 'portrait',
  • 字体: 您可以指定默认字体并添加自定义字体。
  'default_font' => 'serif',

第三步:创建控制器

创建一个控制器来处理 pdf 生成:

php artisan make:controller pdfcontroller

在 app/http/controllers/pdfcontroller.php 中,添加以下代码:

 'laravel pdf example',
            'date' => date('m/d/y'),
        ];

        $pdf = pdf::loadview('mypdf', $data);

        return $pdf->download('document.pdf');
    }
}

第 4 步:创建刀片模板

为 pdf 内容创建 blade 模板:

touch resources/views/mypdf.blade.php

在 mypdf.blade.php 中添加以下内容:




    laravel pdf example
    


    

{{ $title }}

date: {{ $date }}

this is an example of a pdf document generated using laravel and dompdf.

第5步:添加路由

在routes/web.php中添加处理pdf生成的路由:

use app\http\controllers\pdfcontroller;

route::get('generate-pdf', [pdfcontroller::class, 'generatepdf']);

第 6 步:添加图像

您可以通过将图像嵌入为 base64 编码字符串或使用 url 来将图像添加到 pdf。

图像可以使用base64编码直接嵌入到blade模板中。例如,要嵌入来自公共/图像的图像,您可以这样做:

logo

或直接从网址:

logo

第 7 步:优化性能

数据库查询

处理大型数据集(例如 1,000 多条记录)时,使用分页或分块来管理内存使用:

$data = db::table('users')->paginate(50);

$pdf = pdf::loadview('mypdf', ['data' => $data]);

输出尺寸

为了减少输出大小,请尽量减少使用大量图像,并尽可能选择矢量图形。另外,使用高效的 css。

分页符

确保内容结构良好,适合分页。使用 css 处理分页符:

.page-break {
    page-break-after: always;
}

在你的 blade 模板中:

步骤8:高级配置

更高级的配置请参考dompdf文档。您可以自定义几乎所有内容,从边距到字体加载方式。

使用自定义字体

要使用自定义字体,首先将它们添加到您的项目中并配置 dompdf 以使用它们:

'custom_font_dir' => base_path('resources/fonts/'),
'custom_font_data' => [
    'custom-font' => [
        'r' => 'customfont-regular.ttf',
        'b' => 'customfont-bold.ttf',
    ]
],

在您的 blade 模板中:


结论

按照此分步指南,您可以使用 laravel 和 dompdf 生成复杂的 pdf 文档,并包含图像和 css 样式。本教程涵盖了基本的配置选项、设计注意事项、性能优化。您可以扩展此基础,为您的 laravel 应用程序构建强大的文档生成系统。

潜在系列和存储库

本教程是使用 laravel 生成 pdf 系列的一部分。可以在此处找到包含各种文档模板(发票、收据、证书、票据等)的完整存储库。请随意贡献并扩大收藏。

快乐编码!

今天关于《在 Laravel 中生成 PDF 文档》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

版本声明
本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
PHP:不,不可能PHP:不,不可能
上一篇
PHP:不,不可能
php框架在移动开发中有哪些最佳实践?
下一篇
php框架在移动开发中有哪些最佳实践?
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 笔灵AI生成答辩PPT:高效制作学术与职场PPT的利器
    笔灵AI生成答辩PPT
    探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
    16次使用
  • 知网AIGC检测服务系统:精准识别学术文本中的AI生成内容
    知网AIGC检测服务系统
    知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
    24次使用
  • AIGC检测服务:AIbiye助力确保论文原创性
    AIGC检测-Aibiye
    AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
    30次使用
  • 易笔AI论文平台:快速生成高质量学术论文的利器
    易笔AI论文
    易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
    42次使用
  • 笔启AI论文写作平台:多类型论文生成与多语言支持
    笔启AI论文写作平台
    笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
    35次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码