PDF oluşturma, Laravel uygulamalarında sık karşılaşılan bir gereksinimdir. Faturalardan raporlara, sertifikalara, sipariş özetlerine ve kullanıcı belgelerine kadar PDF’ler, indirilmesi, paylaşılması ve saklanması kolay olduğu için yaygın olarak kullanılmaktadır.
Laravel, PDF dosyası oluşturmak için yerleşik bir destek sunmamaktadır. Bunu çözmek için geliştiriciler, HTML veya Blade görünümlerini PDF belgelerine dönüştüren üçüncü taraf Laravel paketlerine başvurur. Mevcut seçenekler arasında Spatie Laravel PDF ve Barryvdh Laravel DomPDF en popüler ve güvenilir tercihlerdir.
Her iki paket aynı amaca hizmet etmesine rağmen, içsel olarak çok farklı yaklaşımlar izlemektedir. Nasıl çalıştıklarını anlamak, geliştiricilerin tasarım karmaşıklığı, barındırma ortamı ve proje gereksinimlerine göre doğru çözümü seçmelerine yardımcı olur.
Spatie Laravel PDF – Tarayıcı Hassasiyeti ile Modern PDF Oluşturma
Spatie Laravel PDF – Tarayıcı Hassasiyeti ile Modern PDF Oluşturma
Spatie Laravel PDF, Spatie ekibi tarafından geliştirilen modern bir Laravel paketidir. Bu paket, Blade görünümlerini bir başsız Chromium tarayıcısında Browsershot kütüphanesini kullanarak PDF olarak oluşturur.
Gerçek bir tarayıcı motoruna dayandığı için, işlenen PDF, sayfanın bir web tarayıcısında nasıl göründüğüne çok yakın bir görüntü sunar. Bu, modern ön yüz teknolojileri kullanan ve yüksek tasarım hassasiyeti gerektiren uygulamalar için mükemmel bir seçimdir.
Spatie Laravel PDF’nin Temel Özellikleri:
Spatie Laravel PDF’nin Temel Özellikleri:
Tam modern CSS desteği (Tailwind CSS, Flexbox ve Grid dahil)
Yüksek kaliteli, piksel mükemmel PDF işleme
Doğrudan Blade görünüm entegrasyonu
Tasarım doğruluğu için tarayıcı tabanlı işleme
Karmaşık ve markalı belge tasarımları için uygundur
Kurulumu oldukça basittir:
composer require spatie/laravel-pdf
Paket, tarayıcı tabanlı işlemeye bağımlı olduğundan, sunucuda Node.js ve Chromium (veya Puppeteer) bulunmalıdır. Bu bağımlılıklar genellikle VPS, Docker tabanlı kurulumlar ve modern barındırma platformlarında desteklenir.
Temel bir kullanım örneği aşağıdaki gibidir:
use Spatie\LaravelPdf\Facades\Pdf;
return Pdf::view('pdfs.invoice', ['invoice' => $invoice])
->format()
->download();
Temel indirmelerin ötesinde, paket geliştiricilerin PDF’leri depolamayı, tarayıcıda akış halinde görüntülemeyi, kenar boşlukları ve yönlendirme ayarlamayı, üst ve alt bilgiler eklemeyi ve işlemler sırasında JavaScript çalıştırmayı sağlar.
Spatie Laravel PDF, görsel kalite, marka tutarlılığı ve modern UI desteğinin önemli olduğu projeler için en uygun seçenektir.
Laravel DomPDF – Basit ve Hafif PDF Oluşturma
Laravel DomPDF – Basit ve Hafif PDF Oluşturma
Laravel DomPDF, DomPDF kütüphanesi çevresinde uzun süredir var olan bir sarmalayıcıdır ve sadeliği ve güvenilirliği nedeniyle Laravel projelerinde yaygın olarak kullanılmaktadır. Paket tamamen PHP ile yazılmıştır ve harici araçlar veya tarayıcı motorları gerektirmez.
Bu paket, HTML veya Blade çıktısını çözümleyerek doğrudan PDF’ye dönüştürür. Tarayıcı kullanılmadığından, kurulum minimalisttir ve özellikle basit belgeler için performansı öngörülebilirdir.
Laravel DomPDF’nin Temel Özellikleri:
Basit ve hızlı kurulum
Node.js veya Chromium bağımlılığı yok
Hafif ve yalnızca PHP çözümü
Temel düzenler ve metin ağırlıklı belgeler için iyi çalışır
Stabil ve Laravel projelerinde yaygın olarak benimsenmiştir
composer require barryvdh/laravel-dompdf
Ek sistem düzeyi bağımlılıklara ihtiyaç duyulmadığından, paylaşımlı barındırma ortamları ve kısıtlı sunucular için uygun hale gelir.
Temel bir kullanım örneği aşağıdaki gibidir:
use Barryvdh\DomPDF\Facade\Pdf as DomPdf;
$pdf = DomPdf::loadView(, [=> ]);
return ->download();
Laravel DomPDF, PDF’leri tarayıcıda akış halinde görüntüleme, depolama alanına kaydetme ve kağıt boyutu ve yönlendirmeyi ayarlama gibi özellikleri destekler. Blade şablonlarıyla sorunsuz bir şekilde entegre olur ve başlangıç seviyesindeki geliştiriciler için öğrenmesi kolaydır.
Ancak sınırlı CSS standartlarını desteklediği için, karmaşık düzenler ve modern ön yüz çerçeveleri beklendiği gibi işlenmeyebilir. Flexbox, Grid gibi gelişmiş stil özellikleri tam olarak desteklenmemektedir.
Sonuç
Sonuç
Hem Spatie Laravel PDF hem de Laravel DomPDF, PDF dosyaları oluşturmak için mükemmel Laravel paketleridir, ancak farklı kullanım senaryoları için tasarlanmıştır.
Spatie Laravel PDF, doğru düzenleme, ileri düzey CSS desteği ve profesyonel belge tasarımı gerektiren modern uygulamalar için idealdir. PDF’lerin web sitesinin görünümüne yakın bir şekilde oluşturulması gereken projeler için en uygunudur.
Laravel DomPDF, basit düzenler veya sınırlı barındırma ortamları ile çalışırken, özellikle de basit PDF oluşturma için daha iyi bir seçimdir. Kullanım kolaylığı ve bağımlılık gerektirmeyen kurulumu, birçok uygulama için güvenilir bir seçenek haline getirir.
Kaynak: Orijinal Makale


