Laravel içinde HTML’den PDF belgeleri kolaylıkla oluşturmak için bu PDF sarmalayıcısını kullanın.
İçindekiler
Kurulum Rehberi
Bu paketi composer.json dosyanıza ekleyin veya aşağıdaki komutu çalıştırarak yükleyin:
composer require zanysoft/laravel-pdfLaravel’i kullanmaya başlamak için config/app.php dosyasına Service Provider ve Facade ekleyin:
'providers' => [
// ...
ZanySoft\LaravelPDF\PdfServiceProvider::class
],'aliases' => [
// ...
'PDF' => ZanySoft\LaravelPDF\Facades\PDF::class
], Konfigürasyon
Varsayılan yapılandırma ayarları config/pdf.php dosyasında bulunur. Bu dosyayı kendi yapılandırma dizininize kopyalayarak değerleri değiştirebilirsiniz. Yapılandırmayı yayınlamak için şu komutu kullanın:
php artisan vendor:publish --provider="ZanySoft\LaravelPDF\PdfServiceProvider" Temel Kullanım
Laravel PDF’i kullanmak için kontrolörlerinizden birine aşağıdaki gibi bir şey ekleyin. Verileri /resources/views içine geçirebilirsiniz:
use ZanySoft\LaravelPDF\Facades\PDF;
$data = ['foo' => 'bar'];
$pdf = PDF::make('document.pdf');
$pdf->loadView('pdf.document', $data);
return $pdf->stream();veya
use ZanySoft\LaravelPDF\PDF;
$pdf = new PDF();
$pdf->loadView('pdf.document', $data);
return $pdf->stream('document.pdf');HTML içeriğinden oluşturmak için:
$content = "Hello this is first pdf file.";
$pdf->loadHTML($content);
return $pdf->stream('document.pdf');Dosyalardan oluşturmak için:
$file = "file.txt";
$pdf->loadFile($file);
return $pdf->stream('document.pdf');PDF dosyasını indirmek için:
return $pdf->embed('document.pdf');PDF’yi sunucuya kaydetmek için:
return $pdf->save('with-complete-path/document.pdf');PDF’yi e-postaya eklemek için:
return $pdf->embed('document.pdf'); Başlıklar ve Alt Bilgiler
Her sayfada görünen başlıklar ve alt bilgileri eklemek için, <htmlpageheader> tag’ine şu şekilde ekleyin:
<htmlpageheader name="page-header">
Your Header Content
</htmlpageheader>
<htmlpagefooter name="page-footer">
Your Footer Content
</htmlpagefooter>CSS’de bunları adlarıyla tanımlamanız yeterlidir:
@page {
header: page-header;
footer: page-footer;
}Başlıklar ve alt bilgilerin içinde {PAGENO} ile sayfa numarasını gösterebilirsiniz.
Dahil Edilen Fontlar
Varsayılan olarak tüm fontları kullanabilirsiniz. Daha fazla bilgi için burayagöz atın.
Özel Fontlar
Oluşturulan PDF’lerde kendi fontlarınızı kullanabilirsiniz. TTF dosyaları bir klasörde bulunmalıdır, örneğin /resources/fonts/. Bu klasörü yapılandırma dosyanıza ekleyin (/config/pdf.php):
return [
'custom_font_path' => base_path('/resources/fonts/'), // sonuna eğik çizgi eklemeyi unutmayın!
];Sonra:
$fontdata = array(
'examplefont' => [
'R' => 'ExampleFont-Regular.ttf', // normal font
'B' => 'ExampleFont-Bold.ttf', // isteğe bağlı: kalın font
'I' => 'ExampleFont-Italic.ttf', // isteğe bağlı: italik font
'BI' => 'ExampleFont-Bold-Italic.ttf', // isteğe bağlı: kalın-italik font
]
// ... istediklerinizi ekleyin.
);
$pdf->addCustomFont($fontdata, true); // Eğer font dosyanız unicode ve "OpenType Layout" ise true ayarlayın. Varsayılan değeri false'dur.Artık CSS’de fontu kullanabilirsiniz:
body {
font-family: 'examplefont', sans-serif;
} Koruma Ayarlama
Koruma ayarlamak için SetProtection() metodunu çağırın ve bir dizi ile izinleri, bir kullanıcı parolası ve bir sahip parolası geçin.
Parolalar isteğe bağlıdır.
İzinlerden bazıları: 'copy', 'print', 'modify', 'annot-forms', 'fill-forms', 'extract', 'assemble', 'print-highres':
use PDF;
function generate_pdf() {
$data = ['foo' => 'bar'];
$pdf = PDF::make();
$pdf->SetProtection(['copy', 'print'], 'user_pass', 'owner_pass');
$pdf->loadView('pdf.document', $data);
return $pdf->stream('document.pdf');
}Daha fazla bilgi için SetProtection()‘ı buradan bulabilirsiniz.
Dokümantasyon
Daha fazla seçenek ve ayarlar için bu bağlantıya göz atın: https://mpdf.github.io/
Kaynak: Orijinal Makale


