Node.js Kullanarak PDF Dosyalarını Nasıl Yazdırırım
Node.js'de bir PDF dosyası yazdırmak, belgeyi işletim sisteminin yazıcı kuyruğuna göndermeyi gerektirir. pdf-to-printer npm paketi, bu sistem çağrısını Windows, macOS ve Linux'ta çalışan, tek bir yöntem çağrısıyla PRINT işini kuyruğa almanıza olanak tanıyan, söz temelli bir API'ye dönüştürür. 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));Minimal İş Akışı (5 Adım)
1. Paketi yükleyin: `npm install pdf-to-printer` 2. Modülü içe aktarın: `const printer = require('pdf-to-printer');` 3. `printer.print('./path/to/file.pdf')` çağrısı -- bir Promise döndürür 4. Başarı durumlarını `.then()` ile, hata durumlarını `.catch()` ile işleyin 5. Belirli bir yazıcıyı hedeflemek veya kopya sayısını ayarlamak için ikinci argüman olarak bir `printerSeçeneks` nesnesi geçirinNode.js'de PDF Yazdırmanın Önkoşulları Nelerdir?
pdf-to-printer'yi kullanmadan önce Node.js 14.x veya üstü sürümü ve npm 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'ta, paket CUPS yazdırma sisteminin bir parçası olan lp komutuna devredilir. CUPS'un kurulu olduğunu ve en az bir yazıcının lpstat -p ile kayıtlı olduğunu doğrulayın.
pdf-to-printer paketi, tüm aktif 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-printerKurulumdan sonra, yazdırma mantığınız için bir index.js dosyası ve yazdırmak istediğiniz belgeleri barındıracak bir pdfs/ klasörü oluşturun. Yazıcı ayarları için ayrı bir config.js kullanılması, yazıcı adlarının temel mantığınızdan uzak tutulmasını sağlar. Bu, geliştirme ve üretim ortamlarında hedef yazıcının farklı olduğu çoklu ortam dağıtımları için yararlı bir modeldir.
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 derlenmiş ikili dosyaları içerecektir.
Temel Kullanım için PDF Dosyası Nasıl Yazdırılır?
Mutlak veya göreceli dosya yolunu printer.print()'ye aktarın. 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);
}
});printer.print() çağrısı yapılmadan önce dosyanın varlığı kontrol edilirse, yol yanlış olduğunda veya dosya taşındığında sessiz hatalar önlenir. fs.access() çağrısı, yol çözümlenmezse ENOENT hatasını verir ve genel bir spooler reddi yerine açıklayıcı bir hata mesajı sunar. 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.
Yazdırmadan Önce PDF Nasıl Üretilir?
Belge henüz bir dosya olarak mevcut değilse, printer.print()'yi çağırmadan ö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');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ı hedeflemek, kopya sayısını ayarlamak, sayfa aralıklarını seçmek veya sayfa ölçeklendirmesini kontrol etmek için printerSeçeneks nesnesini printer.print()'nin ikinci argümanı olarak geçirin. Yazıcı adı, printer.getPrinters() tarafından döndürülen değerle tam olarak 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 printWithSeçeneks(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}"`);
}
printWithSeçeneks('./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 printWithSeçeneks(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}"`);
}
printWithSeçeneks('./pdfs/shipping-label.pdf').catch(console.error);getPrinters()'yi print()'dan önce çağırmanın iki amacı vardır: 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ığı yetkili ad dizesini 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.
getPrinters() kayıt defterinden yazıcı listesini döndürür. MacOS/Linux'ta, CUPS'u sorgular. isDefault bayrağı, yazıcı adı belirtilmediğinde işleri alan yazıcıyı tanımlar.Hangi Yazıcı Seçenekleri Yapılandırılabilir?
printerSeçeneks nesnesi aşağıdaki alanları destekler:
| Seçenek | Tür | Açıklama | Örnek Değer |
|---|---|---|---|
yazıcı | string | getPrinters() tarafından döndürülen kesin yazıcı adı | 'HP LaserJet Pro' |
kopyalar | sayı | Yazdırılacak kopya sayısı | 2 |
sayfalar | string | Sayfa aralığı dizesi | '1-3,5' |
ölçek | string | Sayfa ölçekleme modu | 'fit', 'noscale', 'shrink' |
yönelim | string | Sayfa 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.
Node.js'de Toplu Yazdırmayı Nasıl Uygularım?
Bir dizi üzerinde yineleme yaparak ve her dosya için printer.print() işlevini çağırarak bir PDF dosyaları klasörünü veya dinamik olarak oluşturulan bir listeyi işleyin. for...of ile await işlevini birlikte kullanmak, işlerin sırayla yürütülmesini sağlar ve bu da yazdırma kuyruğunun eşzamanlı isteklerle 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 printSeçeneks = {
...options,
...(this.printerName && { printer: this.printerName }),
};
await printer.print(filePath, printSeçeneks);
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 printSeçeneks = {
...options,
...(this.printerName && { printer: this.printerName }),
};
await printer.print(filePath, printSeçeneks);
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.`);
})();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 işlemeyi durdurmaz. printAll() yöntemi, dosya başına hataları kaydeder ve günlüğe kaydedilebilen veya bir izleme hizmetine iletilebilen 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.
await gecikme ekleyin -- bazı eski ağ yazıcıları, hızlı ve 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'ta, pdf-to-printer bir PowerShell komutu aracılığıyla SumatraPDF'ye yönlendirilir. 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. PowerShell'de Get-ExecutionPolicy komutunu çalıştırarak kontrol edin; sonuç Restricted ise, oturum için bunu 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'ta, paket lp'yi (CUPS'un bir parçası) çağırır. CUPS'un çalıştığını lpstat -p ile kontrol edin -- bu komut, kayıtlı tüm yazıcıları ve bunların mevcut durumlarını listeler. Eğer herhangi bir yazıcı görünmüyorsa, CUPS hizmeti başlatılmamış olabilir; Linux'ta sudo systemctl start cups kullanın veya macOS'ta Sistem Tercihleri > Yazıcılar üzerinden etkinleştirin.
lp komutu, Windows SumatraPDF yolundaki tüm seçenekleri desteklemez. scale ve orientation seçenekleri, yazıcı sürücüsüne bağlı olarak CUPS tabanlı yazdırma üzerinde hiçbir etkiye sahip olmayabilir. Hedef donanımda dağıtmadan önce test edin.
pdf-to-printer paketi şu anda yalnızca yerel ve ağ yazıcılarına yazdırma yapmaktadı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'));
})();AuditedPrinter sınıfı, her PRINT isteğine benzersiz bir iş kimliği atar ve kullanıcı kimliğini, dosya yolunu ve zaman damgalarını kaydeder. this.log'yi bir veritabanına veya yalnızca ekleme yapılabilen bir günlük dosyasına kaydetmek, bunu kalıcı bir denetim kaydı haline getirir. 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ı tarafından sağlanan dosya yollarını, temizleme işlemi yapılmadan asla doğrudan printer.print()'ye aktarmayın.
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 kullanılarak mevcut PDF dosyalarının yerel ve ağ yazıcılarına yazdırılmasını, temel tek dosya yazdırmadan toplu iş kuyruklarına, özel yazıcı seçeneklerine, platformla ilgili hususlara ve düzenlemelere tabi ortamlar için denetim günlüğüne kadar ele almıştır.
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.





