This is an example of a PDF document generated using Laravel and DomPDF.
PDF 문서 생성은 특히 송장, 영수증, 인증서, 티켓 및 다양한 보고서 생성을 위한 웹 애플리케이션의 일반적인 요구 사항입니다. 이 포괄적인 튜토리얼에서는 Laravel과 DomPDF를 사용하여 이미지와 CSS가 포함된 PDF 문서를 생성하는 방법을 자세히 살펴보겠습니다. 구성 옵션, 디자인 고려 사항, 출력 크기, 성능 및 데이터베이스 쿼리를 다루겠습니다. 또한 페이지 나누기 처리, base64를 사용한 이미지 로드 등에 대한 팁과 요령에 대해 논의할 것입니다.
시작하기 전에 다음이 설치되어 있는지 확인하세요.
DomPDF는 HTML 콘텐츠에서 PDF 문서를 생성할 수 있는 인기 있는 PHP 라이브러리입니다. CSS 스타일, 이미지 및 다양한 구성 옵션을 지원합니다. DomPDF를 Laravel과 통합하면 블레이드 템플릿과 Laravel의 강력한 기능을 사용하여 정교한 PDF 문서를 쉽게 만들 수 있습니다.
다른 인기 있는 PDF 라이브러리로는 TCPDF, FPDF 및 Snappy가 있습니다.
그러나 DomPDF는 통합이 쉽고 강력한 기능 세트로 인해 널리 사용됩니다.
이 튜토리얼에서는 Laravel 프로젝트 설정, DomPDF 구성, PDF 생성을 처리할 컨트롤러 생성, PDF 컨텐츠용 블레이드 템플릿 설계, 경로 추가 및 성능 최적화 과정을 안내합니다. 또한 고급 구성 옵션에 대해 논의하고 고품질 PDF 문서를 생성하기 위한 팁과 요령을 제공합니다.
이 튜토리얼에서는 귀하가 Laravel과 PHP에 대한 기본 지식을 가지고 있다고 가정합니다. Laravel을 처음 사용하는 경우 공식 Laravel 문서를 검토하여 프레임워크에 익숙해지는 것을 고려해 보세요. 그렇지 않으면 Laravel Bootcamp를 따라 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"
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'); } }
PDF 콘텐츠에 대한 블레이드 템플릿을 만듭니다.
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.
routes/web.php에서 PDF 생성을 처리할 경로를 추가합니다:
use App\Http\Controllers\PDFController; Route::get('generate-pdf', [PDFController::class, 'generatePDF']);
이미지를 base64로 인코딩된 문자열로 포함하거나 URL을 사용하여 PDF에 추가할 수 있습니다.
base64 인코딩을 사용하여 이미지를 블레이드 템플릿에 직접 삽입할 수 있습니다. 예를 들어, 공개/이미지의 이미지를 삽입하려면 다음과 같이 할 수 있습니다:
또는 URL에서 직접:
대규모 데이터 세트(예: 레코드 1,000개)를 처리할 때 페이지 매김이나 청크를 사용하여 메모리 사용량을 관리하세요.
$data = DB::table('users')->paginate(50); $pdf = PDF::loadView('myPDF', ['data' => $data]);
출력 크기를 줄이려면 무거운 이미지의 사용을 최소화하고 가능하면 벡터 그래픽을 선택하세요. 또한 효율적인 CSS를 사용하세요.
페이지 나누기에 맞게 콘텐츠가 잘 구성되어 있는지 확인하세요. CSS를 사용하여 페이지 나누기 처리:
.page-break { page-break-after: always; }
그리고 블레이드 템플릿에서:
고급 구성에 대해서는 DomPDF 문서를 참조하세요. 여백부터 글꼴 로드 방식까지 거의 모든 것을 사용자 정의할 수 있습니다.
사용자 정의 글꼴을 사용하려면 먼저 해당 글꼴을 프로젝트에 추가하고 해당 글꼴을 사용하도록 DomPDF를 구성하세요.
'custom_font_dir' => base_path('resources/fonts/'), 'custom_font_data' => [ 'custom-font' => [ 'R' => 'CustomFont-Regular.ttf', 'B' => 'CustomFont-Bold.ttf', ] ],
블레이드 템플릿에서:
이 단계별 가이드를 따르면 이미지와 CSS 스타일이 포함된 Laravel 및 DomPDF를 사용하여 정교한 PDF 문서를 생성할 수 있습니다. 이 튜토리얼에서는 필수 구성 옵션, 설계 고려 사항, 성능 최적화를 다루었습니다. 이 기반을 확장하여 Laravel 애플리케이션을 위한 강력한 문서 생성 시스템을 구축할 수 있습니다.
이 튜토리얼은 Laravel을 사용한 PDF 생성 시리즈의 일부입니다. 다양한 문서 템플릿(송장, 영수증, 인증서, 티켓 등)이 포함된 전체 저장소를 여기에서 찾을 수 있습니다. 자유롭게 기여하고 컬렉션을 확장하세요.
즐거운 코딩하세요!
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3