Jak tworzyć pliki PDF w Node.js

This article was translated from English: Does it need improvement?
Translated
View the article in English

Tworzenie plików PDF programowo w Node.js wymaga biblioteki, która dokładnie obsługuje renderowanie HTML, wspiera nowoczesne CSS i integruje się czysto z asynchronicznymi wzorcami Node. IronPDF wykorzystuje silnik renderujący oparty na Chromie do konwersji treści HTML na PDF-y dopasowane do wydruku Chrome, obsługując pełne CSS, wbudowany JavaScript i elastyczne układy bezpośrednio.

Ten przewodnik obejmuje cały proces pracy: instalację, generowanie PDF z ciągów HTML, plików HTML i URL-ów, konfigurowanie opcji wyjścia i stosowanie funkcji dla przedsiębiorstw, takich jak nagłówki, stopki, podpisy cyfrowe i szyfrowanie.

Szybki start: Stwórz PDF w Node.js

  1. Zainstaluj IronPDF za pomocą npm: npm install @ironsoftware/ironpdf
  2. Zaimportuj PdfDocument z @ironsoftware/ironpdf
  3. Wywołaj PdfDocument.fromHtml() z treścią HTML
  4. Wywołaj .saveAs(), aby zapisać plik PDF na dysku
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/quickstart.js
import { PdfDocument } from "@ironsoftware/ironpdf";

const pdf = await PdfDocument.fromHtml("<h1>Hello, PDF!</h1><p>Generated with IronPDF.</p>");
await pdf.saveAs("output.pdf");

Skonfiguruj IronPdfEngine dla swojej platformy przed uruchomieniem w środowisku produkcyjnym. Zobacz przewodnik po instalacji IronPdfEngine dla Windows, Linux, macOS i Docker.

Jak zainstalować IronPDF for Node.js?

Zainstaluj pakiet @ironsoftware/ironpdf za pomocą npm. Pakiet działa z Node.js 12.0 lub nowszym i obsługuje formaty modułów ESM i CommonJS.

//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdf
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdf
SHELL

IronPDF dla Node.js jest zależny od pliku binarnego IronPDF Engine, który obsługuje renderowanie oparte na Chromium. Silnik pobierany jest automatycznie przy pierwszym uruchomieniu, ale można wcześniej zainstalować pakiet specyficzny dla platformy, aby uniknąć pobierania w czasie wykonania. Jest to przydatne w ograniczonych środowiskach sieciowych lub pipeline'ach CI opartych na Dockerze:

Pakiety platformowe IronPDF Engine do wcześniejszej instalacji w środowiskach offline lub z ograniczeniami
PlatformaPakiet
Windows x64@ironsoftware/IronPDF-engine-Windows-x64
Linux x64@ironsoftware/IronPDF-engine-linux-x64
macOS x64@ironsoftware/IronPDF-engine-macos-x64
macOS ARM@ironsoftware/IronPDF-engine-macos-arm64

Zwróć uwagęKlucz licencyjny usuwa znak wodny z generowanych PDF. Zastosuj to przed pierwszym wywołaniem PdfDocument, ustawiając IronPdfGlobalConfig.setConfig({ licenseKey: "YOUR-KEY" }). Przestrzegaj pełnych instrukcji konfiguracji klucza licencyjnego.

Jakie są wymagania systemówe dla IronPDF?

IronPDF dla Node.js działa na Node.js 12.0 lub nowszym w środowiskach Windows, Linux, macOS i Docker. Biblioteka obsługuje zarówno architektury x64, jak i ARM64, co czyni ją odpowiednią do rozwoju lokalnego i wdrożeń kontenerowych. Dla środowisk chmurowych IronPDF obsługuje także połączenie z zdalnym IronPDF Engine zamiast lokalnego uruchamiania silnika.


Jak Utworzyć PDF z HTML w Node.js?

Użyj PdfDocument.fromHtml(), aby wygenerować plik PDF z ciągu znaków HTML. Metoda akceptuje dowolny poprawny kod HTML, w tym wbudowane bloki <style>, czcionki zewnętrzne ładowane przez CDN oraz systemy układów, takie jak CSS Grid lub Flexbox. Renderer Chromium rozwiązuje wszystkie zasoby przed wygenerowaniem PDF.

//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/html-string-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";

const htmlContent = `
  <!DOCTYPE html>
  <html>
  <head>
    <style>
      body { font-family: Arial, sans-serif; margin: 0; padding: 0; }
      .header { background: #2b4c8c; color: white; padding: 24px 32px; }
      .header h1 { margin: 0; font-size: 22px; }
      .body { padding: 32px; }
      table { width: 100%; border-collapse: collapse; margin-top: 16px; }
      th { background: #f0f4fb; text-align: left; padding: 8px 12px; }
      td { padding: 8px 12px; border-bottom: 1px solid #e0e0e0; }
    </style>
  </head>
  <body>
    <div class="header"><h1>Invoice #INV-2025-0042</h1></div>
    <div class="body">
      <p>Date: ${new Date().toLocaleDateString()}</p>
      <table>
        <tr><th>Item</th><th>Qty</th><th>Unit Price</th><th>Total</th></tr>
        <tr><td>IronPDF Enterprise License</td><td>1</td><td>$499.00</td><td>$499.00</td></tr>
        <tr><td>Priority Support (1 year)</td><td>1</td><td>$199.00</td><td>$199.00</td></tr>
      </table>
      <p style="text-align:right; margin-top:16px;"><strong>Total: $698.00</strong></p>
    </div>
  </body>
  </html>`;

// Generate the PDF from the HTML string
const pdf = await PdfDocument.fromHtml(htmlContent);
await pdf.saveAs("invoice.pdf");

PdfDocument.fromHtml() zwraca instancję PdfDocument. Wywołaj saveAs() z żądaną ścieżką wyjściową, aby zapisać plik. Metoda jest asynchroniczna, więc użyj await lub połącz ją z procedurą obsługi .then(). Silnik Chromium obsługuje ładowanie czcionek, zewnętrznych arkuszy stylów i rozwiązywanie zasobów przed uchwyceniem wyniku. Dla więcej wzorców, zobacz przykład konwersji ciągu HTML do PDF.

Jak Utworzyć PDF z Pliku HTML?

Załaduj istniejący plik .html z dysku za pomocą PdfDocument.fromFile(). To podejście działa dobrze dla zszablonizowanych dokumentów, gdzie HTML jest utrzymywany oddzielnie od logiki aplikacji.

//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/html-file-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";

// Load an HTML file and render it as a PDF
const pdf = await PdfDocument.fromFile("./templates/report-template.html");
await pdf.saveAs("./output/report.pdf");

Renderer rozwiązuje względne ścieżki zasobów z katalogu pliku HTML, więc lokalne odniesienia do CSS i obrazów działają bez dodatkowej konfiguracji. Zobacz przykład konwersji pliku HTML do PDF dla dodatkowych opcji, w tym jak nadpisać podstawowy URL do rozwiązywania zasobów.

Jak Wygenerować PDF z URL?

Użyj PdfDocument.fromUrl(), aby wyrenderować aktywną stronę internetową jako plik PDF. Renderer ładuje stronę jako pełną sesję przeglądarki, wykonując JavaScript, stosując CSS i czekając na dynamiczną treść przed uchwyceniem wyniku.

//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/url-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";

// Render a live webpage to PDF
const pdf = await PdfDocument.fromUrl("https://ironpdf.com/nodejs/");
await pdf.saveAs("ironpdf-homepage.pdf");

W przypadku stron, które ładują zawartość asynchronicznie za pomocą JavaScript, należy połączyć to z opcją renderDelay (w milisekundach), aby zapewnić dodatkowy czas przed przechwyceniem. Przykład konwersji URL do PDF pokazuje konfigurację opóźnienia i nagłówki uwierzytelnienia.


Jak Skonfigurować Ustawienia Wyjściowe PDF?

Przekaż obiekt konfiguracyjny jako drugi argument do PdfDocument.fromHtml(), PdfDocument.fromFile() lub PdfDocument.fromUrl(). Obiekt konfiguracji akceptuje rozmiar papieru, marginesy, orientację i opcje renderowania.

//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/pdf-settings.js
import { PdfDocument, PdfPaperSize } from "@ironsoftware/ironpdf";

const config = {
    paperSize: PdfPaperSize.A4,
    marginTop: 25,
    marginBottom: 25,
    marginLeft: 20,
    marginRight: 20,
    landscape: false,
    printBackground: true,
};

const pdf = await PdfDocument.fromHtml("<h1>Configured PDF</h1>", config);
await pdf.saveAs("configured-output.pdf");

Kluczowe opcje konfiguracji obejmują:

  • paperSize: akceptuje wartości wyliczeniowe PdfPaperSize (A4, Letter, Legal i rozmiary niestandardowe)
  • landscape: ustaw true dla orientacji strony poziomej
  • printBackground: uwzględnij kolory tła CSS i obrazy
  • marginTop/Bottom/Left/Right: marginesy strony w milimetrach
  • renderDelay: milisekundy oczekiwania przed przechwyceniem w przypadku stron z dużą ilością kodu JavaScript

Jak Dodać Nagłówki i Stopki do PDF?

Dodaj nagłówki i stopki, podając właściwości htmlHeader i htmlFooter w obiekcie konfiguracyjnym. Oba akceptują pełne ciągi HTML, umożliwiając stylizowaną treść z numerami stron, datami i tekstem dynamicznym.

//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/headers-footers.js
import { PdfDocument } from "@ironsoftware/ironpdf";

const config = {
    htmlHeader: {
        htmlFragment: "<div style='text-align:center; font-size:12px; color:#666;'>Quarterly Report - Confidential</div>",
        dividerLine: true,
    },
    htmlFooter: {
        htmlFragment: "<div style='text-align:right; font-size:10px;'>Page {page} of {total-pages}</div>",
        dividerLine: true,
    },
};

const pdf = await PdfDocument.fromHtml("<h1>Q3 Financial Summary</h1><p>See attached tables.</p>", config);
await pdf.saveAs("report-with-headers.pdf");

W kodzie HTML stopki należy użyć tokenów {page} i {total-pages}; IronPDF zastępuje odpowiednie wartości w momencie renderowania. Dla więcej wzorców nagłówków i stopek, w tym HTML nagłówki i stopki oraz zaawansowane techniki nagłówków, zobacz podlinkowane przykłady.


Jak Dodać Zabezpieczenia i Metadane do PDF?

Zastosuj ochronę hasłem i szyfrowanie do wygenerowanego pliku PDF, korzystając z metod bezpieczeństwa PdfDocument. Biblioteka obsługuje zarówno hasła właściciela, jak i użytkownika, z drobiazgową kontrolą uprawnień do drukowania, kopiowania i edytowania.

//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/security.js
import { PdfDocument } from "@ironsoftware/ironpdf";

const pdf = await PdfDocument.fromHtml("<h1>Confidential Document</h1>");

// Apply password protection with granular permissions
await pdf.securePdf({
    userPassword: "view-password",
    ownerPassword: "admin-password",
    allowUserAnnotations: false,
    allowUserPrinting: true,
    allowUserCopyPasteContent: false,
});

await pdf.saveAs("secured-document.pdf");

Szyfrowanie i deszyfrowanie używają domyślnie szyfrowania AES 256-bitowego przy zastosowaniu haseł. Dla procesów uwierzytelniania dokumentów IronPDF obsługuje także podpisy cyfrowe przy użyciu certyfikatów X.509.

PoradyW przypadku dokumentów wymagających zgodności z długoterminowymi wymogami archiwizacji należy użyć PdfDocument.fromHtml(), a następnie metody konwersji do formatu PDF/A. IronPDF obsługuje zgodność PDF/A i standardy dostępności PDF/UA.


Jak Scalac i Manipulowac istniejace PDFy?

PdfDocument udostępnia metody łączenia, dzielenia i modyfikowania istniejących plików PDF. Załaduj istniejący plik PDF za pomocą PdfDocument.fromFile() i użyj metod manipulacji, aby dodawać lub usuwać strony, stemplować zawartość lub zastępować tekst.

//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/merge-pdfs.js
import { PdfDocument } from "@ironsoftware/ironpdf";

// Merge two PDF files into one
const merged = await PdfDocument.mergePdf([
    await PdfDocument.fromFile("./report-part1.pdf"),
    await PdfDocument.fromFile("./report-part2.pdf"),
]);

await merged.saveAs("./complete-report.pdf");

PdfDocument.mergePdf() przyjmuje tablicę instancji PdfDocument i zwraca pojedynczy, scalony dokument. Kolejność stron jest zgodna z kolejnością tablicy, więc wynik zachowuje sekwencję plików wejściowych.

Inne powszechne operacje manipulacji:

Dla scenariuszy o dużej ilości danych, generowanie PDF w wielu wątkach pozwala przetwarzać wiele dokumentów równolegle. Kompresja PDF zmniejsza rozmiary plików do przechowywania i transmisji.


Jak Generowac PDFy dla Złożonych Treści jak Wykresy i Strony Angular?

IronPDF renderuje strony używając pełnej sesji przeglądarki Chromium, co oznacza, że biblioteki JavaScript, które tworzą wykresy, grafy lub wizualizacje danych, renderują się poprawnie, w tym JavaScript biblioteki wykresów. Aplikacje jednostronicowe zbudowane z użyciem frameworków takich jak Angular także konwertują się łatwo, używając przykładu Angular do PDF.

Dla dokumentów o dużej zawartości Unicode lub wyjściu wielojęzycznym IronPDF obsługuje Unicode i zestawy znaków międzynarodowych bez dodatkowej konfiguracji. Przykład integracji z Google Fonts pokazuje, jak ładować czcionki internetowe w renderowanym HTML dla spójnej typografii w wyniku PDF.

Zwróć uwagęRenderer Chromium IronPDF wykonuje JavaScript przed uchwyceniem PDF. Jeśli biblioteka wykresów lub aplikacja SPA wymaga dodatkowego czasu na renderowanie danych po załadowaniu DOM, ustaw renderDelay w milisekundach, aby dać stronie czas na pełne renderowanie.


Jakie Są Następne Kroki Tworzenia PDF w Node.js?

Ten przewodnik obejmował podstawowy przepływ pracy w IronPDF: instalację biblioteki, generowanie PDF z ciągów HTML, plików i URL, konfigurację ustawień wyjściowych, dodawanie nagłówków i stopek, stosowanie zabezpieczeń oraz manipulację istniejącymi PDFami.

Aby kontynuować, zapoznaj się z kompletnym samouczkiem dotyczącym konwersji HTML do PDF, aby uzyskać bardziej szczegółowe omówienie opcji renderowania, lub przejrzyj Dokumentację API, aby uzyskać pełną listę metod i właściwości konfiguracyjnych PdfDocument.

Rozpocznij bezpłatny okres próbny aby generować PDFy bez znaków wodnych, lub zobacz opcje licencyjne dla wdrożeń produkcyjnych.

Często Zadawane Pytania

Jaki jest najprostszy sposób tworzenia plików PDF w Node.js?

Zainstaluj IronPDF za pomocą npm install @ironsoftware/ironpdf, następnie wywołaj PdfDocument.fromHtml() z ciągiem HTML i zapisz wynik używając saveAs(). Biblioteka automatycznie obsługuje całe renderowanie.

Jak zainstalować IronPDF for Node.js?

Uruchom npm install @ironsoftware/ironpdf w swoim katalogu projektu. Plik binarny IronPDF Engine pobiera się automatycznie przy pierwszym użyciu. Dla środowisk offline lub CI, zainstaluj oddzielnie specyficzny dla platformy pakiet silnika, taki jak @ironsoftware/ironpdf-engine-linux-x64.

Czy mogę konwertować HTML na PDF z zachowaniem stylów CSS i formatowania?

Tak. IronPDF używa silnika renderowania bazującego na Chromie, który zachowuje wszystkie style CSS, zewnętrzne czcionki oraz wykonywanie JavaScriptu podczas konwersji HTML na PDF. Wyjście odpowiada zachowaniu podglądu druku w Chromie.

Jakie funkcje PDF są dostępne poza podstawową konwersją HTML?

IronPDF obsługuje podpisy cyfrowe, szyfrowanie AES 256-bitowe, ochronę hasłem z precyzyjnymi uprawnieniami, niestandardowe nagłówki i stopki z tokenami numerów stron, łączenie PDF, usuwanie stron, stemplowanie HTML, ekstrakcję tekstu, zgodność z PDF/A oraz generowanie wielowątkowe.

Jak utworzyć PDF z pliku HTML na dysku?

Użyj PdfDocument.fromFile('./path/to/template.html'). Renderer rozwiązuje ścieżki względne zasobów z katalogu pliku HTML, więc lokalne odniesienia CSS i obrazów działają bez dodatkowej konfiguracji.

Czy mogę wyciągnąć tekst z istniejących plików PDF używając IronPDF?

Tak. Załaduj istniejący PDF za pomocą PdfDocument.fromFile() i użyj metod ekstrakcji tekstu, aby przeczytać zawartość z dowolnej strony. IronPDF obsługuje zarówno tworzenie nowych PDF, jak i przetwarzanie istniejących dokumentów.

Czy IronPDF obsługuje wykonywanie JavaScriptu podczas renderowania HTML?

Tak. Renderer Chrome wykonuje JavaScript przed uchwyceniem PDF. Dla stron, które ładują zawartość asynchronicznie, ustaw opcję renderDelay w milisekundach, aby dać stronie dodatkowy czas przed uchwyceniem.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu?
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.