Altbilgi içeriğine atla
NODE YARDıM

JsdomNPM (Geliştiriciler İçin Nasıl Çalışır)

JSDOM ve IronPDF Node.js'de birleştiğinde, programcılar PDF belgeleri oluşturma ve değiştirmek için geniş bir araç setine erişim sağlar. W3C DOM'un saf bir JavaScript uygulaması olan JSDOM, HTML ve XML belgelerini sunucu tarafında tarayıcıda mümkün olan bir şekilde manipüle etmeyi mümkün kılar. Öte yandan, IronPDF, basit Node.js API'leri kullanarak HTML içeriğinden yüksek kaliteli PDF'ler oluşturmayı kolaylaştırır.

JSDOM ve IronPDF'in birleşimi, geliştiricilerin Node.js uygulamaları içinde web sayfalarını kolayca PDF'lere dönüştürmelerine, mevcut PDF'leri değiştirmelerine ve HTML şablonlarından hızla PDF belgeleri oluşturmalarına olanak tanır. Bu kombinasyon, güçlü PDF oluşturma yeteneklerine sahip projeler için mükemmel bir seçenektir çünkü modern web teknolojileriyle uyumluluğu sağlamakla kalmaz, aynı zamanda belge oluşturma işlemlerini hızlandırır.

JSDOM NPM Nedir?

JSDOM NPM (Node Package Manager), Node.js ile HTML belgelerini ayrıştırmak ve çalışmak için kullanmanıza olanak tanıyan bir JavaScript kütüphanesidir. Node.js içinde tarayıcı-benzeri bir ortam sunar ve W3C DOM (Belge Nesne Modeli) destekler. Sonuç olarak, HTML ve XML belgelerinin özelliklerini ve içeriğini programatik olarak manipüle edebilirsiniz. Hatta tıklamalar ve form gönderimleri gibi eylemleri simüle edebilirsiniz.

JSDOM NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 1

JSDOM, HTML tabanlı raporlar oluşturma, çevrimiçi siteleri test etme ve doğrulama ve web kömürleme gibi etkinliklerde oldukça yardımcıdır. Tam bir tarayıcı işlevlerinin bulunmadığı sunucu tarafı bir ortamda HTML sayfaları ile çalışırken geliştiricilere yardımcı olur. JSDOM NPM paketi, HTML manipülasyonu ve etkileşimini Node.js uygulamalarında ele alarak istemci tarafı tarayıcı işlevleri ile sunucu tarafı JavaScript arasındaki boşluğu doldurur.

Birçok güçlü web yeteneğinin uygulanması ile, Node.js içinde JSDOM, HTML ve XML belgeleri ile sunucu tarafı ortamlarda çalışan geliştiriciler için yararlı bir araçtır. JSDOM'un belirgin özellikleri şunlardır:

W3C DOM Uygulaması

JSDOM, birçok W3C DOM ve HTML spesifikasyonlarının kapsamlı bir JavaScript uygulamasını sunar. Bu, HTML ve XML belgelerini programatik olarak manipüle etmenize olanak tanır.

Tarayıcı-benzeri Çevre

JSDOM, Node.js içinde bir tarayıcı ortamını taklit ettiğinden, tıpkı JavaScript'in bir tarayıcıda çalıştığı gibi HTML sayfalarını manipüle edebilirsiniz. Bu, belge nesne modeli ile çalışma, olayları yönetme, komut dosyalarını çalıştırma ve öğeleri değiştirme ve erişim sağlamayı kapsar.

Standartlar İçin Destek

HTML5, CSS3 ve en yeni JavaScript özellikleri dahil modern web standartları desteklenmektedir. Bu, çoğu web içeriğiyle uyumluluğu sağlar ve karmaşık sayfaları doğru bir şekilde manipüle etme ve ayrıştırma imkanı tanır.

Ayrıştırma ve Serileştirme

HTML dizgilerini DOM yapılarına ayrıştırabilir ve DOM düğümlerini HTML dizgilerine geri serileştirebilirsiniz. Bu, sayfanın içinde komut dosyalarını çalıştırmayı sağlamak ve web sayfalarından güncellenmiş HTML çıktılarını oluşturup düzenleyebilmek içindir.

Özelleştirilebilir Yapılandırma

JSDOM, dış kaynaklar (örn. dış komut dosyalarını yükleme ve çalıştırma veya stil sayfaları) ile ilgili birçok tarayıcıyla ilgili özelliği simüle edecek şekilde yapılandırılabilir, farklı JavaScript motorları arasında geçiş yapabilir (örneğin, V8 veya SpiderMonkey) ve daha fazlası.

Test Çerçeveleri ile Entegrasyon

JSDOM, Jest ve Mocha gibi test çerçevelerinde DOM manipülasyonunu içeren birim testleri ve entegrasyon testleri yazmak için popüler bir araçtır. Tüm bir tarayıcı ortamına ihtiyaç duymadan başsız web uygulamalarının test edilmesini mümkün kılar.

Erişilebilirlik ve Uyumluluk

Erişilebilirlik standartlarına uyulması gereken uygulamalar için uygundur; ekran okuyucuları ile uyumluluk ve ARIA özellikleri için destek gibi erişilebilirlik özelliklerine sahiptir.

Node.js Ekosistem Entegrasyonu

JSDOM, diğer kütüphaneler ve daha geniş Node.js ekosistemi ile iyi çalışır. Örneğin, daha karmaşık web scrapping ve otomasyon işleri için Puppeteer gibi paketlerle veya etkili HTML ayrıştırma için Cheerio ile birlikte kullanılabilir.

JSDOM Node.js Kur ve Yapılandır

Node.js uygulamanızda JSDOM oluşturmak ve yapılandırmak için aşağıdaki adımları takip edebilirsiniz:

JSDOM Kurulumu

Öncelikle, bilgisayarınızda npm ve Node.js'nin yüklü olduğundan emin olun. npm kullanarak JSDOM'u kurabilirsiniz:

npm install jsdom
npm install jsdom
SHELL

Temel JSDOM Kullanımı

Bu, bir JSDOM ortamını ayarlamanın ve bir HTML belgesi ile çalışmanın basit bir örneğidir:

const { JSDOM } = require('jsdom');

// Example HTML content
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
  <title>JSDOM Example</title>
</head>
<body>
  <div id="content">
    <p>Hello, JSDOM!</p>
  </div>
</body>
</html>
`;

// Create a JSDOM instance
const dom = new JSDOM(htmlContent);

// Access and manipulate the DOM
const document = dom.window.document;
const contentDiv = document.getElementById('content');
contentDiv.innerHTML = '<p>Hello, modified JSDOM!</p>';

// Serialize the modified DOM back to HTML
const modifiedHtml = dom.serialize();
console.log(modifiedHtml);
const { JSDOM } = require('jsdom');

// Example HTML content
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
  <title>JSDOM Example</title>
</head>
<body>
  <div id="content">
    <p>Hello, JSDOM!</p>
  </div>
</body>
</html>
`;

// Create a JSDOM instance
const dom = new JSDOM(htmlContent);

// Access and manipulate the DOM
const document = dom.window.document;
const contentDiv = document.getElementById('content');
contentDiv.innerHTML = '<p>Hello, modified JSDOM!</p>';

// Serialize the modified DOM back to HTML
const modifiedHtml = dom.serialize();
console.log(modifiedHtml);
JAVASCRIPT

JSDOM NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 2

Yapılandırma Seçenekleri

JSDOM yapıcı, işlevselliğinin farklı parçalarını özelleştirmek için tedarik edebileceğiniz seçenekleri kabul eder. Bunlar birkaç tipik kurulum seçeneğidir:

JSDOM nesne API'si tarafından dış kaynaklardan gelen komut dosyalarının ve stil sayfalarının nasıl yüklenmesi gerektiğini düzenler. JSDOM'un ayrıştırılan HTML'deki komut dosyalarının çalıştırılıp çalıştırılmayacağına karar verir. JSDOM içinde çalışan komut dosyalarının konsol çıktılarının yakalanmasını sağlar. Bir tarayıcı'nın görsel ortamını taklit eder, bu da çeşitli CSS ve yerleşim hesaplamalarını etkileyebilir.

Bu, seçenekleri kullanarak JSDOM kodunun ayarlanmasının bir örneğidir.

const { JSDOM } = require('jsdom');

const htmlContent = '<!DOCTYPE html><html><body><p>Hello, JSDOM!</p></body></html>';

const options = {
  resources: 'usable', // Load external resources (e.g., scripts, stylesheets)
  runScripts: 'dangerously', // Allow scripts to run
};

const dom = new JSDOM(htmlContent, options);

// Access the document and window objects
const document = dom.window.document;
const window = dom.window;

// Manipulate the DOM or interact with the window object here
console.log(document.documentElement.outerHTML); // Output the modified HTML
const { JSDOM } = require('jsdom');

const htmlContent = '<!DOCTYPE html><html><body><p>Hello, JSDOM!</p></body></html>';

const options = {
  resources: 'usable', // Load external resources (e.g., scripts, stylesheets)
  runScripts: 'dangerously', // Allow scripts to run
};

const dom = new JSDOM(htmlContent, options);

// Access the document and window objects
const document = dom.window.document;
const window = dom.window;

// Manipulate the DOM or interact with the window object here
console.log(document.documentElement.outerHTML); // Output the modified HTML
JAVASCRIPT

Gelişmiş Kullanım

Daha karmaşık durumlarda, test kodunu test çerçeveleri ile birleştirmek veya kullanıcı etkileşimlerini simüle etmek için JSDOM da uygulanabilir. İşte JSDOM ve Jest'i test etmek için nasıl kullanabileceğinize dair bir örnek:

const { JSDOM } = require('jsdom');

test('modifying DOM with JSDOM', () => {
  const dom = new JSDOM('<!DOCTYPE html><html><body><p>Hello, JSDOM!</p></body></html>');
  const document = dom.window.document;
  const contentParagraph = document.querySelector('p');

  // Assert initial content
  expect(contentParagraph.textContent).toBe('Hello, JSDOM!');

  // Modify content
  contentParagraph.textContent = 'Hello, modified JSDOM!';

  // Assert modified content
  expect(contentParagraph.textContent).toBe('Hello, modified JSDOM!');
});
const { JSDOM } = require('jsdom');

test('modifying DOM with JSDOM', () => {
  const dom = new JSDOM('<!DOCTYPE html><html><body><p>Hello, JSDOM!</p></body></html>');
  const document = dom.window.document;
  const contentParagraph = document.querySelector('p');

  // Assert initial content
  expect(contentParagraph.textContent).toBe('Hello, JSDOM!');

  // Modify content
  contentParagraph.textContent = 'Hello, modified JSDOM!';

  // Assert modified content
  expect(contentParagraph.textContent).toBe('Hello, modified JSDOM!');
});
JAVASCRIPT

Başlarken

IronPDF ve JSDOM'u Node.js'de çalıştırmak, HTML bilgilerini PDF belgelerine dönüştürmek için bu kütüphanelerin birleştirilmesini gerektirir. JSDOM, HTML belgeleriyle programlama yoluyla çalışmanıza olanak tanır, IronPDF ise HTML'yi PDF'e dönüştürmeyi kolaylaştırır. İşte işe koyulmanızı sağlayacak bir nasıl yapılır kılavuzu.

IronPDF Node.js için nedir?

IronPDF Node.js için, HTML metninden üstün kalitede PDF belgeleri üretir. Orijinal web içeriğinin bütünlüğünü korurken, HTML, CSS ve JavaScript'i tam biçimlendirilmiş PDF'lere dönüştürme sürecini kolaylaştırır. Dinamik, yazdırılabilir belgeler gibi raporlar, faturalar ve sertifikalar oluşturan web uygulamaları için bu araç özellikle faydalı olabilir.

IronPDF'in sağladığı birçok yetenek arasında ayarlanabilir sayfa ayarları, üstbilgi, altbilgi ve resim ile yazı tipi yerleştirme yeteneği bulunur. Oluşturulan PDF'lerin tasarlanan tasarıma uygun olmasını garantilemek için karmaşık düzenler ve stillere izin verir. Ayrıca, IronPDF, HTML içindeki JavaScript'in yürütülmesini yöneterek dinamik ve etkileşimli materyalin hassas bir şekilde işlenmesine olanak tanır.

JSDOM NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 3

IronPDF Özellikleri

HTML'den PDF Üretimi

JavaScript, HTML, ve CSS'i PDF'e dönüştür. Medya sorguları ve duyarlı tasarım gibi modern web standartlarını destekler. HTML ve CSS kullanarak PDF belgelerini, raporları ve faturaları dinamik bir şekilde dekore etmek için faydalıdır.

PDF Düzenleme

Önceden var olan PDF'lere metin, resim ve başka içerikler eklenebilir veya alternatif olarak bu PDF dosyalarından metin ve resim çıkarabilirsiniz. Birden çok PDF'yi tek bir dosyada birleştirin. PDF dosyalarını birden fazla ayrı belgeye ayırın. Filigranlar, açıklamalar, başlıklar ve altbilgiler ekleyin.

Performans ve Güvenilirlik

Sanayi ortamlarında aranan yüksek performans ve güvenilirlik tasarım özellikleridir. IronPDF büyük belge setlerini kolaylıkla yönetir.

IronPDF Kurulumu

Node projelerinde PDF'lerle çalışmak için gerekli araçları almak için IronPDF paketini yükleyin.

npm i @ironsoftware/ironpdf

JSDOM ve IronPDF kullanarak HTML'den PDF'e dönüştürme

PDF'e dönüştürülmek üzere HTML materyalini hazırlayın. Bir örnek olarak:


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Example Document</title>
  <style>
    body {
      font-family: Arial, sans-serif;
    }
    .content {
      margin: 20px;
    }
  </style>
</head>
<body>
  <div class="content">
    <h1>Hello, JSDOM with IronPDF!</h1>
    <p>This is a sample HTML document converted to PDF using JSDOM and IronPDF.</p>
  </div>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Example Document</title>
  <style>
    body {
      font-family: Arial, sans-serif;
    }
    .content {
      margin: 20px;
    }
  </style>
</head>
<body>
  <div class="content">
    <h1>Hello, JSDOM with IronPDF!</h1>
    <p>This is a sample HTML document converted to PDF using JSDOM and IronPDF.</p>
  </div>
</body>
</html>
HTML

Node.js betiğini çağrılan convertToPdf.js yapın ve JSDOM kullanarak HTML içeriğini çözümleyin ve IronPDF kullanarak bir PDF oluşturun.

const { JSDOM } = require('jsdom');
const IronPdf = require("@ironsoftware/ironpdf");
const fs = require('fs');

// Configure IronPDF with the license key (if applicable)
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: '' });

// Load the HTML content from the file
const htmlContent = fs.readFileSync('example.html', 'utf8');

// Create a JSDOM instance and parse the HTML
const dom = new JSDOM(htmlContent);
const jdocument = dom.window.document;

// Convert the HTML to PDF
IronPdf.PdfDocument.fromHtml(jdocument.documentElement.outerHTML).then((pdfres) => {
  const filePath = `${Date.now()}.pdf`;
  pdfres.saveAs(filePath).then(() => {
    console.log('PDF saved successfully!');
  }).catch((e) => {
    console.log(e);
  });
});
const { JSDOM } = require('jsdom');
const IronPdf = require("@ironsoftware/ironpdf");
const fs = require('fs');

// Configure IronPDF with the license key (if applicable)
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: '' });

// Load the HTML content from the file
const htmlContent = fs.readFileSync('example.html', 'utf8');

// Create a JSDOM instance and parse the HTML
const dom = new JSDOM(htmlContent);
const jdocument = dom.window.document;

// Convert the HTML to PDF
IronPdf.PdfDocument.fromHtml(jdocument.documentElement.outerHTML).then((pdfres) => {
  const filePath = `${Date.now()}.pdf`;
  pdfres.saveAs(filePath).then(() => {
    console.log('PDF saved successfully!');
  }).catch((e) => {
    console.log(e);
  });
});
JAVASCRIPT

JSDOM NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 4

Bir veritabanı, dosya veya dinamik olarak oluşturulan içerikten HTML içeriği yükleyin. Ayrıştırılmış HTML içeriğinden bir PDF belgesi oluşturmak için IronPDF kullanın. IronPDF'in RenderHtmlAsPdf işlevi, bir HTML dizesini kabul eder ve ardından PDF verileriyle bir Promise sunar. Node.js'nin dosya sistemi modülü (fs) kullanılarak, IronPDF bir PDF belgesini bir tampon olarak (pdfBuffer) oluşturur ve bu bir dosyaya kaydedilebilir. Hata işleme, bozuk HTML veya ağ sorunları gibi problemlerde PDF'lerin oluşturulması sırasında dayanıklılığı garanti eder.

JSDOM NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 5

Sonuç

Programatik olarak HTML bilgisinden yüksek kaliteli PDF belgeleri oluşturmak için JSDOM güvenilir bir seçenek sunar. JSDOM ile geliştiriciler DOM öğeleriyle etkileşim kurabilir ve dinamik olarak bilgiler düzenleyebilir, böylece HTML sayfalarını simüle edilmiş bir tarayıcı ortamında ayrıştırmayı ve manipüle etmeyi kolaylaştırır. Bu özellik, veri çıkarımı, dinamik rapor oluşturma ve web kazıma gibi işleri için gereklidir.

IronPDF, HTML metinlerini PDF'lere dönüştüren güçlü özellikleri ile JSDOM'a mükemmel bir ek sağlar ve size düzen, sayfalandırma, üstbilgiler, altbilgiler ve diğer PDF'ye özgü özellikler üzerinde tam kontrol sunar. Karmaşık HTML yapılarının Node.js uygulamalarından doğrudan yazdırılabilir, hazır PDF dosyalarına dönüştürülmesini kolaylaştırır.

JSDOM ve IronPDF'i birleştirmek, geliştiricilere HTML şablonlarından veya dinamik olarak oluşturulan bilgilerden otomatik olarak PDF belgeleri oluşturma olanağı sağlar. Bu, belgeyi raporlar, sertifikalar, faturalar ve daha fazlasını üretme gibi çeşitli kullanım durumları için yararlı kılar. Bu entegrasyon, Node.js ekosisteminde belge merkezli uygulamaların özel gereksinimlerini verimli bir şekilde karşılar, her iki kütüphanenin güçlü yönlerini kullanarak verimliliği artırır ve belge bütünlüğünü korur.

IronPDF ve Iron Software, .NET geliştirme kitinize OCR, barkod tarama, PDF oluşturma, Excel entegrasyonu ve diğer özelliklerle imkanlar eklemenizi sağlar. IronPDF, geliştiricilere ek çevrimiçi uygulamalar ve özellikler sunmak için Iron Software'ın yüksek derecede yapılandırılabilir sistemlerini ve yazılımını çekirdek desteği ile birleştirir ve daha verimli geliştirme sağlar. Tüm bunlar sadece temel sürüm için $999 fiyatınadır.

Lisans seçenekleri net ve projeye göre uyarlanmış olduğunda, geliştiriciler en uygun modeli daha kolay seçebilir. Bu özellikler, geliştiricilere çok çeşitli sorunları basit, etkili ve iyi entegre edilmiş bir şekilde çözmede yardımcı olur.

Darrius Serrant
Tam Yığın Yazılım Mühendisi (WebOps)

Darrius Serrant, Miami Üniversitesi'nden Bilgisayar Bilimi alanında Lisans Derecesine sahip ve Iron Software'de Tam Yığın WebOps Pazarlama Mühendisi olarak çalışıyor. Genç yaşlardan itibaren kodlamaya çekildi, bilgisayar bilimi hem gizemli hem de erişilebilir olarak görüldü ve bu özellik, yaratıcılık ...

Daha Fazla Oku

Iron Destek Ekibi

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