Node.js Kullanarak PDF Dosyalarını Nasıl Yazdırırım

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

Node.js'de bir PDF dosyası yazdırmak, belgeyi işletim sisteminin yazıcı kuyruğuna göndermeyi gerektirir. Bu pdf-to-printer npm paketi, sistem çağrısını Windows, macOS ve Linux üzerinde çalışan ve bir yazdırma işlem sırasını tek bir yöntem çağrısıyla sıraya koymanıza olanak tanıyan, promise tabanlı bir API'ye soyutlar. Yazdırmadan önce PDF oluşturmak (HTML, URL'ler veya şablonları baskıya hazır belgelere dönüştürmek) için IronPDF for Node.js bu iş akışı ile doğal olarak eşleşir.

Hızlı Başlangıç: PDF Dosyası Yazdır 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

Node.js'de PDF Yazdırmanın Önkoşulları Nelerdir?

Node.js 14.x veya daha yenisi ve npm, pdf-to-printer kullanmadan önce gereklidir. Paket, birleştirilmiş yazıcı motoru yerine yerel OS yazdırma komutlarına bağlıdır, bu nedenle yazıcı sürücüleri zaten hedef makinede yapılandırılmış olmalıdır.

Windows'ta, paket PowerShell üzerinden SumatraPDF'yi çağırır. PowerShell komut dosyası çalıştırılmasının sistem politikanız tarafından engellenmediğinden emin olun. macOS ve Linux üzerinde paket, CUPS yazdırma sisteminin bir parçası olan lp komutuna devreder. CUPS'un yüklü olduğunu ve en az bir yazıcının lpstat -p ile kaydedildiğini doğrulayın.

Lütfen dikkate alınÜretim iş yükleri için Node.js 18.x LTS önerilir. pdf-to-printer paketi, tüm etkin Node.js LTS sürümlerini destekler.

Node.js Projesi PDF Yazdırmak İçin Nasıl Kurulur?

Yeni bir proje başlatın, paketi yükleyin ve herhangi bir yazdırma mantığı yazmadan önce minimal bir dizin yapısı oluşturun.

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

Kurulumdan sonra, yazdırma mantığınız için bir index.js dosyası ve yazdırmak istediğiniz belgeleri tutmak için bir pdfs/ klasörü oluşturun. Yazıcı ayarları için ayrı bir config.js, yazıcı isimlerini asıl mantığınızdan uzak tutar -- geliştirme ve üretim arasında hedef yazıcının farklı olduğu birden çok ortam dağıtımları için yararlı bir kalıptır.

Modül, çalışma zamanında çözülen yerel bağlamaları kullanır, bu yüzden bir derleme adımı gerekmez. node_modules/pdf-to-printer/dist/ dizini, algılanan platform için önceden oluşturulmuş ikili dosyaları içerecektir.

Temel Kullanım için PDF Dosyası Nasıl Yazdırılır?

Absolut veya relatıf dosya yolunu printer.print()'ye geçirin. Yöntem, belgeyi sistem varsayılan yazıcısı ile sıraya koyar ve iş kuyruğu tarafından kabul edildiğinde Promise'i çözer — baskı fiziksel olarak tamamlandığında değil.

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

Bir yolu kontrol etmeden önce dosya varlığını kontrol etmek, bir yol yanlış olduğunda veya bir dosya taşındığında sessiz başarısızlıkları önler. fs.access() çağrısı, yol çözümlenmediğinde ENOENT fırlatır, size genel bir spuler reddi yerine açıklayıcı bir hata verir. Yaygın hata nedenleri arasında yanlış göreceli yollar, eksik yazıcı sürücüleri ve yazıcının çevrimdışı durumu bulunur.

ÖnemliPromise, yazdırma işi işletim sistemi kuyruğu tarafından kabul edildiğinde çözülür, belge yazıcıdan çıktığında değil. Denetim amaçları için, zaman damgasını çözümde kaydedin ve belgenin yazıcıdan ayrıldığını varsaymayın.

Yazdırmadan Önce PDF Nasıl Üretilir?

Doküman henüz bir dosya olarak mevcut değilse, printer.print() çağrılmadan önce IronPDF for Node.js ile oluşturun. IronPDF, HTML, URL'ler ve şablon dizelerini baskıya hazır PDF dosyalarına bir tarayıcı örneği gerektirmeden dönüştürür.

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

Bu örüntü, PDF içeriğinin çalışma zamanında veritabanı kayıtlarından veya API yanıtlarından derlendiği raporlama iş akışlarında yaygındır. IronPDF'nin CSS desteği ve başlık/alt bilgi eklemeyi içeren tüm çizim seçeneklerini belgeliyor IronPDF'nin HTML to PDF konvÇine bakın.

Özel Yazıcı Seçenekleri Nasıl Belirtilir?

Belirli bir yazıcıyı hedef almak, kopya sayısını ayarlamak, sayfa aralıklarını seçmek veya sayfa ölçeklemeyi kontrol etmek için printerOptions nesnesini ikinci argüman olarak printer.print() 'ye geçirin. Yazıcı adı, printer.getPrinters() tarafından döndürülen kesin değerle eşleşmelidir.

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

getPrinters()'yi print()'den önce çağırmak iki amaca hizmet eder: yazıcının çevrimiçi ve erişilebilir olduğunu doğrular ve işletim sisteminin yazdırma işlerini yönlendirmek için kullandığı otoriter isim dizesini size verir. Yazıcı adları genellikle sistem ayarlarında gösterilen görüntü adlarından farklı olarak sürüm numaralarını veya ağ eklerini içerir.

İpuçlarıWindows üzerinde, getPrinters() yazıcı listesini kayıt defterinden döndürür. MacOS/Linux'ta, CUPS'u sorgular. isDefault bayrağı, bir yazıcı adı belirtilmediğinde görevleri alacak yazıcıyı tanımlar.

Hangi Yazıcı Seçenekleri Yapılandırılabilir?

printerOptions nesnesi aşağıdaki alanları destekler:

pdf-to-printer option properties
SeçenekTürAçıklamaÖrnek Değer
yazıcıstringgetPrinters() tarafından döndürülen kesin yazıcı adı'HP LaserJet Pro'
kopyalarnumberYazdırılacak kopya sayısı2
sayfalarstringSayfa aralığı dizesi'1-3,5'
ölçekstringSayfa ölçekleme modu'fit', 'noscale', 'shrink'
yönelimstringSayfa yönlendirme geçersiz kılma'dikey', 'yatay'

Belge oluşturma sırasında baskı zamanı yerine özel kağıt boyutları veya belirli bir sayfa yönlendirmesi uygulanması gereken belgeler için, dosyayı kaydetmeden önce bu seçenekleri IronPDF çizim adımında yapılandırın.

Icon Quote related to Hangi Yazıcı Seçenekleri Yapılandırılabilir?

Bu türden favori kütüphanem IronPDF'dir. PDF dosyalarının hızlı ve verimli bir şekilde işlenmesine olanak tanır. Ayrıca, PDF/A formatına dışa aktarma ve dijital imzalama gibi birçok değerli özelliğe sahiptir.

Milan Jovanovic related to Hangi Yazıcı Seçenekleri Yapılandırılabilir?

Milan Jovanovic

Microsoft MVP

Vaka çalışmasını görüntüle
Icon Quote related to Hangi Yazıcı Seçenekleri Yapılandırılabilir?

IronOCR, manuel işleme maliyetinden yıllık 40.000 USD tasarruf etmemizi sağlıyor, üretkenliği artırıyor ve yüksek etkili görevler için kaynakları serbest bırakıyor. Kesinlikle tavsiye ederim.

Brent Matzelle related to Hangi Yazıcı Seçenekleri Yapılandırılabilir?

Brent Matzelle

Teknoloji Müdürü, OPYN

Vaka çalışmasını görüntüle
Icon Quote related to Hangi Yazıcı Seçenekleri Yapılandırılabilir?

IronSuite, operasyonlarımızda kritik bir rol oynar. Bunlar, iş süreçlerinde verimliliği artıran, kat planları oluşturmak ve envanter yönetimini geliştirmek gibi araçlardır.

David Jones related to Hangi Yazıcı Seçenekleri Yapılandırılabilir?

David Jones

Baş Yazılım Mühendisi, Agorus Build

Vaka çalışmasını görüntüle

Node.js'de Toplu Yazdırmayı Nasıl Uygularım?

Her dosya için printer.print() çağırarak bir dizi tekrar ederek bir PDF dosyası klasörünü veya dinamik olarak oluşturulan bir listeyi işleyin. for...of'i await ile kullanarak işleri sırayla tutun, bu da yazıcı kuyruklayıcının eşzamanlı taleplerle aşırı yüklenmesini önler.

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

BatchPrinter sınıfı, doğrulamayı yürütmeden ayırır. addFiles() sırasında mevcut olmayan dosyalar atlanır, böylece tek bir eksik dosya tüm grubu iptal etmez. printAll() yöntemi dosya başına hataları kaydeder ve kaydedilebilecek veya bir izleme hizmetine iletilebilecek bir özet döndürür.

Dinamik olarak üretilmiş raporlar için, bu örüntüyü IronPDF'nin HTML string to PDF dönüştürme yöntemiyle birleştirin ve tek bir iş akışında oluşturup yazdırın. PDF sıkıştırma örneği, büyük yazdırma işlerinden önce ağ yazıcılarında transfer süresini azaltmak için uygulanmaya değer.

İpuçlarıBir yazıcı yavaş bir şekilde sıraya yazdırmayı destekliyorsa işlerin arasına kısa bir await gecikme ekleyin -- bazı eski ağ yazıcıları hızlı ardışık gönderimleri reddeder. Genellikle 200-500 ms'lik bir duraklama yeterlidir.

Node.js PDF Yazdırma İçin Platforma Özel Hususlar Nelerdir?

pdf-to-printer paketi, her işletim sisteminde farklı sistem komutları kullanır. Altta yatan mekanizmayı anlamak, platforma özel hataların teşhis edilmesine yardımcı olur.

Windows'ta PDF Yazdırma Nasıl Çalışır?

Windows üzerinde, pdf-to-printer bir PowerShell komutu aracılığıyla SumatraPDF'ye kabuk oluşturur. SumatraPDF paketle birlikte gelir — ayrı bir kurulum gerekmez. PowerShell komut dosyası yürütülmesine şu anda yürütme politikası altında izin verilmelidir. Kontrol etmek için PowerShell'de Get-ExecutionPolicy çalıştırın; sonuç Restricted ise, oturum için RemoteSigned veya Bypass olarak ayarlayın.

Windows'ta yazıcı adları büyük/küçük harfe duyarlıdır ve Settings > Bluetooth & devices > Printers & scanners içinde gösterilen değere tam olarak uymalıdır, parantez içindeki ağ eki dahil.

macOS ve Linux'ta PDF Yazdırma Nasıl Çalışır?

macOS ve Linux üzerinde paket, lp'yı çağırır (CUPS'un bir parçası). lpstat -p ile CUPS'un çalışır durumda olduğunu doğrulayın -- bu, kayıtlı tüm yazıcıları ve mevcut durumlarını listeler. Eğer herhangi bir yazıcı görünmüyorsa, CUPS hizmeti başlatılmamış olabilir; Linux üzerinde sudo systemctl start cups kullanın veya macOS'de System Preferences > Printers yoluyla etkinleştirin.

lp komutu, Windows SumatraPDF yolu ile aynı seçeneklerin hepsini desteklemez. scale ve orientation seçenekleri, yazıcı sürücüsüne bağlı olarak CUPS tabanlı yazdırmada etkisiz olabilir. Hedef donanımda dağıtmadan önce test edin.

Uyarıpdf-to-printer paketi şu anda yalnızca yerel ve ağ yazıcılarına yazdırır. Microsoft Universal Print gibi bulut yazdırma hizmetleri bu paket aracılığıyla desteklenmemektedir.

PDF'leri Yazdırırken Güvenlik ve İzinleri Nasıl İdare Ederim?

Sözleşmeler, finansal kayıtlar, tıbbi formlar gibi hassas belgeleri işleyen üretim yazdırma sistemleri erişim kontrolleri ve denetim izleri gerektirir. Ne ve ne zaman kimin yazdırdığını takip etmek, birçok düzenlenmiş sektörde uyum şartıdır.

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

AuditedPrinter sınıfı, her yazdırma isteğine benzersiz bir görev kimliği atar ve kullanıcı kimliği, dosya yolu ve zaman damgalarını kaydeder. Bunu kalıcı bir denetim kaydı haline getirmek için this.log veritabanına veya yalnızca eklenen bir günlük dosyasına kalıcı hale getirin. Kişisel olarak tanımlanabilir bilgiler içeren belgeler için, dosyaları yazıcı kuyruğuna ulaşmadan önce korumak için IronPDF'nin PDF şifreleme özelliklerini kullanmayı düşünün.

HTTP üzerinden yazdırma isteklerini kabul eden sunucu uygulamaları için, yazdırmadan önce dosya türünü ve boyutunu doğrulayın -- geçerli PDF ikilisi olmayan herhangi bir yüklemeyi reddedin. Kullanıcı sağladığı dosya yollarını asla printer.print()'ye doğrulamadan geçirmeyin.

Denetim günlüklerini uygulamanın yazılabilir dizininin dışında saklayın. Dosya sistemi yazma erişimi olan bir saldırganın yazdırma kayıtlarını değiştirememesi gerekir.

Node.js PDF Yazdırmaya Başlamak için Sonraki Adımlar Nelerdir?

Bu kılavuz, pdf-to-printer kullanarak var olan PDF dosyalarını yerel ve ağ yazıcılarına yazdırmayı kapsadı; tek dosya yazdırmadan toplu kuyruklara, özel yazıcı seçeneklerine, platformla ilgili dikkate alınacak hususlara ve düzenlemeli ortamlar için denetim kaydı oluşturmaya kadar.

PDF oluşturma ile iş akışını genişletmek için, Node.js için IronPDF'nin ücretsiz deneme sürümüne başlayın ve HTML'den PDF'ye öğreticini izleyerek baştan sona bir belge hattı oluşturun. Lisanslama seçenekleri ve hacim fiyatları için IronPDF lisanslama sayfasına bakın.

Daha da ileriye gitmeye hazır mısınız? PDF dosyalarını birleştirme, PDF dosyalarını sıkıştırma ve PDF dosyalarını image'lere dönüştürme gibi çeşitli konuları öğrenmek için tüm Node.js için IronPDF nasıl yapılır koleksiyonunu keşfedin.

Sıkça Sorulan Sorular

Node.js'te PDF dosyalarını yazdırmanın en kolay yolu nedir?

pdf-to-printer npm paketini kullanın. Onu npm install pdf-to-printer ile yükleyin, ardından printer.print('./file.pdf') çağırın -- bu, bir Promise döndürür ve bir tek çağrı ile işi sistem varsayılan yazıcısına kuyruklar.

Node.js'te PDF yazdırmanın önkoşulları nelerdir?

Node.js 14.x veya üzeri, npm ve ana makinede yapılandırılmış bir yazıcı sürücüsü. Windows'ta, PowerShell yürütme politikası betik yürütmeye izin vermelidir. macOS ve Linux'ta, CUPS kurulmuş olmalı ve lpstat -p aracılığıyla en az bir yazıcı kaydedilmiş olmalıdır.

Node.js'de belirli bir yazıcıya nasıl yazdırırım?

Bir printerOptions nesnesini printer.print()'in ikinci argümanı olarak geçin. printer.getPrinters() tarafından döndürülen tam yazıcı adını printer alanına ayarlayın. Yazıcı adları büyük/küçük harfe duyarlıdır ve tam olarak işletim sistemi kayıt defteri girişine uymalıdır.

Aynı Node.js betiğinde bir PDF üretebilir ve ardından yazdırabilir miyim?

Evet. İlk olarak dosyayı üretmek için IronPDF for Node.js kullanın: HTML içeriğini işaretlemek için PdfDocument.fromHtml(html) çağırarak oluşturun, pdf.saveAs(path) ile kaydedin, ardından printer.print(path)'e bu yolu iletin. IronPDF'yi npm install @ironsoftware/ironpdf kullanarak yükleyin.

pdf-to-printer macOS ve Linux'ta çalışıyor mu?

Evet. MacOS ve Linux'ta, paket CUPS'ten lp komutuna devredilir. CUPS'ın çalıştığını, lpstat -p ile doğrulayın. scale ve orientation seçeneklerinin tüm CUPS yazıcı sürücülerinde etkili olmayabileceğini unutmayın.

Node.js'de yazdırma görevleri için nasıl bir denetim kaydı eklerim?

printer.print()'i, crypto.randomBytes(8).toString('hex') kullanarak benzersiz bir iş kimliği atayan ve dosya yolunu, kullanıcı kimliğini ve zaman damgalarını kaydeden bir sınıf içinde sarın. Günlük dizisini, uygulamanın yazılabilir dizini dışında bir veritabanına veya yalnızca ek dosyaya kalıcı hale getirin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Sürüm: 2026.6 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz?
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.