IronPDF'nin en güçlü ve en popüler özelliği, ham HTML, CSS ve JavaScript'ten yüksek hassasiyetli PDF'ler oluşturma yeteneğidir. Bu öğretici, Node.js geliştiricilerini HTML içeriğini PDF'lere dönüştürmenin pratik yöntemleriyle yürütmektedir — tek satırlık bir dize dönüşümünden dinamik şablon tabanlı belge oluşturmaya kadar.
IronPDF, geliştiricilerin güçlü PDF işleme yeteneklerini yazılım uygulamalarına hızlı bir şekilde uygulamalarına yardımcı olan bir yüksek seviye API kütüphanesidir. IronPDF, birden fazla programlama dilinde mevcuttur. PDF oluşturma hakkında ayrıntılı bilgi için .NET, Java ve Python ile resmi belgeler sayfalarını inceleyin. Bu öğretici, Node.js projelerine uygulandığı şekilde kullanımını kapsar.
Hızlı Başlangıç: Node.js'de HTML'yi PDF'ye dönüştürün
Node.js'de HTML'yi PDF'ye Dönüştürme
- IronPDF Node.js kütüphanesini NPM ile kurun:
npm install @ironsoftware/ironpdf @ironsoftware/ironpdfpaketinden PdfDocument sınıfını içe aktarın.- HTML kaynağınıza göre
PdfDocument.fromHtml,PdfDocument.fromUrlveyaPdfDocument.fromZipçağırın. - İsteğe bağlı olarak, işleme seçeneklerini yapılandırın: üstbilgiler, altbilgiler, sayfa boyutu, yönlendirme ve kenar boşlukları.
- Oluşturulan PDF'yi diske kaydetmek için
PdfDocument.saveAsçağırın.
İçindekiler
- IronPDF for Node.js ile Nasıl Başlanır?
- Node.js'de HTML'yi PDF'ye Nasıl Dönüştürürsünüz?
- IronPDF Ne Tür Gelişmiş İşleme Seçeneklerini Destekler?
- HTML Şablonundan PDF Nasıl Üretilir?
- Sonraki Adımlar Neler?
Node.js için IronPDF ile Nasıl Başlanır? {#ilk-adimlar}
Bugün IronPDF ile projenizde ücretsiz bir deneme ile başlayın.
IronPDF Kütüphanesini Yükleme
IronPDF Node.js paketini, seçilen Node.js projenizde aşağıdaki NPM komutunu çalıştırarak kurun:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/install.sh
npm install @ironsoftware/ironpdf//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/install.sh
npm install @ironsoftware/ironpdfIronPDF paketini manuel olarak indirip kurabilirsiniz.
IronPDF Motoru Nasıl Kurulur?
Node.js için IronPDF, çalışması için bir IronPDF Motor ikilisi gerektirir.
IronPDF Motorunun kurulumu isteğe bağlıdır. @ironsoftware/ironpdf paketi, ilk çalıştırıldığında işletim sisteminize uygun ikili dosyayı otomatik olarak indirir ve yükler. İnternet erişiminin kısıtlı veya mevcut olmadığı ortamlarda açık kurulum önerilmektedir.
İşletim sisteminiz için uygun paketi kurun.
Lisans Anahtarı Nasıl Uygulanır?
Varsayılan olarak, IronPDF tüm oluşturduğu veya değiştirdiği belgelere bir filigran uygular. Filigranı kaldırmak için, geçerli bir lisans anahtarıyla global IronPdfGlobalConfig nesnesindeki licenseKey özelliğini ayarlayın:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/config.js
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
// Retrieve the global configuration object
var config = IronPdfGlobalConfig.getConfig();
// Set a valid license key to remove watermarks
config.licenseKey = "{YOUR-LICENSE-KEY-HERE}";//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/config.js
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
// Retrieve the global configuration object
var config = IronPdfGlobalConfig.getConfig();
// Set a valid license key to remove watermarks
config.licenseKey = "{YOUR-LICENSE-KEY-HERE}";Ücretsiz deneme lisans anahtarı edinin veya lisans anahtarı satın alın.
[Lisans anahtarını ayarlayın ve diğer global yapılandırma ayarlarını diğer kütüphane işlevlerini çağırmadan önce ayarlayın. Bu, uygulama genelinde optimum performans ve doğru davranışı sağlar.
Bu öğreticideki geri kalan kod örnekleri, her komut dosyasının en üstüne içe aktarılan ayrı bir config.js dosyasında bir lisans anahtarının uygulandığını varsaymaktadır:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/config-import.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// ...//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/config-import.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// ...
Watermarksiz PDF belgeleri oluşturmak için ironpdf.com/nodejs/licensing/ adresinden bir lisans anahtarı alın.
Node.js'de HTML'yi PDF'ye Nasıl Dönüştürürsünüz? {#html-to-pdf-donustur}
IronPDF Node.js kütüphanesi, HTML içerikten PDF dosyaları oluşturmak için dört yaklaşım sunar:
- Bir HTML kod dizesinden
- Yerel bir HTML dosyasından
- Çevrimiçi bir URL'den
- Sıkıştırılmış bir ZIP arşivinden
Her yaklaşım, temel olarak PdfDocument sınıfını kullanır. PdfDocument, bir kaynak içerikten üretilen bir PDF dosyasını temsil eder ve IronPDF'nin temel oluşturma ve düzenleme özelliklerinin çoğunu yönlendirir.
Bir HTML Dizesinden PDF Nasıl Oluşturulur? {#html-dizgisinden-pdf-olustur}
PdfDocument.fromHtml, ham HTML işaretleme dizilerinden PDF'ler oluşturur. HTML dizisi metin dosyaları, veri akışları, bir HTML şablon motoru veya dinamik olarak oluşturulmuş işaretlemeler gibi hemen hemen her yerden elde edilebildiğinden, bu yaklaşım dört yöntem arasında en fazla esnekliği sunar.
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/html-string-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Create a PDF from an HTML string
const pdf = await PdfDocument.fromHtml("<h1>Hello from IronPDF!</h1>");
// Save the PDF document to the file system
await pdf.saveAs("html-string-to-pdf.pdf");//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/html-string-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Create a PDF from an HTML string
const pdf = await PdfDocument.fromHtml("<h1>Hello from IronPDF!</h1>");
// Save the PDF document to the file system
await pdf.saveAs("html-string-to-pdf.pdf");PdfDocument.fromHtml, PdfDocument sınıfının bir örneğine çözümlenen bir Promise döndürür. Örneği aldıktan sonra, PDF'yi diske yazmak için hedef dosya yoluyla saveAs'yi çağırın. Kaydedilen PDF dosyası, HTML'yi standartlara uyan bir tarayıcının görüntüleyeceği şekilde render eder.
The PDF generated from the HTML string <h1>Hello from IronPDF!</h1>. PdfDocument.fromHtml tarafından oluşturulan PDF dosyaları, web sayfası içeriğinin görüneceği şekilde görüntülenir.
Bir HTML Dosyasından PDF Nasıl Oluşturulur? {#create-pdf-from-html-file}
PdfDocument.fromHtml ayrıca yerel bir HTML belgesinin yolunu da kabul eder. Bir işaretleme dizesi yerine, ilk argüman olarak geçerli bir dosya yolunu geçirin. Yerel CSS, JavaScript ve resim varlıklarına referans veren kaydedilmiş web sayfaları ile çalışırken tercih edilen bir yaklaşımdır.
Aşağıdaki örnek, bir örnek web sayfasını bir PDF'ye dönüştürmektedir:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/html-file-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Render a PDF from a local HTML file
const pdf = await PdfDocument.fromHtml("./sample2.html");
// Save the PDF document to the project directory
await pdf.saveAs("html-file-to-pdf-1.pdf");//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/html-file-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Render a PDF from a local HTML file
const pdf = await PdfDocument.fromHtml("./sample2.html");
// Save the PDF document to the project directory
await pdf.saveAs("html-file-to-pdf-1.pdf");
Örnek HTML sayfası, Google Chrome'da göründüğü şekilde. Bu ve benzeri sayfaları, Dosya Örnekleri web sitesinden indirin: https://filesamples.com/samples/code/html/sample2.html
IronPDF, orijinal HTML belgesinin görünümünü korur ve bağlantılar, formlar ve diğer etkileşimli öğelerin işlevselliğini sürdürür. Bu sadakat, paragraflar, listeler, resimler, köprüler ve istemci tarafı komut dosyalarını içeren karmaşık sayfalara kadar genişler.
**Bu PDF yukarıdaki HTML dosyasından üretilmiştir. Görünümünü önceki görüntü ile karşılaştırın — IronPDF düzeni yüksek sadakat ile korur.
IronPDF, basit işaretlemenin çok ötesine geçen sayfaları işler. Aşağıdaki örnek, birçok harici CSS dosyası, görüntü ve komut dosyası varlığı içeren özellik açısından zengin bir sayfayı dönüştürmektedir:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/html-complex-file-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Render a PDF from a complex HTML page with external assets
PdfDocument.fromHtml("./sample4.html").then(async (pdf) => {
return await pdf.saveAs("html-file-to-pdf-2.pdf");
});//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/html-complex-file-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Render a PDF from a complex HTML page with external assets
PdfDocument.fromHtml("./sample4.html").then(async (pdf) => {
return await pdf.saveAs("html-file-to-pdf-2.pdf");
});
Google Chrome'da iyi görünüyorsa, PDF formatına dönüştürüldüğünde de iyi görünecektir. Bu, CSS-yoğun ve JavaScript ile oluşturulmuş sayfa tasarımlarını içerir.
Bir URL'den PDF Nasıl Oluşturulur? {#url'dan-pdf-olustur}
PdfDocument.fromUrl canlı bir web sayfasını alır ve PDF olarak görüntüler. Herhangi bir genel olarak erişilebilir URL'yi argüman olarak geçirin. IronPDF'nin Chrome işleme motoru, sayfayı alır, tüm varlıkları yükler ve manuel HTML indirmeye gerek kalmadan pikselle kusursuz bir PDF üretir.
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/url-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Convert a live web page to a PDF
const pdf = await PdfDocument.fromUrl("https://en.wikipedia.org/wiki/PDF");
// Save the document
await pdf.saveAs("url-to-pdf.pdf");//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/url-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Convert a live web page to a PDF
const pdf = await PdfDocument.fromUrl("https://en.wikipedia.org/wiki/PDF");
// Save the document
await pdf.saveAs("url-to-pdf.pdf");
Standartlara uyumlu bir web tarayıcısında görünen PDF formatı hakkındaki Wikipedia makalesi.
**Bir Wikipedia makalesinde PdfDocument.fromUrl çağrısı yapıldığında oluşturulan PDF. Orijinal web sayfasına çok benzerliğini not edin.
ChromePdfRenderOptions aracılığıyla ek yapılandırma gerekebilir.Bir Zip Arşivinden PDF Nasıl Oluşturulur? {#create-pdf-from-zip}
PdfDocument.fromZip, bir ZIP arşivinde bulunan belirli bir HTML dosyasını PDF'ye dönüştürür. Bu, HTML, CSS ve görüntü varlıklarını bir arada paketleyen kendi içerikli HTML projeleri dağıtırken özellikle kullanışlıdır.
Bu örnek için, proje dizininin şu yapıya sahip bir ZIP dosyası içerdiğini varsayın:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/zip-structure.txt
html-zip.zip
├─ index.html
├─ style.css
├─ logo.pngindex.html dosyası şunları içerir:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hello world!</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Hello from IronPDF!</h1>
<a href="https://ironpdf.com/nodejs/">
<img src="logo.png" alt="IronPDF for Node.js">
</a>
</body>
</html>//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hello world!</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Hello from IronPDF!</h1>
<a href="https://ironpdf.com/nodejs/">
<img src="logo.png" alt="IronPDF for Node.js">
</a>
</body>
</html>Ve style.css sayfa düzenini ve yazı tipi kurallarını belirtir:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/style.css
@font-face {
font-family: 'Gotham-Black';
src: url('gotham-black-webfont.eot?') format('embedded-opentype'),
url('gotham-black-webfont.woff2') format('woff2'),
url('gotham-black-webfont.woff') format('woff'),
url('gotham-black-webfont.ttf') format('truetype'),
url('gotham-black-webfont.svg') format('svg');
font-weight: normal;
font-style: normal;
font-display: swap;
}
body {
display: flex;
flex-direction: column;
justify-content: center;
margin-left: auto;
margin-right: auto;
margin-top: 200px;
margin-bottom: auto;
color: white;
background-color: black;
text-align: center;
font-family: "Helvetica"
}
h1 {
font-family: "Gotham-Black";
margin-bottom: 70px;
font-size: 32pt;
}
img {
width: 400px;
height: auto;
}
p {
text-decoration: underline;
font-size: smaller;
}
Varsayımsal HTML ZIP dosyası içindeki örnek görüntü.
fromZip çağrısı yaparken, ilk argüman olarak ZIP dosyasının yolunu, ikinci argüman olarak ise bir yapılandırma nesnesini belirtin. mainHtmlFile özelliğini, dönüştürülmesi gereken arşiv içindeki HTML dosyasının adına ayarlayın:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/zip-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Convert an HTML file from a ZIP archive to PDF
PdfDocument.fromZip("./html-zip.zip", {
mainHtmlFile: "index.html"
}).then(async (pdf) => {
return await pdf.saveAs("html-zip-to-pdf.pdf");
});//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/zip-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Convert an HTML file from a ZIP archive to PDF
PdfDocument.fromZip("./html-zip.zip", {
mainHtmlFile: "index.html"
}).then(async (pdf) => {
return await pdf.saveAs("html-zip-to-pdf.pdf");
});
**PdfDocument.fromZip kullanılarak PDF oluşturma. Fonksiyon, ZIP dosyasından HTML kodunu ve demetlenen varlıklarını başarıyla işler.
IronPDF Hangi İleri Düzey İşleme Seçeneklerini Destekler? {#ileri-duzey-rendeyecek-secenekler}
ChromePdfRenderOptions arayüzü, PDF görüntüleme davranışının ayrıntılı özelleştirilmesi için özellikler sunar. Bu ayarlar PDF oluşturulmadan önce uygulanır ve düzen, görsel görünüm ve dinamik içerik için öngörülemeyen durumları kapsar.
IronPDF her dönüşüme varsayılan işleme ayarları uygular. Bu varsayılan değerleri defaultChromePdfRenderOptions işleviyle alın:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/default-options.js
import { defaultChromePdfRenderOptions } from "@ironsoftware/ironpdf";
// Retrieve a ChromePdfRenderOptions object with default settings
var options = defaultChromePdfRenderOptions();//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/default-options.js
import { defaultChromePdfRenderOptions } from "@ironsoftware/ironpdf";
// Retrieve a ChromePdfRenderOptions object with default settings
var options = defaultChromePdfRenderOptions();Döndürülen nesnenin özelliklerini gerektiği gibi değiştirin ve herhangi bir dönüştürme yönteminin renderOptions parametresine aktarın.
Başlıklar ve Altbilgiler Nasıl Eklenir? {#basliklar-ve-altliklar-ekle}
textHeader ve textFooter özellikleri, yeni oluşturulan bir PDF'nin her sayfasına özel metin tabanlı içerik ekler. Aşağıdaki örnek, Google ana sayfasından bir PDF oluşturur ve her biri farklı bir yazı tipi kullanan özel bir başlık ve alt bilgi ekler:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/custom-headers-footers.js
import { PdfDocument, defaultChromePdfRenderOptions, AffixFonts } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Start from default render options
var options = defaultChromePdfRenderOptions();
// Configure a text-based header
options.textHeader = {
centerText: "https://www.adobe.com",
dividerLine: true,
font: AffixFonts.CourierNew,
fontSize: 12,
leftText: "URL to PDF"
};
// Configure a text-based footer
options.textFooter = {
centerText: "IronPDF for Node.js",
dividerLine: true,
fontSize: 14,
font: AffixFonts.Helvetica,
rightText: "HTML to PDF in Node.js"
};
// Render the page with custom headers and footers applied
PdfDocument.fromUrl("https://www.google.com/", { renderOptions: options }).then(async (pdf) => {
return await pdf.saveAs("add-custom-headers-footers-1.pdf");
});//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/custom-headers-footers.js
import { PdfDocument, defaultChromePdfRenderOptions, AffixFonts } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Start from default render options
var options = defaultChromePdfRenderOptions();
// Configure a text-based header
options.textHeader = {
centerText: "https://www.adobe.com",
dividerLine: true,
font: AffixFonts.CourierNew,
fontSize: 12,
leftText: "URL to PDF"
};
// Configure a text-based footer
options.textFooter = {
centerText: "IronPDF for Node.js",
dividerLine: true,
fontSize: 14,
font: AffixFonts.Helvetica,
rightText: "HTML to PDF in Node.js"
};
// Render the page with custom headers and footers applied
PdfDocument.fromUrl("https://www.google.com/", { renderOptions: options }).then(async (pdf) => {
return await pdf.saveAs("add-custom-headers-footers-1.pdf");
});
textHeader ve textFooter kullanılarak özel metin üstbilgisi ve altbilgisi eklenmiş, Google ana sayfasından oluşturulan bir PDF.
Daha zengin başlık ve altbilgi düzenleri için, bunun yerine htmlHeader ve htmlFooter özelliklerini kullanın. Bunlar, tipografi, görüntüler ve hizalama üzerinde tam kontrol sağlamak için ham HTML parçaları kabul eder. Aşağıdaki örnek, başlıkta sayfa URL'sini kalın olarak ortalar ve alt bilgiye bir logo resmi gömüyor:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/html-headers-footers.js
import { PdfDocument, defaultChromePdfRenderOptions } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Start from default render options
var options = defaultChromePdfRenderOptions();
// Define a rich HTML header
options.htmlHeader = {
htmlFragment: "<strong>https://www.google.com/</strong>",
dividerLine: true,
dividerLineColor: "blue",
loadStylesAndCSSFromMainHtmlDocument: true,
};
// Define a rich HTML footer with a logo
options.htmlFooter = {
htmlFragment: "<img src='logo.png' alt='IronPDF for Node.js' style='display: block; width: 150px; height: auto; margin-left: auto; margin-right: auto;'>",
dividerLine: true,
loadStylesAndCSSFromMainHtmlDocument: true
};
// Apply custom HTML headers and footers during rendering
await PdfDocument.fromUrl("https://www.google.com/", { renderOptions: options }).then(async (pdf) => {
return await pdf.saveAs("add-html-headers-footers.pdf");
});//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/html-headers-footers.js
import { PdfDocument, defaultChromePdfRenderOptions } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Start from default render options
var options = defaultChromePdfRenderOptions();
// Define a rich HTML header
options.htmlHeader = {
htmlFragment: "<strong>https://www.google.com/</strong>",
dividerLine: true,
dividerLineColor: "blue",
loadStylesAndCSSFromMainHtmlDocument: true,
};
// Define a rich HTML footer with a logo
options.htmlFooter = {
htmlFragment: "<img src='logo.png' alt='IronPDF for Node.js' style='display: block; width: 150px; height: auto; margin-left: auto; margin-right: auto;'>",
dividerLine: true,
loadStylesAndCSSFromMainHtmlDocument: true
};
// Apply custom HTML headers and footers during rendering
await PdfDocument.fromUrl("https://www.google.com/", { renderOptions: options }).then(async (pdf) => {
return await pdf.saveAs("add-html-headers-footers.pdf");
});
IronPDF, her sayfada markalaşma ve düzen üzerinde tam kontrol sağlayan HTML tabanlı başlıkları ve alt bilgileri destekler.
Sayfa Boyutu, Yönlendirme ve Kenar Boşluklarını Nasıl Kontrol Edersiniz? {#sayfa-boyutu-yonlendirme-ve-marjinler}
margin, paperSize, fitToPaperMode, paperOrientation ve grayScale özellikleri, ChromePdfRenderOptions öğesindeki her bir sayfanın fiziksel düzenini kontrol eder. Aşağıdaki örnek, özel kenar boşlukları, A5 yatay yönlendirme ve gri tonlama çıktısı ile Google ana sayfasını dönüştürüyor:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/page-size-orientation.js
import { PdfDocument, defaultChromePdfRenderOptions, PaperSize, FitToPaperModes, PdfPaperOrientation } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Start from default render options
var options = defaultChromePdfRenderOptions();
// Set page margins in millimeters
options.margin = {
top: 50,
bottom: 50,
left: 60,
right: 60
};
// Configure paper size, fit mode, orientation, and color mode
options.paperSize = PaperSize.A5;
options.fitToPaperMode = FitToPaperModes.FitToPage;
options.paperOrientation = PdfPaperOrientation.Landscape;
options.grayScale = true;
// Render with the customized layout settings
PdfDocument.fromUrl("https://www.google.com/", { renderOptions: options }).then(async (pdf) => {
return await pdf.saveAs("set-margins-and-page-size.pdf");
});//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/page-size-orientation.js
import { PdfDocument, defaultChromePdfRenderOptions, PaperSize, FitToPaperModes, PdfPaperOrientation } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Start from default render options
var options = defaultChromePdfRenderOptions();
// Set page margins in millimeters
options.margin = {
top: 50,
bottom: 50,
left: 60,
right: 60
};
// Configure paper size, fit mode, orientation, and color mode
options.paperSize = PaperSize.A5;
options.fitToPaperMode = FitToPaperModes.FitToPage;
options.paperOrientation = PdfPaperOrientation.Landscape;
options.grayScale = true;
// Render with the customized layout settings
PdfDocument.fromUrl("https://www.google.com/", { renderOptions: options }).then(async (pdf) => {
return await pdf.saveAs("set-margins-and-page-size.pdf");
});PaperSize numaralandırması, A4, A5, Letter ve Legal gibi standart kağıt boyutlarını içerir. PdfPaperOrientation numaralandırması, Portrait ve Landscape'yi destekler. Bu ayarlar, baskıya hazır belgeler için çıkış boyutları üzerinde hassas kontrol sağlar.
Dinamik Web Sayfalarını Nasıl İşlersiniz? {#dinamik-web-sayfalari}
İçeriği asenkron olarak yükleyen sayfalar — JavaScript zamanlayıcıları, tembel yükleme veya API çağrıları aracılığıyla — IronPDF'nin motoru tarafından yakalanana kadar tam olarak işlemiş olmayabilir. WaitFor mekanizması, waitFor üzerindeki ChromePdfRenderOptions özelliği aracılığıyla yapılandırılır ve Chrome renderer'a, sayfayı yakalamadan önce belirtilen koşullar karşılanana kadar duraklamasını söyler.
Aşağıdaki kod bloğu, IronPDF'yi sayfa içeriğini yakalamadan önce 20 saniye beklemeye ayarlıyor:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/waitfor-delay.js
import { PdfDocument, defaultChromePdfRenderOptions, WaitForType } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Configure the renderer to wait 20 seconds before capturing
var options = defaultChromePdfRenderOptions();
options.waitFor = {
type: WaitForType.RenderDelay,
delay: 20000
};
PdfDocument.fromUrl("https://ironpdf.com/nodejs/", { renderOptions: options }).then(async (pdf) => {
return await pdf.saveAs("waitfor-renderdelay.pdf");
});//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/waitfor-delay.js
import { PdfDocument, defaultChromePdfRenderOptions, WaitForType } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Configure the renderer to wait 20 seconds before capturing
var options = defaultChromePdfRenderOptions();
options.waitFor = {
type: WaitForType.RenderDelay,
delay: 20000
};
PdfDocument.fromUrl("https://ironpdf.com/nodejs/", { renderOptions: options }).then(async (pdf) => {
return await pdf.saveAs("waitfor-renderdelay.pdf");
});Alternatif olarak, belirli bir DOM öğesi görünene kadar IronPDF'yi beklemeye ayarlayın. Bu, içerik JavaScript çerçevesi monte edildikten sonra enjekte edilen sayfalar için yararlıdır:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/waitfor-element.js
import { PdfDocument, defaultChromePdfRenderOptions, WaitForType } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Configure the renderer to wait for a specific DOM element (up to 20 seconds)
var options = defaultChromePdfRenderOptions();
options.waitFor = {
type: WaitForType.HtmlElement,
htmlQueryStr: "div.ProseMirror",
maxWaitTime: 20000,
};
PdfDocument.fromUrl("https://app.surferseo.com/drafts/s/V7VkcdfgFz-dpkldsfHDGFFYf4jjSvvjsdf", { renderOptions: options }).then(async (pdf) => {
return await pdf.saveAs("waitfor-htmlelement.pdf");
});//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/waitfor-element.js
import { PdfDocument, defaultChromePdfRenderOptions, WaitForType } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
// Configure the renderer to wait for a specific DOM element (up to 20 seconds)
var options = defaultChromePdfRenderOptions();
options.waitFor = {
type: WaitForType.HtmlElement,
htmlQueryStr: "div.ProseMirror",
maxWaitTime: 20000,
};
PdfDocument.fromUrl("https://app.surferseo.com/drafts/s/V7VkcdfgFz-dpkldsfHDGFFYf4jjSvvjsdf", { renderOptions: options }).then(async (pdf) => {
return await pdf.saveAs("waitfor-htmlelement.pdf");
});WaitForType.HtmlElement stratejisi, standart bir CSS sorgu seçicisi kullanır. Renderer, maxWaitTime milisaniye geçene kadar veya öğe bulunana kadar (hangisi önce gelirse) öğenin varlığını kontrol eder.
Bir HTML Şablonundan PDF Nasıl Oluşturulur? {#html-sablondan-pdf}
Gerçek dünyadaki yaygın bir otomasyon model, bir veritabanı, API veya elektronik tablo gibi kaynaklardan verilerle, yer tutucu değerlerin yerine ortak bir HTML şablonundan bir grup PDF üretmek. IronPDF'nin replaceText yöntemindeki PdfDocument bunu doğrudan halleder.
Aşağıdaki örnek fatura şablonu (halka açık bir CodePen fatura şablonundan uyarlanmıştır), değiştirilebilir içerik için {COMPANY-NAME}, {FULL-NAME} ve {INVOICE-NUMBER} gibi küme parantezi yer tutucuları kullanır:
@@--CODE-52685--@@ ile kullanılacak bir örnek fatura şablonu, yer tutucu etiketleri ile. JavaScript kodu, her etiketi gerçek verilerle değiştirecek ve belge bir PDF olarak kaydedilmeden önce.
Aşağıdaki kod, şablonu yükler, her yer tutucuyu test verileri ile değiştirir ve sonucu PDF olarak kaydeder:
//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/html-template-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
/**
* Loads an HTML template from the file system as a PdfDocument.
*/
async function getTemplateHtml(fileLocation) {
return PdfDocument.fromHtml(fileLocation);
}
/**
* Saves a PdfDocument to the specified file path.
*/
async function generatePdf(pdf, location) {
return pdf.saveAs(location);
}
/**
* Replaces a named placeholder in the PdfDocument with a data value.
*/
async function addTemplateData(pdf, key, value) {
return pdf.replaceText(key, value);
}
// Path to the HTML invoice template
const template = "./sample-invoice.html";
// Load the template, fill in all placeholder values, then save the PDF
getTemplateHtml(template).then(async (doc) => {
await addTemplateData(doc, "{FULL-NAME}", "Lizbeth Presland");
await addTemplateData(doc, "{ADDRESS}", "678 Manitowish Alley, Portland, OG");
await addTemplateData(doc, "{PHONE-NUMBER}", "(763) 894-4345");
await addTemplateData(doc, "{INVOICE-NUMBER}", "787");
await addTemplateData(doc, "{INVOICE-DATE}", "August 28, 2023");
await addTemplateData(doc, "{AMOUNT-DUE}", "13,760.13");
await addTemplateData(doc, "{RECIPIENT}", "Celestyna Farmar");
await addTemplateData(doc, "{COMPANY-NAME}", "BrainBook");
await addTemplateData(doc, "{TOTAL}", "13,760.13");
await addTemplateData(doc, "{AMOUNT-PAID}", "0.00");
await addTemplateData(doc, "{BALANCE-DUE}", "13,760.13");
await addTemplateData(doc, "{ITEM}", "Training Sessions");
await addTemplateData(doc, "{DESCRIPTION}", "60 Minute instruction");
await addTemplateData(doc, "{RATE}", "3,440.03");
await addTemplateData(doc, "{QUANTITY}", "4");
await addTemplateData(doc, "{PRICE}", "13,760.13");
return doc;
}).then(async (doc) => await generatePdf(doc, "html-template-to-pdf.pdf"));//:path=/static-assets/ironpdf-nodejs/content-code-examples/tutorials/html-to-pdf/html-template-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
import './config.js'; // Import the configuration script
/**
* Loads an HTML template from the file system as a PdfDocument.
*/
async function getTemplateHtml(fileLocation) {
return PdfDocument.fromHtml(fileLocation);
}
/**
* Saves a PdfDocument to the specified file path.
*/
async function generatePdf(pdf, location) {
return pdf.saveAs(location);
}
/**
* Replaces a named placeholder in the PdfDocument with a data value.
*/
async function addTemplateData(pdf, key, value) {
return pdf.replaceText(key, value);
}
// Path to the HTML invoice template
const template = "./sample-invoice.html";
// Load the template, fill in all placeholder values, then save the PDF
getTemplateHtml(template).then(async (doc) => {
await addTemplateData(doc, "{FULL-NAME}", "Lizbeth Presland");
await addTemplateData(doc, "{ADDRESS}", "678 Manitowish Alley, Portland, OG");
await addTemplateData(doc, "{PHONE-NUMBER}", "(763) 894-4345");
await addTemplateData(doc, "{INVOICE-NUMBER}", "787");
await addTemplateData(doc, "{INVOICE-DATE}", "August 28, 2023");
await addTemplateData(doc, "{AMOUNT-DUE}", "13,760.13");
await addTemplateData(doc, "{RECIPIENT}", "Celestyna Farmar");
await addTemplateData(doc, "{COMPANY-NAME}", "BrainBook");
await addTemplateData(doc, "{TOTAL}", "13,760.13");
await addTemplateData(doc, "{AMOUNT-PAID}", "0.00");
await addTemplateData(doc, "{BALANCE-DUE}", "13,760.13");
await addTemplateData(doc, "{ITEM}", "Training Sessions");
await addTemplateData(doc, "{DESCRIPTION}", "60 Minute instruction");
await addTemplateData(doc, "{RATE}", "3,440.03");
await addTemplateData(doc, "{QUANTITY}", "4");
await addTemplateData(doc, "{PRICE}", "13,760.13");
return doc;
}).then(async (doc) => await generatePdf(doc, "html-template-to-pdf.pdf"));Yukarıdaki kod üç asenkron yardımcı fonksiyonu tanımlar:
getTemplateHtml:PdfDocumentnesnesinePdfDocument.fromHtmlkullanarak bir HTML dosyası yükler.addTemplateData: Yer tutucu anahtarı gerçek veri değeriyle değiştirmek içinPdfDocument.replaceText'yi çağırır.generatePdf: TamamlananPdfDocument'yi hedef dosya yoluna yazar.
Her replaceText çağrısı, bellek içi PDF temsilinde doğrudan çalışır, böylece belgeyi diskten yeniden yüklemeye gerek kalmadan birden fazla değiştirme işlemi zincirleme olarak gerçekleştirilebilir. Sonuç olarak, PDF tüm CSS stillerini, yazı tiplerini ve orijinal şablondan düzeni korur.
Yer tutucu değerleri gerçek verilerle değiştirildiğindeki tamamlanmış PDF faturası. Orijinal şablondan gelen CSS stilleri ve düzeni tam olarak korunur.
Bu yaklaşım, grup belge üretimi için iyi ölçeklenir. Her kayıt için bir kez getTemplateHtml'yi çağırarak her çıktı dosyası için yeni bir PdfDocument oluşturun, ardından generatePdf'yi çağırmadan önce o kaydın verileri için addTemplateData çağrılarını zincirleyin.
Bir Sonraki Adımlar Nelerdir? {#next-steps}
Bu eğitim, IronPDF for Node.js içindeki çekirdek HTML'den PDF'ye dönüşüm yöntemlerini ve en sık kullanılan işleme seçeneklerini kapsar. Aşağıdaki konular, burada öğrendiklerinizi daha özel alanlara genişletir.
- Node.js'de PDFleri Düzenleme ve Damgalama — Mevcut PDF belgelerine programlı olarak damgalar, açıklamalar ve metin düzenlemeleri uygulayın.
- Node.js'de PDFleri Birleştirme ve Bölme — Birden fazla PDF'yi tek bir belgeye birleştirin veya bir PDF'yi ayrı sayfalara ayırın.
- Node.js'de PDFlere Filigran Eklemek — Bir PDF'nin her sayfasına metin veya resim filigranlar uygulayın, hassas konumlandırma kontrolü ile.
- IronPDF Node.js API Referansı —
PdfDocument,ChromePdfRenderOptions,WaitFor,AffixFontsve dışa aktarılan diğer tüm sınıflar ve arayüzler için tam API'ye göz atın. - Ücretsiz Deneme Lisans Anahtarı Alın — Ücretsiz 30 günlük deneme lisansını etkinleştirerek filigran olmadan üretim kalitesinde PDF'ler oluşturun.
Sıkça Sorulan Sorular
Node.js'de HTML'yi PDF'ye nasıl dönüştürürsünüz?
IronPDF kütüphanesini kullanın. npm install @ironsoftware/ironpdf ile kurun, ardından bir HTML dizesi veya dosya yolu ile PdfDocument.fromHtml veya bir web adresi ile PdfDocument.fromUrl çağırın. Sonucu PdfDocument.saveAs ile kaydedin.
Node.js'de bir HTML dizisini PDF'ye nasıl dönüştürürsünüz?
PdfDocument.fromHtml'i HTML dizisi argüman olarak kullanarak çağırın. Bu yöntem, PdfDocument örneğine çözümlenen bir Promise döndürür. PDF'yi diske yazmak için sonuç üzerinde saveAs zincirini kullanın.
Node.js'de yerel bir HTML dosyasını PDF'ye nasıl dönüştürürsünüz?
Bir HTML dizisi yerine geçerli bir dosya sistemi yolunu PdfDocument.fromHtml'e aktarın. IronPDF, bir tarayıcının dosyayı yüklerken yapacağı gibi göreceli CSS, resim ve betik yollarını çözümler.
Node.js'de bir URL'yi PDF'ye nasıl dönüştürürsünüz?
Hedef URL ile PdfDocument.fromUrl'ü çağırın. IronPDF, sayfayı Chrome işleme motoru ile işler ve piksel mükemmel bir PDF üretir. Hedef URL, IronPDF'yi çalıştıran hosttan halka açık olarak erişilebilir olmalıdır.
Node.js'de bir PDF'ye başlıklar ve alt bilgiler nasıl eklenir?
Basit metin başlıkları ve alt bilgiler için ChromePdfRenderOptions nesnesinde textHeader ve textFooter özelliklerini ayarlayın. Daha zengin düzenler için htmlHeader ve htmlFooter'i ham HTML parçalarıyla kullanın. Seçenekler nesnesini herhangi bir dönüştürme yönteminin renderOptions parametresine aktarın.
IronPDF for Node.js'de sayfa boyutunu ve yönünü nasıl değiştirirsiniz?
options.paperSize'ı PaperSize enum'undan bir değere (örneğin PaperSize.A4 veya PaperSize.Letter) ve options.paperOrientation'ı PdfPaperOrientation.Portrait veya PdfPaperOrientation.Landscape olarak ayarlayın. Ayarlanan seçenekleri dönüştürme yöntemine aktarın.
PDF'ye dönüştürürken dinamik JavaScript içeriğini nasıl ele alırsınız?
ChromePdfRenderOptions üzerindeki waitFor özelliğini kullanın. type'ı WaitForType.RenderDelay olarak ayarlayın ve milisaniye cinsinden bir gecikme sağlayın veya type'ı WaitForType.HtmlElement olarak ayarlayın ve bir CSS sorgu seçici sağlayın. IronPDF, koşul karşılanıncaya kadar işlemi duraklatacaktır.
ZIP arşivindeki bir HTML dosyasını PDF'ye nasıl dönüştürürsünüz?
ZIP dosyasının yolunu ilk argüman ve ikinci olarak bir seçenekler nesnesi ile PdfDocument.fromZip'ü çağırın. Arşiv içindeki dönüştürülmesi gereken HTML dosyasının adını mainHtmlFile özelliğine ayarlayın.
Oluşturulan PDF'lerden IronPDF filigranı nasıl kaldırılır?
Herhangi bir dönüştürme yöntemini çağırmadan önce küresel yapılandırmaya geçerli bir lisans anahtarı uygulayın. IronPdfGlobalConfig.getConfig() ile yapılandırma nesnesini alın ve config.licenseKey'i anahtarınıza ayarlayın. Ücretsiz deneme lisansı ironpdf.com'da mevcuttur.
Node.js'de bir HTML şablonundan nasıl PDF oluşturabilirsiniz?
Şablonu PdfDocument.fromHtml ile yükleyin, ardından şablondaki her yer tutucu için PdfDocument.replaceText'i yer tutucu dizgesi ve onun yerine geçecek değerle çağırın. Tüm ikameler tamamlandıktan sonra sonuç PDF yazmak için saveAs'ı çağırın.





