Wie druckt man PDF-Dateien mit Node.js

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

Das Drucken einer PDF-Datei in Node.js erfordert das Senden des Dokuments an den Druckspooler des Betriebssystems. Das pdf-to-printer npm-Paket abstrahiert diesen Systemaufruf in eine promise-basierte API, die unter Windows, macOS und Linux funktioniert und es ermöglicht, einen Druckauftrag in einem einzigen Methodenaufruf in die Warteschlange zu stellen. Für die PDF-Erzeugung vor dem Drucken — Konvertierung von HTML, URLs oder Vorlagen in druckbereite Dokumente — passt IronPDF for Node.js natürlich zu diesem Workflow.

Schnellstart: Drucken einer PDF-Datei mit Node.js

//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/quickstart.js
// 1. Install: npm install pdf-to-printer
const printer = require('pdf-to-printer');

// 2. Print the PDF file (returns a Promise)
printer
  .print('./invoice.pdf')
  .then(() => console.log('Print job queued successfully.'))
  .catch((err) => console.error('Print failed:', err));
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/quickstart.js
// 1. Install: npm install pdf-to-printer
const printer = require('pdf-to-printer');

// 2. Print the PDF file (returns a Promise)
printer
  .print('./invoice.pdf')
  .then(() => console.log('Print job queued successfully.'))
  .catch((err) => console.error('Print failed:', err));
JAVASCRIPT

Was sind die Voraussetzungen zum Drucken von PDFs in Node.js?

Node.js 14.x oder neuer und npm werden benötigt, bevor pdf-to-printer verwendet werden kann. Das Paket stützt sich auf native OS-Druckbefehle anstelle eines gebündelten Druckmotors, sodass Druckertreiber bereits auf dem Zielrechner konfiguriert sein müssen.

Auf Windows ruft das Paket SumatraPDF über PowerShell auf. Stellen Sie sicher, dass die Ausführung von PowerShell-Skripten nicht durch Ihre Systemrichtlinie blockiert wird. Unter macOS und Linux delegiert das Paket an den lp Befehl, der Teil des CUPS-Drucksystems ist. Bestätigen Sie, dass CUPS installiert ist und mindestens ein Drucker mit lpstat -p registriert ist.

Hinweis:Node.js 18.x LTS wird für Produktionslasten empfohlen. Das pdf-to-printer Paket unterstützt alle aktiven Node.js LTS-Versionen.

Wie richtet man ein Node.js-Projekt zum Drucken von PDF ein?

Initialisieren Sie ein neues Projekt, installieren Sie das Paket und erstellen Sie eine minimale Verzeichnisstruktur, bevor Sie irgendeine Drucklogik schreiben.

//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/setup.sh
mkdir pdf-printer
cd pdf-printer
npm init -y
npm install pdf-to-printer
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/setup.sh
mkdir pdf-printer
cd pdf-printer
npm init -y
npm install pdf-to-printer
SHELL

Nach der Installation erstellen Sie eine index.js Datei für Ihre Drucklogik und einen pdfs/ Ordner, um die Dokumente zu halten, die Sie drucken möchten. Eine separate config.js für Druckereinstellungen hält Druckernamen aus Ihrer Kernlogik heraus — ein nützliches Muster für Multi-Umgebungsbereitstellungen, bei denen der Ziel-Drucker sich zwischen Entwicklung und Produktion unterscheidet.

Das Modul verwendet native Bindungen, die zur Laufzeit aufgelöst werden, sodass kein Kompilierungsschritt erforderlich ist. Das node_modules/pdf-to-printer/dist/ Verzeichnis wird vorgefertigte Binärdateien für die erkannte Plattform enthalten.

Wie druckt man eine PDF-Datei mit grundlegender Verwendung?

Übergeben Sie den absoluten oder relativen Dateipfad an printer.print(). Die Methode stellt das Dokument mit dem Standarddrucker des Systems in die Warteschlange und löst das Promise auf, sobald der Auftrag vom Spooler akzeptiert wird — nicht, wenn das physische Drucken abgeschlossen ist.

//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/basic-print.js
const fs = require('fs').promises;
const printer = require('pdf-to-printer');

async function printPDF(filePath) {
  // Verify the file exists before sending to printer
  await fs.access(filePath);

  const stats = await fs.stat(filePath);
  if (stats.size === 0) {
    throw new Error('PDF file is empty');
  }

  await printer.print(filePath);
  console.log(`Print job queued: ${filePath}`);
}

printPDF('./pdfs/invoice.pdf').catch((err) => {
  if (err.code === 'ENOENT') {
    console.error('File not found:', err.path);
  } else {
    console.error('Print error:', err.message);
  }
});
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/basic-print.js
const fs = require('fs').promises;
const printer = require('pdf-to-printer');

async function printPDF(filePath) {
  // Verify the file exists before sending to printer
  await fs.access(filePath);

  const stats = await fs.stat(filePath);
  if (stats.size === 0) {
    throw new Error('PDF file is empty');
  }

  await printer.print(filePath);
  console.log(`Print job queued: ${filePath}`);
}

printPDF('./pdfs/invoice.pdf').catch((err) => {
  if (err.code === 'ENOENT') {
    console.error('File not found:', err.path);
  } else {
    console.error('Print error:', err.message);
  }
});
JAVASCRIPT

Das Vorhandensein von Dateien vor dem Aufruf von printer.print() zu prüfen, verhindert stille Fehlschläge, wenn ein Pfad falsch ist oder eine Datei verschoben wurde. Der fs.access() Aufruf löst ENOENT aus, wenn der Pfad nicht aufgelöst werden kann, und gibt Ihnen einen beschreibenden Fehler statt einer generischen Spooler-Ausnahme. Häufige Fehlerursachen sind falsche relative Pfade, fehlende Druckertreiber und offline Druckerstatus.

WichtigDas Promise wird aufgelöst, wenn der Druckauftrag vom OS-Spooler akzeptiert wird, nicht wenn das Dokument fertig gedruckt ist. Für Prüfungszwecke notieren Sie den Zeitpunkt bei Auflösung anstatt anzunehmen, dass das Dokument den Drucker verlassen hat.

Wie erstellt man eine PDF, bevor man druckt?

Wenn das Dokument noch nicht als Datei existiert, erzeugen Sie es mit IronPDF for Node.js, bevor Sie printer.print() aufrufen. IronPDF rendert HTML, URLs und Vorlagenstrings zu druckfertigen PDF-Dateien, ohne dass eine separate Browserinstanz erforderlich ist.

//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/generate-and-print.js
const { PdfDocument } = require('@ironsoftware/ironpdf');
const printer = require('pdf-to-printer');

async function generateAndPrint(htmlContent, outputPath) {
  // Render HTML to a PDF file using IronPDF
  const pdf = await PdfDocument.fromHtml(htmlContent);
  await pdf.saveAs(outputPath);

  // Send the generated file to the default printer
  await printer.print(outputPath);
  console.log(`Generated and printed: ${outputPath}`);
}

generateAndPrint('<h1>Monthly Report</h1><p>Sales data for May 2026.</p>', './pdfs/report.pdf');
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/generate-and-print.js
const { PdfDocument } = require('@ironsoftware/ironpdf');
const printer = require('pdf-to-printer');

async function generateAndPrint(htmlContent, outputPath) {
  // Render HTML to a PDF file using IronPDF
  const pdf = await PdfDocument.fromHtml(htmlContent);
  await pdf.saveAs(outputPath);

  // Send the generated file to the default printer
  await printer.print(outputPath);
  console.log(`Generated and printed: ${outputPath}`);
}

generateAndPrint('<h1>Monthly Report</h1><p>Sales data for May 2026.</p>', './pdfs/report.pdf');
JAVASCRIPT

Dieses Muster ist üblich in Berichtsprozessen, wo PDF-Inhalte zur Laufzeit aus Datenbankeinträgen oder API-Antworten zusammengestellt werden. Sehen Sie das HTML-zu-PDF-Konvertierungs-Tutorial für eine vollständige Anleitung zu den Renderoptionen von IronPDF, einschließlich CSS-Unterstützung und Kopf-/Fußzeilen-Injektion.

Wie lege ich benutzerdefinierte Druckeroptionen fest?

Übergeben Sie ein printerT>Options Objekt als zweites Argument an printer.print(), um einen bestimmten Drucker zu zielen, die Kopienanzahl einzustellen, Seitenbereiche auszuwählen oder Seitenanpassung zu steuern. Der Druckername muss exakt mit dem von printer.getPrinters() zurückgegebenen Wert übereinstimmen.

//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/custom-options.js
const printer = require('pdf-to-printer');

async function printWithT>Options(filePath) {
  // List available printers to find the correct name
  const printers = await printer.getPrinters();
  printers.forEach((p) => {
    console.log(`${p.name} -- default: ${p.isDefault}`);
  });

  const options = {
    printer: 'HP LaserJet Pro',  // Exact name from getPrinters()
    copies: 2,                   // Number of copies
    pages: '1-3,5',              // Pages to print (optional)
    scale: 'fit',                // 'fit' | 'noscale' | 'shrink'
    orientation: 'portrait',     // 'portrait' | 'landscape'
  };

  await printer.print(filePath, options);
  console.log(`Printed ${options.copies} copies to "${options.printer}"`);
}

printWithT>Options('./pdfs/shipping-label.pdf').catch(console.error);
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/custom-options.js
const printer = require('pdf-to-printer');

async function printWithT>Options(filePath) {
  // List available printers to find the correct name
  const printers = await printer.getPrinters();
  printers.forEach((p) => {
    console.log(`${p.name} -- default: ${p.isDefault}`);
  });

  const options = {
    printer: 'HP LaserJet Pro',  // Exact name from getPrinters()
    copies: 2,                   // Number of copies
    pages: '1-3,5',              // Pages to print (optional)
    scale: 'fit',                // 'fit' | 'noscale' | 'shrink'
    orientation: 'portrait',     // 'portrait' | 'landscape'
  };

  await printer.print(filePath, options);
  console.log(`Printed ${options.copies} copies to "${options.printer}"`);
}

printWithT>Options('./pdfs/shipping-label.pdf').catch(console.error);
JAVASCRIPT

Indem Sie getPrinters() vor print() aufrufen, erreichen Sie zwei Zwecke: Es wird bestätigt, dass der Drucker online und erreichbar ist, und Sie erhalten den autoritativen Namen, den das Betriebssystem verwendet, um Druckaufträge zu leiten. Druckernamen enthalten oft Versionsnummern oder Netzwerksuffixe, die sich von den im System gezeigten Namen unterscheiden.

TippsUnter Windows gibt getPrinters() die Druckerliste aus dem Registry zurück. Auf macOS/Linux fragt es CUPS ab. Das isDefault Flag identifiziert den Drucker, der Aufträge empfängt, wenn kein Druckername angegeben ist.

Welche Druckeroptionen können konfiguriert werden?

Das printerT>Options Objekt unterstützt die folgenden Felder:

pdf-to-printer option properties
T>Option Typ Beschreibung Beispielwert
Drucker string Exakter Druckername, wie er von getPrinters() zurückgegeben wird 'HP LaserJet Pro'
Kopien number Anzahl der zu druckenden Kopien T>2
Seiten string Seitenbereich-String T>'1-3,5'
T>scale string Seitenskalierungsmodus 'fit', 'noscale', 'shrink'
Ausrichtung string Seitenorientierungsüberschreibung 'portrait', 'landscape'

Für Dokumente, die benutzerdefinierte Papierformate oder eine bestimmte Seitenorientierung benötigen, die während der PDF-Erstellung anstelle der Druckzeit angewendet werden, konfigurieren Sie diese T>Optionen im IronPDF-Rendering-Schritt, bevor Sie die Datei speichern.

Icon Quote related to Welche Druckeroptionen können konfiguriert werden?

Meine Lieblingsbibliothek dieser Art ist IronPDF. Es ermöglicht eine schnelle und effiziente Bearbeitung von PDF-Dateien. Es verfügt auch über viele wertvolle Funktionen, wie das Exportieren in das PDF/A-Format und das digitale Signieren von PDF-Dokumenten.

Milan Jovanovic related to Welche Druckeroptionen können konfiguriert werden?

Milan Jovanovic

Microsoft MVP

Fallstudie ansehen
Icon Quote related to Welche Druckeroptionen können konfiguriert werden?

IronOCR bedeutet, dass wir jährlich 40.000 $ durch manuelle Verarbeitung einsparen können, während die Produktivität gesteigert wird und Ressourcen für wichtige Aufgaben freigesetzt werden. Ich würde es sehr empfehlen.

Brent Matzelle related to Welche Druckeroptionen können konfiguriert werden?

Brent Matzelle

Technischer Leiter, OPYN

Fallstudie ansehen
Icon Quote related to Welche Druckeroptionen können konfiguriert werden?

Die Iron Suite spielt eine entscheidende Rolle in unseren Operationen. Diese Werkzeuge erhöhen die Effizienz im gesamten Unternehmen, einschließlich der Erstellung von Grundrissen und der Verbesserung des Bestandsmanagements.

David Jones related to Welche Druckeroptionen können konfiguriert werden?

David Jones

Leitender Software-Ingenieur, Agorus Build

Fallstudie ansehen

Wie kann ich Batch-Druck in Node.js implementieren?

Verarbeiten Sie einen Ordner mit PDF-Dateien oder eine dynamisch generierte Liste durch das Iterieren eines Arrays und rufen Sie printer.print() für jede Datei auf. Die Verwendung von for...of zusammen mit await hält Aufträge sequenziell, was verhindert, dass der Druckspooler mit gleichzeitigen Anfragen überladen wird.

//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/batch-print.js
const printer = require('pdf-to-printer');
const fs = require('fs').promises;
const path = require('path');

class BatchPrinter {
  constructor(printerName = null) {
    this.printerName = printerName;
    this.queue = [];
  }

  async addFiles(filePaths) {
    for (const filePath of filePaths) {
      try {
        await fs.access(filePath);
        this.queue.push(filePath);
      } catch {
        console.warn(`Skipped (not found): ${filePath}`);
      }
    }
  }

  async printAll(options = {}) {
    const results = { successful: 0, failed: 0, errors: [] };

    for (const filePath of this.queue) {
      try {
        const printT>Options = {
          ...options,
          ...(this.printerName && { printer: this.printerName }),
        };
        await printer.print(filePath, printT>Options);
        results.successful++;
        console.log(`Printed: ${path.basename(filePath)}`);
      } catch (err) {
        results.failed++;
        results.errors.push({ file: filePath, error: err.message });
      }
    }

    this.queue = [];
    return results;
  }
}

// Usage: print monthly reports to a specific printer
(async () => {
  const batch = new BatchPrinter('Office Printer A3');

  await batch.addFiles([
    './reports/january.pdf',
    './reports/february.pdf',
    './reports/march.pdf',
  ]);

  const results = await batch.printAll({ copies: 1 });
  console.log(`Done -- ${results.successful} printed, ${results.failed} failed.`);
})();
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/batch-print.js
const printer = require('pdf-to-printer');
const fs = require('fs').promises;
const path = require('path');

class BatchPrinter {
  constructor(printerName = null) {
    this.printerName = printerName;
    this.queue = [];
  }

  async addFiles(filePaths) {
    for (const filePath of filePaths) {
      try {
        await fs.access(filePath);
        this.queue.push(filePath);
      } catch {
        console.warn(`Skipped (not found): ${filePath}`);
      }
    }
  }

  async printAll(options = {}) {
    const results = { successful: 0, failed: 0, errors: [] };

    for (const filePath of this.queue) {
      try {
        const printT>Options = {
          ...options,
          ...(this.printerName && { printer: this.printerName }),
        };
        await printer.print(filePath, printT>Options);
        results.successful++;
        console.log(`Printed: ${path.basename(filePath)}`);
      } catch (err) {
        results.failed++;
        results.errors.push({ file: filePath, error: err.message });
      }
    }

    this.queue = [];
    return results;
  }
}

// Usage: print monthly reports to a specific printer
(async () => {
  const batch = new BatchPrinter('Office Printer A3');

  await batch.addFiles([
    './reports/january.pdf',
    './reports/february.pdf',
    './reports/march.pdf',
  ]);

  const results = await batch.printAll({ copies: 1 });
  console.log(`Done -- ${results.successful} printed, ${results.failed} failed.`);
})();
JAVASCRIPT

Die BatchPrinter Klasse trennt Validierung von Ausführung. Dateien, die nicht existieren, werden während addFiles() übersprungen, damit eine einzelne fehlende Datei nicht das gesamte Batch abbricht. Die printAll() Methode zeichnet pro Datei Fehler auf und gibt eine Zusammenfassung zurück, die protokolliert oder an einen Überwachungsdienst weitergeleitet werden kann.

Für dynamisch generierte Berichte kombinieren Sie dieses Muster mit der HTML-zu-PDF-Umwandlung von IronPDF, um in einer einzigen Pipeline zu generieren und zu drucken. Das PDF-Komprimierungsbeispiel ist es wert, vor großen Druckserien angewendet zu werden, um die Übertragungszeit des Spoilers bei Netzwerkdruckern zu reduzieren.

TippsFügen Sie eine kurze await Verzögerung zwischen den Aufträgen ein, wenn der Drucker langsames Print-Queuing unterstützt — einige ältere Netzwerkdrucker lehnen schnelle aufeinanderfolgende Einreichungen ab. Eine Pause von 200-500 ms ist normalerweise ausreichend.

Was sind die plattformspezifischen Überlegungen for Node.js PDF-Druck?

Das pdf-to-printer Paket verwendet unterschiedliche Systembefehle auf jedem Betriebssystem. Das Verständnis des zugrunde liegenden Mechanismus hilft bei der Diagnose plattformspezifischer Ausfälle.

Wie funktioniert der PDF-Druck unter Windows?

Unter Windows wird pdf-to-printer über einen PowerShell-Befehl auf SumatraPDF umgeschaltet. SumatraPDF ist im Paket enthalten - keine separate Installation erforderlich. Die Ausführung von PowerShell-Skripten muss unter der aktuellen Ausführungsrichtlinie zulässig sein. Führen Sie Get-ExecutionPolicy in PowerShell aus, um zu prüfen; wenn das Ergebnis Restricted ist, setzen Sie es auf RemoteSigned oder Bypass für die Sitzung.

Druckernamen unter Windows sind groß-/kleinschreibungssensitiv und müssen genau mit dem Wert übereinstimmen, der in Einstellungen > Bluetooth & Geräte > Drucker & Scanner angezeigt wird, einschließlich jedes Klammernetzwerksuffixes.

Wie funktioniert der PDF-Druck unter macOS und Linux?

Unter macOS und Linux ruft das Paket lp auf (Teil von CUPS). Bestätigen Sie, dass CUPS mit lpstat -p läuft — dies listet alle registrierten Drucker und deren aktuellen Status auf. Wenn keine Drucker angezeigt werden, wurde der CUPS-Dienst möglicherweise nicht gestartet; verwenden Sie sudo systemctl start cups unter Linux oder aktivieren Sie es über Systemeinstellungen > Drucker auf macOS.

Der lp Befehl unterstützt nicht alle gleichen T>Optionen wie der Windows SumatraPDF Pfad. Die scale und orientation T>Optionen können je nach Druckertreiber keinen Effekt auf CUPS-basiertes Drucken haben. Testen Sie auf der Zielhardware, bevor Sie sie bereitstellen.

WarnungDas pdf-to-printer Paket druckt derzeit nur auf lokale und Netzwerdrucker. Cloud-Druckdienste wie Microsoft Universal Print werden durch dieses Paket nicht unterstützt.

Wie gehe ich mit Sicherheit und Berechtigungen beim Drucken von PDFs um?

Produktionsdrucksysteme, die sensible Dokumente - Verträge, Finanzaufzeichnungen, medizinische Formulare - verarbeiten, benötigen Zugriffskontrollen und Prüfpfade. Es ist in vielen regulierten Branchen eine Compliance-Anforderung, nachzuvollziehen, wer was und wann gedruckt hat.

//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/secure-print.js
const printer = require('pdf-to-printer');
const crypto = require('crypto');

class AuditedPrinter {
  constructor() {
    this.log = [];
  }

  async print(filePath, userId, options = {}) {
    const jobId = crypto.randomBytes(8).toString('hex');
    const entry = { jobId, userId, filePath, options, status: 'pending', startedAt: new Date().toISOString() };
    this.log.push(entry);

    try {
      await printer.print(filePath, options);
      entry.status = 'completed';
      entry.completedAt = new Date().toISOString();
      return { success: true, jobId };
    } catch (err) {
      entry.status = 'failed';
      entry.error = err.message;
      throw err;
    }
  }

  getLog(userId = null) {
    return userId ? this.log.filter((e) => e.userId === userId) : this.log;
  }
}

// Usage
const auditedPrinter = new AuditedPrinter();

(async () => {
  await auditedPrinter.print('./contracts/nda-2026.pdf', 'user-42', { copies: 1 });
  console.log('Audit log:', auditedPrinter.getLog('user-42'));
})();
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-print-pdf/secure-print.js
const printer = require('pdf-to-printer');
const crypto = require('crypto');

class AuditedPrinter {
  constructor() {
    this.log = [];
  }

  async print(filePath, userId, options = {}) {
    const jobId = crypto.randomBytes(8).toString('hex');
    const entry = { jobId, userId, filePath, options, status: 'pending', startedAt: new Date().toISOString() };
    this.log.push(entry);

    try {
      await printer.print(filePath, options);
      entry.status = 'completed';
      entry.completedAt = new Date().toISOString();
      return { success: true, jobId };
    } catch (err) {
      entry.status = 'failed';
      entry.error = err.message;
      throw err;
    }
  }

  getLog(userId = null) {
    return userId ? this.log.filter((e) => e.userId === userId) : this.log;
  }
}

// Usage
const auditedPrinter = new AuditedPrinter();

(async () => {
  await auditedPrinter.print('./contracts/nda-2026.pdf', 'user-42', { copies: 1 });
  console.log('Audit log:', auditedPrinter.getLog('user-42'));
})();
JAVASCRIPT

Die AuditedPrinter Klasse weist jeder Druckanforderung eine eindeutige Job-ID zu und zeichnet Benutzeridentität, Dateipfad und Zeitstempel auf. Das Persistieren von this.log in einer Datenbank oder einer nur-anhängenden Protokolldatei verwandelt dies in ein langlebiges Auditprotokoll. Für Dokumente, die persönlich identifizierbare Informationen enthalten, sollten Sie die PDF-Verschlüsselungsfunktionen von IronPDF verwenden, um Dateien im Ruhezustand zu schützen, bevor sie die Druckwarteschlange erreichen.

Für Serveranwendungen, die Druckanforderungen über HTTP akzeptieren, validieren Sie den Dateityp und die Größe vor dem Drucken - lehnen Sie jeden Upload ab, der kein gültiges PDF-Binärformat ist. Übergeben Sie niemals benutzerübergebene Dateipfade direkt an printer.print() ohne Bereinigung.

WichtigSpeichern Sie Audit-Logs außerhalb des beschreibbaren Verzeichnisses der Anwendung. Ein Angreifer mit Schreibzugriff auf das Dateisystem sollte nicht in der Lage sein, Druckprotokolle zu manipulieren.

Was sind die nächsten Schritte for Node.js PDF-Druck?

Dieser Leitfaden behandelte das Drucken bestehender PDF-Dateien auf lokale und Netzwerdrucker mit pdf-to-printer, vom einfachen Drucken einzelner Dateien bis zu Batch-Queues, benutzerdefinierten Druckeroptionen, Plattformüberlegungen und Auditprotokollierung für regulierte Umgebungen.

Um diesen Workflow mit PDF-Generierung zu erweitern, starten Sie eine kostenlose Testversion von IronPDF for Node.js und folgen Sie dem HTML-zu-PDF-Tutorial, um eine End-to-End-Dokumenten-Pipeline zu erstellen. Für Lizenzierungsoptionen und Volumenpreise, siehe die IronPDF-Lizenzseite.

Bereit, weiterzugehen? Entdecken Sie die vollständige IronPDF for Node.js How-to-Sammlung, um zu lernen, wie man PDF-Dateien zusammenfügt, PDF-Dateien komprimiert und PDFs in Bilder umwandelt.

Häufig gestellte Fragen

Wie lassen sich PDF-Dateien am einfachsten in Node.js drucken?

Verwenden Sie das pdf-to-printer npm-Paket. Installieren Sie es mit npm install pdf-to-printer, und rufen Sie dann printer.print('./file.pdf') auf - es gibt ein Promise zurück und reiht den Auftrag mit dem Standarddrucker in einer einzelnen Ausführung ein.

Was sind die Voraussetzungen für das Drucken von PDFs in Node.js?

Node.js 14.x oder höher, npm und ein konfigurierter Druckertreiber auf dem Host-Computer. Auf Windows muss die PowerShell-Ausführungsrichtlinie Skriptausführung zulassen. Auf macOS und Linux muss CUPS installiert und aktiv sein, mit mindestens einem registrierten Drucker über lpstat -p.

Wie drucke ich mit einem bestimmten Drucker in Node.js?

Übergeben Sie ein printerOptions-Objekt als zweites Argument an printer.print(). Setzen Sie das printer-Feld auf den genauen Druckernamen, der von printer.getPrinters() zurückgegeben wird. Druckernamen sind sensibel bezüglich Groß- und Kleinschreibung und müssen genau mit dem OS-Registry-Eintrag übereinstimmen.

Kann ich ein PDF erzeugen und es dann im selben Node.js-Skript drucken?

Ja. Verwenden Sie IronPDF for Node.js, um die Datei zuerst zu erzeugen: Rufen Sie PdfDocument.fromHtml(html) auf, um HTML-Inhalte zu rendern, speichern Sie sie mit pdf.saveAs(path), und übergeben Sie dann diesen Pfad an printer.print(path). Installieren Sie IronPDF mit npm install @ironsoftware/ironpdf.

Funktioniert pdf-to-printer auf macOS und Linux?

Ja. Auf macOS und Linux delegiert das Paket an den lp-Befehl von CUPS. Bestätigen Sie, dass CUPS mit lpstat -p aktiv ist. Beachten Sie, dass die scale- und orientation-Optionen möglicherweise nicht bei allen CUPS-Druckertreibern wirksam sind.

Wie füge ich in Node.js ein Audit-Log für Druckjobs hinzu?

Umbrechnen Sie printer.print() in einer Klasse, die eine eindeutige Job-ID durch crypto.randomBytes(8).toString('hex') zuweist und den Dateipfad, die Benutzer-ID und Zeitstempel aufzeichnet. Speichern Sie das Log-Array in einer Datenbank oder einer nur anhängbaren Datei außerhalb des beschreibbaren Anwendungsverzeichnisses.

Darrius Serrant
Full-Stack-Software-Ingenieur (WebOps)

Darrius Serrant hat einen Bachelor-Abschluss in Informatik von der University of Miami und arbeitet als Full-Stack-WebOps-Marketing-Ingenieur bei Iron Software. Seit seiner Jugend vom Programmieren angezogen, sah er die Informatik als sowohl mysteriös als auch zugänglich, was es zum perfekten Medium für Kreativität und Problemlösung ...

Weiterlesen
Bereit anzufangen?
Version: 2026.6 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis?
Führen Sie eine Probe aus Sehen Sie zu, wie Ihr HTML-Code in eine PDF-Datei umgewandelt wird.