라라벨 : 데이터를 PDF로 내보내기 (DOMPDF)

4659 단어 tutoriallaravelphp
비디오 링크:
https://youtu.be/8eMBg6pBrVs

안녕하세요 동료 개발자!



잘 지내고 있나요?

laravel에서는 dompdf라는 유용한 패키지를 사용하여 데이터를 pdf 형식으로 쉽게 내보낼 수 있습니다. 이 튜토리얼에서는 사용자 데이터를 데이터베이스에서 pdf 파일로 내보내는 예를 들었습니다.

패키지 링크:
https://github.com/barryvdh/laravel-dompdf

글쎄, 우리는 이것을 단계별로 다룰 것이므로 위에서 제공한 이 기사 또는 비디오를 따르겠습니다.

단계 # 01:
먼저 dompdf 패키지를 설치하고 구성합니다.

composer require barryvdh/laravel-dompdf



php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"


02단계:
pdf를 보려면 컨트롤러에 이 기능을 추가하십시오.

public function viewPDF()
    {
        $users = User::all();

        $pdf = PDF::loadView('pdf.usersdetails', array('users' =>  $users))
        ->setPaper('a4', 'portrait');

        return $pdf->stream();

    }


컨트롤러에 이 기능을 추가하여 PDF를 다운로드하십시오...

public function downloadPDF()
    {
        $users = User::all();

        $pdf = PDF::loadView('pdf.usersdetails', array('users' =>  $users))
        ->setPaper('a4', 'portrait');

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


이 기능의 경로를 만드십시오.

Route::post('users/view-pdf', [HomeController::class, 'viewPDF'])->name('view-pdf');
Route::post('users/download-pdf', [HomeController::class, 'downloadPDF'])->name('download-pdf');


어떤 html 템플릿을 사용해도 데이터를 내보낼 수 있지만 제 동영상에서 사용한 것을 여러분과 공유하겠습니다.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>User Details</title>

    <style>
        table {
            width: 95%;
            border-collapse: collapse;
            margin: 50px auto;
        }

        /* Zebra striping */
        tr:nth-of-type(odd) {
            background: #eee;
        }

        th {
            background: #3498db;
            color: white;
            font-weight: bold;
        }

        td,
        th {
            padding: 10px;
            border: 1px solid #ccc;
            text-align: left;
            font-size: 18px;
        }


    </style>

</head>

<body>

    <div style="width: 95%; margin: 0 auto;">
        <div style="width: 10%; float:left; margin-right: 20px;">
            <img src="{{ public_path('assets/images/logo.png') }}" width="100%"  alt="">
        </div>
        <div style="width: 50%; float: left;">
            <h1>All User Details</h1>
        </div>
    </div>

    <table style="position: relative; top: 50px;">
        <thead>
            <tr>
                <th>First Name</th>
                <th>Last Name</th>
                <th>Email</th>
                <th>Date Of Joining</th>
            </tr>
        </thead>
        <tbody>
            @foreach ($users as $user)
                <tr>
                    <td data-column="First Name">{{ $user->first_name }}</td>
                    <td data-column="Last Name">{{ $user->last_name }}</td>
                    <td data-column="Email" style="color: dodgerblue;">
                        {{ $user->email }}
                    </td>
                    <td data-column="Date">
                        {{ date('F j, Y', strtotime($user->create_at)) }}
                    </td>
                </tr>
            @endforeach
        </tbody>
    </table>

</body>

</html>


질문이 있거나 문제가 있는 경우 아래에 댓글을 고정하거나 비디오를 시청하세요!

https://youtu.be/8eMBg6pBrVs

감사해요!!!

좋은 웹페이지 즐겨찾기