Comment imprimer des fichiers PDF en utilisant Node.js

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

Imprimer un fichier PDF dans Node.js nécessite d'envoyer le document au spooler d'imprimante du système d'exploitation. Le package npm pdf-to-printer abstrait cet appel système dans une API basée sur des promesses qui fonctionne sous Windows, macOS et Linux, vous permettant de mettre en file d'attente un travail d'impression en un seul appel de méthode. Pour la génération de PDF avant l'impression -- convertir des HTML, URLs ou modèles en documents prêts à imprimer -- IronPDF for Node.js s'associe naturellement à ce workflow.

Démarrage rapide : Imprimer un fichier PDF dans 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

Quels sont les prérequis pour imprimer des PDFs dans Node.js ?

Node.js 14.x ou une version ultérieure et npm sont requis avant d'utiliser pdf-to-printer. Le package repose sur les commandes d'impression natives de l'OS plutôt qu'un moteur d'impression intégré, donc les pilotes d'imprimante doivent déjà être configurés sur la machine cible.

Sur Windows, le package appelle SumatraPDF via PowerShell. Assurez-vous que l'exécution des scripts PowerShell n'est pas bloquée par votre politique système. Sous macOS et Linux, le paquet délègue à la commande lp, qui fait partie du système d'impression CUPS. Confirmez que CUPS est installé et qu'au moins une imprimante est enregistrée avec lpstat -p.

Node.js 18.x LTS est recommandé pour les charges de travail en production. Le paquet pdf-to-printer prend en charge toutes les versions LTS actives de Node.js.

Comment configurer un projet Node.js pour l'impression de PDF ?

Initialisez un nouveau projet, installez le package, et créez une structure de répertoire minimale avant d'écrire toute logique d'impression.

//: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

Après l'installation, créez un fichier index.js pour votre logique d'impression et un dossier pdfs/ pour contenir les documents que vous souhaitez imprimer. Un fichier config.js séparé pour les paramètres de l'imprimante garde les noms d'imprimante en dehors de votre logique de base — un modèle utile pour les déploiements multi-environnements où l'imprimante cible diffère entre le développement et la production.

Le module utilise des liaisons natives qui se résolvent à l'exécution, donc aucune étape de compilation n'est requise. Le répertoire node_modules/pdf-to-printer/dist/ contiendra des binaires préconstruits pour la plateforme détectée.

Comment imprimer un fichier PDF avec une utilisation basique ?

Passez le chemin du fichier absolu ou relatif à printer.print(). La méthode met le document en file d'attente avec l'imprimante par défaut du système et résout la Promesse une fois que le travail est accepté par le spooler — pas quand l'impression physique est terminée.

//: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

Vérifier l'existence du fichier avant d'appeler printer.print() empêche les échecs silencieux lorsque un chemin est incorrect ou un fichier a été déplacé. L'appel fs.access() lève ENOENT si le chemin ne se résout pas, ce qui vous donne une erreur descriptive plutôt qu'un rejet générique du spooler. Les causes d'erreur courantes incluent des chemins relatifs incorrects, des pilotes d'imprimante manquants, et le statut hors ligne de l'imprimante.

La Promesse est résolue lorsque le travail d'impression est accepté par le spooler de l'OS, pas lorsque le document a terminé l'impression. Pour des raisons d'audit, enregistrez l'horodatage à la résolution plutôt que de supposer que le document a quitté l'imprimante.

Comment générer un PDF avant d'imprimer ?

Lorsque le document n'existe pas encore comme fichier, générez-le avec IronPDF for Node.js avant d'appeler printer.print(). IronPDF rend HTML, URLs, et chaînes de modèles en fichiers PDF prêts à imprimer sans nécessiter une instance de navigateur séparée.

//: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

Ce modèle est courant dans les workflows de reporting où le contenu PDF est assemblé à l'exécution à partir d'enregistrements de base de données ou de réponses d'API. Consultez le tutoriel de conversion HTML en PDF pour un guide complet des options de rendu d'IronPDF, y compris le support CSS et l'injection d'en-têtes/pieds de page.

Comment spécifier des options d'impression personnalisées ?

Passez un objet printerOptions comme deuxième argument à printer.print() pour cibler une imprimante spécifique, définir le nombre de copies, sélectionner des plages de pages ou contrôler le redimensionnement des pages. Le nom de l'imprimante doit correspondre exactement à la valeur retournée par printer.getPrinters().

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

async function printWithOptions(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}"`);
}

printWithOptions('./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 printWithOptions(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}"`);
}

printWithOptions('./pdfs/shipping-label.pdf').catch(console.error);
JAVASCRIPT

Appeler getPrinters() avant print() sert deux objectifs : cela confirme que l'imprimante est en ligne et accessible, et cela vous donne la chaîne de nom autoritative que le système d'exploitation utilise pour diriger les travaux d'impression. Les noms d'imprimante incluent souvent des numéros de version ou des suffixes réseau qui diffèrent des noms d'affichage montrés dans les paramètres système.

Sous Windows, getPrinters() retourne la liste des imprimantes depuis le registre. Sur macOS/Linux, elle interroge CUPS. Le drapeau isDefault identifie l'imprimante qui reçoit les travaux lorsqu'aucun nom d'imprimante n'est spécifié.

Quelles options d'imprimante peuvent être configurées ?

L'objet printerOptions prend en charge les champs suivants :

pdf-to-printer option properties
Option Type de texte Description du projet Valeur d'exemple
imprimante string Nom exact de l'imprimante comme renvoyé par getPrinters() " HP LaserJet Pro "
copies number Nombre de copies à imprimer 2
pages string Chaîne de plage de pages '1-3,5'
échelle string Mode de mise à l'échelle de la page 'fit', 'noscale', 'shrink'
orientation string Surcharge d'orientation de la page " portrait ", " paysage "

Pour les documents qui nécessitent des tailles de papier personnalisées ou une orientation de page spécifique appliquée lors de la génération de PDF plutôt qu'au moment de l'impression, configurez ces options à l'étape de rendu d'IronPDF avant de sauvegarder le fichier.

Icon Quote related to Quelles options d'imprimante peuvent être configurées ?

Ma bibliothèque préférée de ce genre est IronPDF. Elle permet une manipulation rapide et efficace des fichiers PDF. Elle dispose également de nombreuses fonctionnalités précieuses, comme l'exportation au format PDF/A et la signature numérique des documents PDF.

Milan Jovanovic related to Quelles options d'imprimante peuvent être configurées ?

Milan Jovanovic

Microsoft MVP

Voir l'étude de cas
Icon Quote related to Quelles options d'imprimante peuvent être configurées ?

IronOCR signifie que nous pouvons économiser 40 000 $ par an grâce au traitement manuel, tout en améliorant la productivité et en libérant des ressources pour des tâches à fort impact. Je le recommande vivement.

Brent Matzelle related to Quelles options d'imprimante peuvent être configurées ?

Brent Matzelle

Directeur technique, OPYN

Voir l'étude de cas
Icon Quote related to Quelles options d'imprimante peuvent être configurées ?

Iron Suite joue un rôle crucial dans nos opérations. Ce sont des outils qui augmentent l'efficacité de l'entreprise, y compris la création de plans d'étage et l'amélioration de la gestion des stocks.

David Jones related to Quelles options d'imprimante peuvent être configurées ?

David Jones

Ingénieur logiciel principal, Agorus Build

Voir l'étude de cas

Comment puis-je mettre en œuvre l'impression par lots dans Node.js ?

Traitez un dossier de fichiers PDF ou une liste générée dynamiquement en itérant un tableau et en appelant printer.print() pour chaque fichier. Utiliser for...of avec await garde les travaux séquentiels, ce qui empêche le spooler d'impression d'être submergé par des demandes simultanées.

//: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 printOptions = {
          ...options,
          ...(this.printerName && { printer: this.printerName }),
        };
        await printer.print(filePath, printOptions);
        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 printOptions = {
          ...options,
          ...(this.printerName && { printer: this.printerName }),
        };
        await printer.print(filePath, printOptions);
        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

La classe BatchPrinter sépare la validation de l'exécution. Les fichiers qui n'existent pas sont ignorés pendant addFiles() afin qu'un seul fichier manquant n'interrompe pas tout le lot. La méthode printAll() enregistre les erreurs par fichier et retourne un résumé qui peut être consigné ou transféré à un service de surveillance.

Pour les rapports générés dynamiquement, combinez cette méthode avec la conversion de chaîne HTML en PDF d'IronPDF pour générer et imprimer dans un seul pipeline. Pensez à appliquer l'exemple de compression PDF avant les très grands lots d'impression pour réduire le temps de transfert du spooler sur les imprimantes réseau.

Ajoutez un court délai await entre les travaux si l'imprimante prend en charge la file d'attente d'impression lentement — certaines imprimantes réseau plus anciennes rejettent des soumissions successives rapides. Une pause de 200 à 500 ms est généralement suffisante.

Quelles sont les considérations spécifiques à la plate-forme pour l'impression de PDF Node.js ?

Le paquet pdf-to-printer utilise différentes commandes système sur chaque système d'exploitation. Comprendre le mécanisme sous-jacent aide à diagnostiquer les échecs spécifiques à la plate-forme.

Comment fonctionne l'impression de PDF sur Windows ?

Sous Windows, pdf-to-printer s'escorte vers SumatraPDF via une commande PowerShell. SumatraPDF est fourni avec le package — aucune installation séparée n'est nécessaire. L'exécution des scripts PowerShell doit être autorisée conformément à la politique d'exécution en cours. Exécutez Get-ExecutionPolicy dans PowerShell pour vérifier ; Si le résultat est Restricted, définissez-le sur RemoteSigned ou Bypass pour la session.

Les noms d'imprimante sur Windows sont sensibles à la casse et doivent correspondre exactement à la valeur affichée dans Paramètres > Bluetooth et appareils > Imprimantes et scanners, y compris tout suffixe réseau entre parenthèses.

Comment fonctionne l'impression de PDF sur macOS et Linux ?

Sous macOS et Linux, le paquet appelle lp (partie de CUPS). Confirmez que CUPS est en cours d'exécution avec lpstat -p — cela liste toutes les imprimantes enregistrées et leur statut actuel. Si aucune imprimante n'apparaît, le service CUPS n'est peut-être pas démarré ; Utilisez sudo systemctl start cups sur Linux ou activez-le via Préférences Système > Imprimantes sur macOS.

La commande lp ne prend pas en charge toutes les mêmes options que le chemin Windows de SumatraPDF. Les options scale et orientation peuvent ne pas avoir d'effet sur l'impression basée sur CUPS selon le pilote d'imprimante. Testez sur le matériel cible avant de déployer.

Le paquet pdf-to-printer imprime actuellement uniquement sur des imprimantes locales et réseau. Les services d'impression cloud tels que Microsoft Universal Print ne sont pas supportés via ce package.

Comment gérer la sécurité et les permissions lors de l'impression de PDFs ?

Les systèmes d'impression de production qui traitent des documents sensibles — contrats, états financiers, formulaires médicaux — nécessitent des contrôles d'accès et des pistes d'audit. Le suivi de qui a imprimé quoi et quand est une exigence de conformité dans de nombreuses industries réglementées.

//: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

La classe AuditedPrinter attribue un ID de travail unique à chaque demande d'impression et enregistre l'identité de l'utilisateur, le chemin du fichier et les horodatages. La persistance de this.log dans une base de données ou un fichier journal uniquement ajoutant transforme cela en un enregistrement d'audit durable. Pour les documents contenant des informations personnellement identifiables, envisagez d'utiliser les fonctionnalités de chiffrement de PDF d'IronPDF pour protéger les fichiers au repos avant qu'ils n'atteignent la file d'attente de l'imprimante.

Pour les applications serveur qui acceptent les demandes d'impression via HTTP, validez le type de fichier et la taille avant d'imprimer — rejetez tout téléchargement qui n'est pas un binaire PDF valide. Ne passez jamais des chemins de fichiers fournis par l'utilisateur directement à printer.print() sans les nettoyer.

Stockez les journaux d'audit en dehors du répertoire d'écriture de l'application. Un attaquant avec accès en écriture au système de fichiers ne doit pas pouvoir modifier les enregistrements des impressions.

Quelles sont les prochaines étapes pour l'impression de PDF Node.js ?

Ce guide a couvert l'impression de fichiers PDF existants vers des imprimantes locales et réseau en utilisant pdf-to-printer, depuis l'impression de fichiers uniques jusqu'aux files d'attente en lots, les options d'imprimante personnalisées, les considérations de plateforme et la journalisation des audits pour les environnements réglementés.

Pour étendre ce workflow avec la génération de PDF, commencez un essai gratuit de IronPDF for Node.js et suivez le tutoriel HTML en PDF pour créer un pipeline documentaire de bout en bout. Pour les options de licence et les prix en volume, veuillez consulter la page de licence IronPDF.

Prêt pour aller plus loin ? Explorez la collection complète de mode d'emploi IronPDF for Node.js pour apprendre comment fusionner des fichiers PDF, compresser des fichiers PDF, et convertir des PDFs en images.

Questions Fréquemment Posées

Quel est le moyen le plus simple d'imprimer des fichiers PDF dans Node.js ?

Utilisez le package npm pdf-to-printer. Installez-le avec npm install pdf-to-printer, puis appelez printer.print('./file.pdf') -- cela renvoie une Promise et met en file d'attente la tâche avec l'imprimante par défaut du système en un seul appel.

Quelles sont les conditions préalables à l'impression de PDF dans Node.js ?

Node.js 14.x ou version supérieure, npm, et un pilote d'imprimante configuré sur l'ordinateur hôte. Sous Windows, la stratégie d'exécution PowerShell doit autoriser l'exécution de scripts. Sous macOS et Linux, CUPS doit être installé et en cours d'exécution, avec au moins une imprimante enregistrée via lpstat -p.

Comment imprimer vers une imprimante spécifique dans Node.js ?

Passez un objet printerOptions en tant que second argument à printer.print(). Réglez le champ printer sur le nom exact de l'imprimante retourné par printer.getPrinters(). Les noms d'imprimante sont sensibles à la casse et doivent correspondre exactement à l'entrée du registre OS.

Puis-je générer un PDF et l'imprimer ensuite dans le même script Node.js ?

Oui. Utilisez IronPDF for Node.js pour générer le fichier d'abord : appelez PdfDocument.fromHtml(html) pour rendre le contenu HTML, sauvegardez-le avec pdf.saveAs(path), puis passez ce chemin à printer.print(path). Installez IronPDF avec npm install @ironsoftware/ironpdf.

pdf-to-printer fonctionne-t-il sur macOS et Linux ?

Oui. Sur macOS et Linux, le package délègue à la commande lp de CUPS. Confirmez que CUPS fonctionne avec lpstat -p. Notez que les options scale et orientation peuvent ne pas prendre effet sur tous les pilotes d'imprimante CUPS.

Comment ajouter un journal de suivi des audits pour les tâches d'impression dans Node.js ?

Enveloppez printer.print() dans une classe attribuant un ID de tâche unique en utilisant crypto.randomBytes(8).toString('hex') et enregistre le chemin du fichier, l'ID utilisateur et les horodatages. Conservez le tableau de journal dans une base de données ou un fichier en append-only en dehors du répertoire accessible en écriture de l'application.

Darrius Serrant
Ingénieur logiciel Full Stack (WebOps)

Darrius Serrant est titulaire d'un baccalauréat en informatique de l'université de Miami et travaille comme ingénieur marketing WebOps Full Stack chez Iron Software. Attiré par le codage dès son plus jeune âge, il a vu l'informatique comme à la fois mystérieuse et accessible, en faisant le ...

Lire la suite
Prêt à commencer?
Version : 2026.6 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ?
exécuter un échantillon Regardez votre code HTML se transformer en PDF.