JavaScript kullanarak web tarayıcısından doğrudan PDF yazdırmak, tarayıcı tutarsızlıkları ve güvenlik hususları nedeniyle kolay değildir. Bununla birlikte, tarayıcının yazdırma iletişim kutusunu etkin bir şekilde tetikleyen birkaç teknik vardır. Bu makale, iki popüler yöntemi ele almaktadır: iframe’den yararlanma ve Print.js kütüphanesini kullanma.
İçindekiler
Iframe Etiketiyle PDF Yazdırma
Bu yaklaşım basittir ve harici kütüphane gerektirmez. PDF’yi bir iframe içine gömer ve ardından iframe bağlamından yazdırmayı tetikler.
Uygulama:
- PDF’yi Gömme:
<iframe>
etiketini kullanın,src
özniteliğini PDF’nin URL’sine ayarlayın ve CSS kullanarak gizleyin: - Yazdırmayı Tetikleme: JavaScript kullanarak iframe’in içerik penceresine erişin ve
print()
yöntemini çağırın: - Yazdırma Düğmesi Ekleme:
printPdf()
‘yi çağıran bir düğme oluşturun:
<iframe id="pdf-iframe" src="your-pdf-file.pdf" style="display: none;"></iframe>
function printPdf() {
const iframe = document.getElementById('pdf-iframe');
if (iframe.contentWindow) { // Hataları önlemek için contentWindow'un var olup olmadığını kontrol edin
iframe.contentWindow.focus(); // Yazdırmadan önce iframe'in odaklandığından emin olun
iframe.contentWindow.print();
} else {
console.error("Hata: iframe içerik penceresine erişilemedi.");
}
}
<button onclick="printPdf()">PDF Yazdır</button>
Sınırlamalar:
- Tarayıcı Uyumluluğu: Güvenilirlik tarayıcılarda değişir. Bazıları kullanıcı etkileşimi veya belirli izinler gerektirebilir.
- Sınırlı Kontrol: Sayfa aralıkları veya yazdırma ayarları üzerinde minimum kontrol.
- Güvenlik: PDF’leri doğrudan gömmek, PDF’nin kaynağına bağlı olarak güvenlik riskleri oluşturabilir.
Print.js Kütüphanesiyle PDF Yazdırma
Print.js, tarayıcı tutarsızlıklarını ele alan ve daha iyi kontrol sağlayan daha sağlam ve özellik açısından zengin bir çözüm sunar. Projenize kolayca entegre edilebilen hafif bir kütüphanedir.
Uygulama:
- Print.js’i Dahil Etme: CDN kullanarak Print.js kütüphanesini HTML’nize ekleyin:
- Yazdırmayı Tetikleme: Print.js’in
printJS()
fonksiyonunu kullanın: - Yazdırma Düğmesi Ekleme (öncekiyle aynı):
<script src="https://cdnjs.cloudflare.com/ajax/libs/print.js/1.6.2/print.min.js"></script>
function printPdf() {
printJS({
printable: 'your-pdf-file.pdf',
type: 'pdf',
});
}
<button onclick="printPdf()">PDF Yazdır</button>
Avantajlar:
- Geliştirilmiş Tarayıcı Uyumluluğu: Tarayıcılar arası farklılıkları etkili bir şekilde ele alır.
- Daha Fazla Kontrol: Iframe yöntemine göre bazı özelleştirme seçenekleri sunar.
- Kullanımı Daha Kolay: Daha basit ve sezgisel bir API.
Doğru Yöntemi Seçme
Iframe yöntemi daha basittir ancak daha az güvenilirdir ve daha az kontrol sağlar. Print.js, daha sağlam, özellik açısından zengin ve kullanımı kolay bir çözüm sunar, ancak harici bir kütüphane eklemeyi gerektirir. En iyi seçim, projenizin ihtiyaçlarına, uygulama kolaylığı, gerekli kontrol ve tarayıcı uyumluluğu gibi faktörlere öncelik vererek bağlıdır.