2022 için PDF Görüntüleyici Araçları
Günümüz dijital dünyasında, web sayfalarını veya HTML belgelerini PDF dosyalarına dönüştürme yeteneğine sahip olmak çok önemlidir. Bu, raporlar oluşturmak, faturalar hazırlamak veya sadece bilgiyi daha sunulabilir bir formatta paylaşmak için faydalı olabilir. Bu blog yazısında, Google tarafından geliştirilen açık kaynaklı bir kütüphane olan Node.js ve Puppeteer kullanarak HTML sayfalarını PDF'ye nasıl dönüştüreceğimizi inceleyeceğiz.
Puppeteer'e Giriş
Puppeteer, geliştiricilerin başsız tarayıcıları, esas olarak Google Chrome veya Chromium'u kontrol etmelerine ve web kazıma, ekran görüntüsü alma ve PDF'ler oluşturma gibi çeşitli eylemleri gerçekleştirmelerine olanak tanıyan güçlü bir Node.js kütüphanesidir. Puppeteer, tarayıcı ile etkileşim kurmak için kapsamlı bir API sunar ve HTML'yi PDF'ye dönüştürmek için mükemmel bir seçimdir.
Neden Puppeteer?
- Kullanım kolaylığı: Puppeteer, başsız tarayıcılarla çalışma karmaşıklıklarını gizleyen basit ve kullanımı kolay bir API sunar.
- Güçlü: Puppeteer, web sayfalarını manipüle etmek ve tarayıcı öğeleriyle etkileşim kurmak için geniş yetenekler sunar.
- Ölçeklenebilir: Puppeteer ile, birden fazla tarayıcı instance'ını paralel olarak çalıştırarak, PDF oluşturma sürecinizi kolayca ölçeklendirebilirsiniz.
Node.js Projenizi Kurmak
Başlamadan önce, yeni bir Node.js projesi kurmanız gerekiyor. Başlamanız için bu adımları izleyin:
- Node.js'i henüz yüklemediyseniz indirip yükleyin (Node.js web sitesinden indirilebilir).
- Projeniz için yeni bir klasör oluşturun ve Visual Studio Code veya herhangi bir özel kod editöründe açın.
-
Projeniz için yeni bir
package.jsondosyası oluşturmak içinnpm initkomutunu çalıştırın. İstemleri takip edin ve gerekli bilgileri doldurun.
-
npm install puppeteerkomutunu çalıştırarak Puppeteer'i kurun.
Artık projemizi kurduğumuza göre, koda dalabiliriz.
HTML Şablonunu Yükleme ve PDF Dosyasına Dönüştürme
Puppeteer kullanarak HTML şablonlarını PDF dosyasına dönüştürmek için şu adımları izleyin:
"HTML to PDF.js" isimli bir dosya oluşturun.
Puppeteer ve fs'yi İçe Aktarma
const puppeteer = require('puppeteer');
const fs = require('fs');
Kod, Chrome ve Chromium gibi headless tarayıcıları kontrol etmek için çok yönlü bir araç olan puppeteer ve dosya sistemi işlemlerini yönetmek için yerleşik bir Node.js modülü olan fs'yu içe aktararak başlar. Puppeteer, HTML işlemi, ekran görüntüsü alma ve PDF dosyaları oluşturma gibi web tabanlı görevleri otomatikleştirmenizi sağlar.
exportWebsiteAsPdf Fonksiyonunu Tanımlama
async function exportWebsiteAsPdf(html, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: true // Launches the browser in headless mode
});
// Create a new page
const page = await browser.newPage();
// Set the HTML content for the page, waiting for DOM content to load
await page.setContent(html, { waitUntil: 'domcontentloaded' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
exportWebsiteAsPdf fonksiyonu, kod parçacığımızın merkezidir. Bu asenkron fonksiyon, bir html dizgisini ve bir outputPath'yi giriş parametreleri olarak kabul eder ve bir PDF dosyası döndürür. Fonksiyon aşağıdaki adımları gerçekleştirir:
- Puppeteer kullanarak yeni bir başsız tarayıcı instansı başlatır.
- Yeni bir tarayıcı sayfası oluşturur.
- Sağlanan
htmldizgisini, sayfa içeriği olarak ayarlar ve DOM içeriğinin yüklenmesini bekler. - Ekran medya türünü benzeterek, ekranlar için kullanılan CSS'nin yerine yazdırma için özel stillerin uygulanmasını sağlar.
- Yüklenen HTML içeriğinden bir PDF dosyası üretir, marjlar, arka plan baskısı ve format (A4) belirtilir.
- Tarayıcı örneğini kapatır.
- Oluşturulan PDF dosyasını döndürür.
exportWebsiteAsPdf Fonksiyonunu Kullanma
// Usage example
// Get HTML content from HTML file
const html = fs.readFileSync('test.html', 'utf-8');
// Convert the HTML content into a PDF and save it to the specified path
exportWebsiteAsPdf(html, 'result.pdf').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
Kodun son bölümü exportWebsiteAsPdf fonksiyonunun nasıl kullanılacağını göstermektedir. Aşağıdaki adımları gerçekleştiriyoruz:
fsmodülününreadFileSyncmetodunu kullanarak bir HTML dosyasından HTML içeriğini okuyun.- Yüklenen
htmldizgisi ve istenilenoutputPathileexportWebsiteAsPdffonksiyonunu çağırın. - Başarılı bir PDF oluşturma işlemini yönetmek ve konsola bir başarı mesajı kaydetmek için bir
.thenbloğu kullanın. - HTML'den PDF'e dönüştürme işlemi sırasında oluşabilecek hataları yönetmek ve konsola bir hata mesajı kaydetmek için bir
.catchbloğu kullanın.
Bu kod parçası, Node.js ve Puppeteer kullanarak bir HTML şablonunu PDF dosyasına dönüştürmenin kapsamlı bir örneğini sağlar. Bu çözümü uygulayarak, çeşitli uygulamalar ve kullanıcılar için yüksek kalitede PDF'ler üretilebilir.

URL'leri PDF Dosyalarına Dönüştürme
HTML şablonlarını dönüştürmenin yanı sıra, Puppeteer doğrudan URL'lerin PDF dosyalarına dönüştürülmesini de sağlar.
Puppeteer'ı İçeri Aktarma
const puppeteer = require('puppeteer');
Kod, Chrome ve Chromium gibi başlıksız tarayıcıları kontrol etmek için güçlü bir araç olan Puppeteer kütüphanesini içeri aktararak başlar. Puppeteer, HTML kodunuzu görüntülemek, ekran görüntüleri almak ve bizim durumumuzda PDF dosyası üretmek gibi çeşitli web tabanlı görevleri otomatikleştirmenizi sağlar.
exportWebsiteAsPdf Fonksiyonunu Tanımlama
async function exportWebsiteAsPdf(websiteUrl, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: true // Launches the browser in headless mode
});
// Create a new page
const page = await browser.newPage();
// Open the URL in the current page
await page.goto(websiteUrl, { waitUntil: 'networkidle0' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
exportWebsiteAsPdf fonksiyonu, kod parçacığımızın merkezidir. Bu asenkron fonksiyon, bir websiteUrl ve bir outputPath'yı giriş parametreleri olarak kabul eder ve bir PDF dosyası döndürür. Fonksiyon aşağıdaki adımları gerçekleştirir:
- Puppeteer kullanarak yeni bir başsız tarayıcı instansı başlatır.
- Yeni bir tarayıcı sayfası oluşturur.
- Sağlanan
websiteUrladresine gider ve ağıwaitUntilseçeneğinetworkidle0olarak ayarlandığında ağın boş duruma geçmesini bekler. - Ekran medya türünü benzeterek ekranlar için kullanılan CSS'nin yazdırma için özel stiller yerine uygulanmasını sağlar.
- Yüklenen web sayfasını belirtilen marjlar, arka plan baskısı ve format (A4) ile bir PDF dosyasına dönüştürür.
- Tarayıcı örneğini kapatır.
- Oluşturulan PDF dosyasını döndürür.
exportWebsiteAsPdf Fonksiyonunu Kullanma
// Usage example
// Convert the URL content into a PDF and save it to the specified path
exportWebsiteAsPdf('https://ironpdf.com/', 'result.pdf').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
Kodun son bölümü, exportWebsiteAsPdf fonksiyonunun nasıl kullanılacağını göstermektedir. Aşağıdaki adımları uyguluyoruz:
- İstenen
websiteUrlveoutputPathileexportWebsiteAsPdffonksiyonunu çağırın. - Başarılı bir PDF oluşturma işlemini yönetmek için bir
thenbloğu kullanın. Bu blokta, konsola bir başarı mesajı kaydediyoruz. - Web sitesinden PDF'e dönüştürme işlemi sırasında oluşabilecek hataları yönetmek için bir
catchbloğu kullanın. Bir hata oluşursa, konsola bir hata mesajı kaydediyoruz.
Bu kod parçasını projelerinize entegre ederek Node.js ve Puppeteer kullanarak URL'leri yüksek kaliteli PDF dosyalarına kolayca dönüştürebilirsiniz.

C# Geliştiricileri için En İyi HTML'den PDF'e Dönüştürme Kütüphanesi
IronPDF Keşfet, PDF dosyalarını oluşturmak, düzenlemek ve içerik çıkarmak için kullanılan popüler bir .NET kütüphanesidir. HTML, metin, görüntü ve mevcut PDF belgelerinden PDF oluşturmak için basit ve etkili bir çözüm sunar. IronPDF, .NET Core, .NET Framework ve .NET 5.0+ projelerini destekleyerek çeşitli uygulamalar için çok yönlü bir seçim haline gelir.
IronPDF'nin Ana Özellikleri
IronPDF ile HTML'den PDF'ye Dönüşüm: IronPDF, CSS dahil HTML içeriğini PDF dosyalarına dönüştürmenizi sağlar. Bu özellik, web sayfalarından veya HTML şablonlarından piksel mükemmelliğinde PDF belgeleri oluşturmanıza olanak tanır.
URL İşleme: IronPDF, bir sunucudan bir URL kullanarak web sayfaları alabilir ve bunları PDF dosyalarına dönüştürebilir, web içeriğini arşivlemek veya dinamik web sayfalarından raporlar oluşturmak kolay hale gelir.
Metin, Görüntü ve PDF Birleştirme: IronPDF, metinleri, görüntüleri ve mevcut PDF dosyalarını tek bir PDF belgesinde birleştirmenizi sağlar. Bu özellik, birden çok içerik kaynağı içeren karmaşık belgeler oluşturmak için özellikle faydalıdır.
PDF Manipülasyonu: IronPDF, sayfa ekleme veya kaldırma, meta verileri değiştirme veya hatta PDF belgelerinden metin ve görüntü çıkarma gibi mevcut PDF dosyalarını düzenleme araçları sağlar.
Sonuç
Sonuç olarak, PDF dosyaları oluşturmak ve manipüle etmek, birçok uygulamada yaygın bir gerekliliktir ve elinizde doğru araçların bulunması çok önemlidir. Bu makalede sunulan çözümler, Node.js ile birlikte Puppeteer veya .NET ile IronPDF kullanarak, HTML içeriklerini ve URL'leri profesyonel, yüksek kaliteli PDF belgelerine dönüştürmek için güçlü ve verimli yöntemler sunar.
IronPDF özellikle geniş özellik seti ile öne çıkarak .NET geliştiricileri için en iyi seçim haline geliyor. IronPDF, yeteneklerini keşfetmenizi sağlayan ücretsiz bir deneme sürümü sunar.
Kullanıcılar ayrıca beş profesyonel .NET kitaplığı içeren Iron Suite paketinden faydalanabilir; bunlar arasında IronXL, IronPDF, IronOCR ve daha fazlası bulunur.




