Altbilgi içeriğine atla
PDF ARAçLARı

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:

  1. Node.js'i henüz yüklemediyseniz indirip yükleyin (Node.js web sitesinden indirilebilir).
  2. Projeniz için yeni bir klasör oluşturun ve Visual Studio Code veya herhangi bir özel kod editöründe açın.
  3. Projeniz için yeni bir package.json dosyası oluşturmak için npm init komutunu çalıştırın. İstemleri takip edin ve gerekli bilgileri doldurun.

    Node.js'de HTML'i PDF'e Dönüştürme: Şekil 1

  4. npm install puppeteer komutunu çalıştırarak Puppeteer'i kurun.

    Node.js'de HTML'i PDF'e Dönüştürme: Şekil 2

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:

  1. Puppeteer kullanarak yeni bir başsız tarayıcı instansı başlatır.
  2. Yeni bir tarayıcı sayfası oluşturur.
  3. Sağlanan html dizgisini, sayfa içeriği olarak ayarlar ve DOM içeriğinin yüklenmesini bekler.
  4. Ekran medya türünü benzeterek, ekranlar için kullanılan CSS'nin yerine yazdırma için özel stillerin uygulanmasını sağlar.
  5. Yüklenen HTML içeriğinden bir PDF dosyası üretir, marjlar, arka plan baskısı ve format (A4) belirtilir.
  6. Tarayıcı örneğini kapatır.
  7. 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:

  1. fs modülünün readFileSync metodunu kullanarak bir HTML dosyasından HTML içeriğini okuyun.
  2. Yüklenen html dizgisi ve istenilen outputPath ile exportWebsiteAsPdf fonksiyonunu çağırın.
  3. Başarılı bir PDF oluşturma işlemini yönetmek ve konsola bir başarı mesajı kaydetmek için bir .then bloğu kullanın.
  4. 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 .catch bloğ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.

Node.js'de HTML'i PDF'e Dönüştürme: Şekil 3

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:

  1. Puppeteer kullanarak yeni bir başsız tarayıcı instansı başlatır.
  2. Yeni bir tarayıcı sayfası oluşturur.
  3. Sağlanan websiteUrl adresine gider ve ağı waitUntil seçeneği networkidle0 olarak ayarlandığında ağın boş duruma geçmesini bekler.
  4. Ekran medya türünü benzeterek ekranlar için kullanılan CSS'nin yazdırma için özel stiller yerine uygulanmasını sağlar.
  5. Yüklenen web sayfasını belirtilen marjlar, arka plan baskısı ve format (A4) ile bir PDF dosyasına dönüştürür.
  6. Tarayıcı örneğini kapatır.
  7. 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:

  1. İstenen websiteUrl ve outputPath ile exportWebsiteAsPdf fonksiyonunu çağırın.
  2. Başarılı bir PDF oluşturma işlemini yönetmek için bir then bloğu kullanın. Bu blokta, konsola bir başarı mesajı kaydediyoruz.
  3. Web sitesinden PDF'e dönüştürme işlemi sırasında oluşabilecek hataları yönetmek için bir catch bloğ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.

Node.js'de HTML'i PDF'e Dönüştürme: Şekil 4

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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara