# Node.js Kullanarak PDF Dosyalarını Tek Bir PDF'ye Nasıl Birleştirilir
IronPDF, Node.js'de birkaç satır kodla birden fazla PDF dosyasını tek bir belge haline getirmenizi sağlar. Her dosyayı `PdfDocument.fromFile()` ile yükleyin, diziyi `PdfDocument.merge()` için iletin ve sonucu `toFile()` ile kaydedin.
*as-heading:2(Hızlı Başlangıç: PDF Dosyalarını Birleştirme)*
```javascript
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/quickstart-merge.js
// Install: npm install ironpdf
const IronPdf = require('ironpdf');
async function quickMerge() {
const docs = await Promise.all([
IronPdf.PdfDocument.fromFile('doc1.pdf'),
IronPdf.PdfDocument.fromFile('doc2.pdf'),
IronPdf.PdfDocument.fromFile('doc3.pdf'),
]);
const merged = await IronPdf.PdfDocument.merge(docs);
await merged.toFile('merged-output.pdf');
}
quickMerge();
```
<div class="hsg-featured-snippet">
<h3>Asgari İş Akışı (5 adım)</h3>
<ol>
<li>IronPDF'i yükleyin: <code>npm install ironpdf</code></li>
<li>Kütüphaneyi içe aktarın: <code>const IronPdf = require('ironpdf')</code></li>
<li>Her PDF dosyasını <code>PdfDocument.fromFile()</code> ile yükleyin</li>
<li>Yüklenen belgeleri <code>PdfDocument.merge()</code> ile birleştirin</li>
<li>Sonucu <code>toFile()</code> ile kaydedin</li>
</ol>
</div>
IronPDF, herhangi bir sistem düzeyinde PDF aracı gerektirmeden [HTML'den PDF'ye dönüşüm](https://ironpdf.com/nodejs/tutorials/html-to-pdf/), belge montajı ve PDF düzenlemesi yapan bir Node.js PDF işleme kütüphanesidir. Belgeleri birleştirirken, her kaynak dosyadaki yazı tiplerini, resimleri, gömülü formları ve sayfa geometrisini korur.
Üretime dağıtmadan önce, deneme filigranını kaldırmak ve tam çıktıyı etkinleştirmek için [IronPDF lisans anahtarınızı](https://ironpdf.com/nodejs/get-started/license-keys/) yapılandırın. İşletim sisteminiz için işleme motorunu kurmak amacıyla [IronPdfEngine yapılandırma kılavuzunu](https://ironpdf.com/nodejs/get-started/use-ironpdfengine/) takip edin.
<hr />
## Node.js'de Birden Fazla PDF Dosyasını Nasıl Birleştirebilirim?
`PdfDocument.merge()`, `PdfDocument` nesnelerinden oluşan bir diziyi kabul eder ve dizideki kaynak belgelerin görünme sırasına göre her sayfayı içeren yeni bir belge döndürür. İşlem tahrip edici değildir; orijinal dosya nesneleri değiştirilmez.
```javascript
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-pdfs.js
const IronPdf = require('ironpdf');
async function mergePdfs(outputFilePath, inputFiles) {
// Load all source documents in parallel
const pdfDocs = await Promise.all(
inputFiles.map(file => IronPdf.PdfDocument.fromFile(file))
);
// Combine into one document, preserving page order
const mergedPdf = await IronPdf.PdfDocument.merge(pdfDocs);
// Write the result to disk
await mergedPdf.toFile(outputFilePath);
console.log(`Merged PDF saved to ${outputFilePath}`);
}
(async () => {
const inputFiles = ['report-jan.pdf', 'report-feb.pdf', 'report-mar.pdf'];
await mergePdfs('quarterly-report.pdf', inputFiles);
})();
```
`Promise.all()`, kaynak dosyaları teker teker yüklemek yerine paralel olarak yükler, ki bu daha büyük koleksiyonları işlerken önemlidir. `merge()` çağrısı, belgeleri dizi sırasına göre birleştirir, bu nedenle dosyaları dizide istediğiniz çıktı sırasına göre yerleştirin.
[[t:(Dosya yollarını, mutlak yollar veya Node.js süreç çalışma dizinine göre göreli yollar olarak geçin. `fromFile()` yöntemi, yolları doğrudan komut dosyasının kendisine göre çözümlemez.)]]
### Kodun Her Bölümü Ne Yapar?
- **`PdfDocument.fromFile()`**: Diskteki bir PDF'i okur ve bir `PdfDocument` nesnesi döndürür. Tam yöntem imzaları için [IronPDF for Node.js API Referansı](https://ironpdf.com/nodejs/object-reference/api/)na bakın.
- **`Promise.all()`**: Tüm dosya yükleme işlemlerini aynı anda başlatır, çok belgeli birleştirmelerin toplam yükleme süresini azaltır. Bu kalıp, [çok iş parçacıklı ve eşzamanlı PDF oluşturma](https://ironpdf.com/nodejs/examples/threading/) senaryolarına da uygundur.
- **`PdfDocument.merge()`**: Yüklenmiş belgelerin dizisini tek bir `PdfDocument` halinde birleştirir ve her kaynağın tüm biçimlendirmesini, resimlerini ve gömülü içeriğini muhafaza eder.
- **`toFile()`**: Birleşik belgeyi belirtilen yola yazar. Çıktı dosya boyutunu azaltmak gerektiğinde [PDF sıkıştırma](https://ironpdf.com/nodejs/examples/pdf-compression/) ile bunu birleştirin.
<hr />
## Her PDF'den Belirli Sayfaları Nasıl Birleştiririm?
Her kaynak belgeden her sayfayı geçirmek her zaman hedef değildir. Her bir giriş dosyasından seçici sayfa aralıklarını birleştirmek için, belgeleri `merge()`'a iletmeden önce istenen sayfaları çıkarın.
```javascript
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-specific-pages.js
const IronPdf = require('ironpdf');
// Each entry specifies a file and the range of pages to include (zero-indexed)
const pageRanges = [
{ file: 'contract.pdf', startPage: 0, endPage: 2 },
{ file: 'appendix.pdf', startPage: 0, endPage: 0 },
{ file: 'signature.pdf', startPage: 0, endPage: 0 },
];
async function mergeSpecificPages(outputFile, ranges) {
const pdfsToMerge = [];
for (const range of ranges) {
const pdf = await IronPdf.PdfDocument.fromFile(range.file);
// extractPages returns a new PdfDocument with only the specified page range
const pages = pdf.extractPages(range.startPage, range.endPage);
pdfsToMerge.push(pages);
}
const merged = await IronPdf.PdfDocument.merge(pdfsToMerge);
await merged.toFile(outputFile);
}
mergeSpecificPages('assembled-contract.pdf', pageRanges);
```
`extractPages(startPage, endPage)` sıfır bazlı sayfa dizinlerini kabul eder. `0, 0` sadece ilk sayfayı çıkarırken, `0, 2` ilk üç sayfayı çıkarır. Döngü, `ranges`'de görünen sırayla sayfa aralığı belgelerinin bir dizisini oluşturur, ardından `merge()` onları son çıktıya birleştirir.
Bu kalıp, ayrı dosyalarda saklanan bir imza sayfası, bir ek ve bir ön kapaktan sözleşmeler düzenlerken faydalıdır. Her kaynaktan diskte dosyaları çoğaltmadan tam olarak önemli sayfaları toplayabilirsiniz.
[[i:(IronPDF'de sayfa dizinleri sıfır bazlıdır. Bir belgenin 1. sayfası dizin 0'dır, 2. sayfa dizin 1 ve bu şekilde devam eder.)]]
<hr />
## Birleştirilmiş Bir PDF'ye Üstbilgi ve Altbilgi Nasıl Eklenir?
Birleştirdikten sonra, tüm sayfalara tutarlı başlıklar ve alt bilgileri uygulamak için oluşan belgede `addHtmlHeader()` ve `addHtmlFooter()` çağrısı yapın. Bu yöntemler bir HTML dizesi ve bir seçenekler nesnesi kabul eder.
```javascript
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-with-headers-footers.js
const IronPdf = require('ironpdf');
async function mergeWithHeadersFooters(inputFiles, outputFile) {
const docs = await Promise.all(
inputFiles.map(f => IronPdf.PdfDocument.fromFile(f))
);
const mergedPdf = await IronPdf.PdfDocument.merge(docs);
// Apply a styled header to every page
await mergedPdf.addHtmlHeader('<h3 style="color:#333;">Quarterly Report</h3>', {
height: 25,
drawDividerLine: true,
});
// Apply a page-numbering footer
await mergedPdf.addHtmlFooter('<p style="font-size:10px;">Page {page} of {total-pages}</p>', {
height: 20,
drawDividerLine: true,
});
await mergedPdf.toFile(outputFile);
}
mergeWithHeadersFooters(['q1.pdf', 'q2.pdf', 'q3.pdf'], 'annual-report.pdf');
```
`{page}` ve `{total-pages}` yer tutucuları, birleştirilmiş belgenin sayfa sayısına karşı render zamanı çözülür. Başlık ya da alt bilgiyi sayfa içeriğinden görsel olarak ayırmak için `drawDividerLine: true` kullanın.
Birleşimden sonra üstbilgi ve altbilgi uygulamak, birleşik belgedeki her sayfanın, geldiği kaynak dosya ne olursa olsun, aynı muameleyi görmesini sağlar. Tam üstbilgi ve altbilgi yapılandırma seçenekleri için [HTML üstbilgi ve altbilgi örnekleri](https://ironpdf.com/nodejs/examples/adding-headers-and-footers-advanced/)ne bakın.
<hr />
## Birleştirilmiş Bir PDF Nasıl Parola İle Korunur?
Birleştirmeden sonra şifre koruması ve izin kısıtlamaları uygulamak için güvenlik seçenekleri nesnesiyle `saveAs()` çağrısı yapın. Bu, birleşik belgeye yetkisiz erişimi önler.
```javascript
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-with-security.js
const IronPdf = require('ironpdf');
async function mergeWithSecurity(inputFiles, outputFile) {
const docs = await Promise.all(
inputFiles.map(f => IronPdf.PdfDocument.fromFile(f))
);
const mergedPdf = await IronPdf.PdfDocument.merge(docs);
// Restrict the merged document to print-only access
await mergedPdf.saveAs(outputFile, {
userPassword: 'viewerpass',
ownerPassword: 'adminpass',
allowUserAnnotations: false,
allowUserCopyPasteContent: false,
allowUserFormData: false,
allowUserPrinting: true,
});
}
mergeWithSecurity(['invoice-1.pdf', 'invoice-2.pdf'], 'secured-invoices.pdf');
```
`userPassword` belgeyi açmak için gereklidir; `ownerPassword` izin ayarlarını kendileri kontrol eder. Diğer izin bayraklarını devre dışı bırakırken `allowUserPrinting: true` ayarlamak, alıcıların belgeyi yazdırmasına izin verir, fakat düzenleme, kopyalama ve açıklama yapmalarını engeller. Kullanılabilir izin bayraklarının tam listesi için [IronPDF Node.js API Referansı](https://ironpdf.com/nodejs/object-reference/api/)na bakın.
[[n:(Kaynak PDF'ler zaten şifre korumalıysa, her belgenin çözme şifresini `fromFile()` ile yüklerken sağlayın. Şifresini vermeden şifreli bir belgeyi birleştirme girişimi bir hataya neden olur.)]]
<hr />
## PDF'leri Nasıl Birleştirir ve Dijital İmza Eklerim?
PDF'leri birleştirip hemen ardından imzalamak, tüm kaynak içeriği kapsayan tek bir imzalı belge üretir. `applySignature()`, birleşik çıktıya dijital sertifika eklemek için `merge()` sonrasında uygulayın.
```javascript
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-with-signature.js
const IronPdf = require('ironpdf');
async function mergeAndSign(inputFiles, outputFile, pfxPath, pfxPassword) {
const docs = await Promise.all(
inputFiles.map(f => IronPdf.PdfDocument.fromFile(f))
);
const mergedPdf = await IronPdf.PdfDocument.merge(docs);
// Attach a digital signature using a PFX certificate
await mergedPdf.applySignature(pfxPath, pfxPassword);
await mergedPdf.toFile(outputFile);
}
mergeAndSign(
['section-a.pdf', 'section-b.pdf'],
'signed-report.pdf',
'certificate.pfx',
'certpass'
);
```
`applySignature()` yöntemi, PDF meta verilerine sertifikayı gömer, böylece okuyucular belge bütünlüğünü doğrulayabilir. Bu iş akışı, birden fazla bölümün birleştirildiği ve ardından dağıtımdan önce birlikte imzalandığı sözleşme montajı hatlarında yaygındır. Sertifika tabanlı imzalamayı tam bir şekilde ele almak için, [dijital imzalar örnekleri](https://ironpdf.com/nodejs/examples/digitally-sign-a-pdf/)ne bakın.
[[t:(Birleşik belgeyi imzalayın, ayrı kaynak dosyaları değil, tüm birleşik belgeyi onaylayan tek bir sertifika gerektiğinde.)]]
<hr />
## Yaygın PDF Birleştirme Hatalarını Nasıl Gideririm?
Birleşme sırasında çoğu hata, dört kategoriye ayrılır: eksik dosyalar, bellek tükenmesi, bozuk girişler ve izin sorunları. Aşağıdaki tablo en sık nedenleri ve her biri nasıl ele alınacağını listeler.
<table class="content__data-table" data-content-table>
<caption>Yaygın PDF birleştirme hataları ve çözümleri</caption>
<thead>
<tr><th>Hata</th><th>Muhtemel Sebep</th><th>Çözüm</th></tr>
</thead>
<tbody>
<tr><td>Dosya bulunamadı</td><td>Yanlış yol veya çalışma dizini uyumsuzluğu</td><td>Mutlak yollar kullanın veya süreç çalışma dizinini doğrulayın</td></tr>
<tr><td>JavaScript yığını bellek dışında</td><td>Birçok büyük PDF'nin aynı anda yüklenmesi</td><td>Node.js bellek artırın: <code>node --max-old-space-size=4096 script.js</code></td></tr>
<tr><td>Geçersiz veya bozuk PDF</td><td>Kaynak dosya hasarlı veya geçerli bir PDF değil</td><td>İşlemden önce PDF okuyucuyla kaynak dosyaları doğrulayın</td></tr>
<tr><td>İzin reddedildi</td><td>Girişte okuma erişimi yok veya çıktıda yazma erişimi yok</td><td>İşletim sisteminde dosya ve dizin izinlerini kontrol edin</td></tr>
<tr><td>Şifreli kaynak PDF</td><td>Giriş PDF'si açmak için bir parola gerektirir</td><td>Şifreyi <code>fromFile()</code>'ye ikinci argüman olarak geçin</td></tr>
</tbody>
</table>
Ortam özelindeki kurulum sorunları için [IronPDF değişiklik günlüğü](https://ironpdf.com/nodejs/product-updates/changelog/) belgelenmiş sorunlar ve düzeltmeler içerir. Yukarıdaki tabloyu kontrol ettikten sonra sorunlar devam ederse, kütüphaneden tam hata mesajını yüzeye çıkarmak için bir `try-catch` bloğuna sarın.
[[e:(Giriş dizinizdeki her dosya yolunun var olduğundan emin olmak için her zaman `fromFile()` çağrı yapmadan önce doğrulayın. Tek bir eksik dosya, tüm `Promise.all()` çağrısının reddedilmesine yol açar, birleştirmeyi iptal eder.)]]
Node.js yalnız başına ön uç yol doğrulaması için yararlı araçlar sağlar. [Node.js `fs.promises.access`](https://nodejs.org/api/fs.html#fspromisesaccesspath-mode) yöntemi, bir dosyanın okunabilir olup olmadığını kontrol etmenizi ve ardından IronPDF'e iletmenizi sağlar. Benzer birleşme hata senaryolarını topluluk geliştiricilerinin nasıl ele aldığına dair sorular için, [Node.js'de PDF'leri birleştirme](https://stackoverflow.com/questions/36766234/nodejs-merge-two-pdf-files-into-one-using-the-buffer-obtained-by-reading-them) konusunda Ekstra bilgi için bilgi sağlar.
<hr />
## Node.js'de PDF Birleştirmenin Bir Sonraki Adımları Nelerdir?
Yukarıdaki örnekler, en yaygın birleştirme senaryolarını kapsar: temel dosya kombinasyonu, sayfa aralığı seçimi, üstbilgi ve altbilgi enjeksiyonu, parola koruması ve dijital imzalama. IronPDF ayrıca birleşmiş sayfalarda [PDF formlarını yönetmeyi](https://ironpdf.com/nodejs/examples/form-data/), birleşik belgeye [yeni içerik mühürlemeyi](https://ironpdf.com/nodejs/examples/stamping-new-content/) ve önizleme üretimi için [nihai çıktının rasterize edilmiş görüntülerini](https://ironpdf.com/nodejs/examples/rasterize-a-pdf-to-images/) üretmeyi destekler.
[30 günlük ücretsiz denemenizi başlatın](#trial-license) ve filigransız birleşmeyi test edin veya dağıtıma hazır olduğunuzda [lisans seçeneklerini görüntüleyin](#licensing).
IronPDF'nin başka neler yapabileceğini görmeye hazır mısınız? Tam API uygulaması ve ek nasıl yapılır kılavuzları için [IronPDF for Node.js belgelerine](https://ironpdf.com/nodejs/docs/) göz atın.
IronPDF, Node.js'de birkaç satır kodla birden fazla PDF dosyasını tek bir belge haline getirmenizi sağlar. Her dosyayı PdfDocument.fromFile() ile yükleyin, diziyi PdfDocument.merge() için iletin ve sonucu toFile() ile kaydedin.
Her PDF dosyasını PdfDocument.fromFile() ile yükleyin
Yüklenen belgeleri PdfDocument.merge() ile birleştirin
Sonucu toFile() ile kaydedin
IronPDF, herhangi bir sistem düzeyinde PDF aracı gerektirmeden HTML'den PDF'ye dönüşüm, belge montajı ve PDF düzenlemesi yapan bir Node.js PDF işleme kütüphanesidir. Belgeleri birleştirirken, her kaynak dosyadaki yazı tiplerini, resimleri, gömülü formları ve sayfa geometrisini korur.
Node.js'de Birden Fazla PDF Dosyasını Nasıl Birleştirebilirim?
PdfDocument.merge(), PdfDocument nesnelerinden oluşan bir diziyi kabul eder ve dizideki kaynak belgelerin görünme sırasına göre her sayfayı içeren yeni bir belge döndürür. İşlem tahrip edici değildir; orijinal dosya nesneleri değiştirilmez.
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-pdfs.jsconstIronPdf = require('ironpdf');async function mergePdfs(outputFilePath, inputFiles) { // Load all source documents in parallel const pdfDocs = await Promise.all( inputFiles.map(file =>IronPdf.PdfDocument.fromFile(file)) ); // Combine into one document, preserving page order const mergedPdf = awaitIronPdf.PdfDocument.merge(pdfDocs); // Write the result to disk await mergedPdf.toFile(outputFilePath); console.log(`Merged PDF saved to ${outputFilePath}`);}(async () => { const inputFiles = ['report-jan.pdf', 'report-feb.pdf', 'report-mar.pdf']; await mergePdfs('quarterly-report.pdf', inputFiles);})();
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-pdfs.js
const IronPdf = require('ironpdf');
async function mergePdfs(outputFilePath, inputFiles) {
// Load all source documents in parallel
const pdfDocs = await Promise.all(
inputFiles.map(file => IronPdf.PdfDocument.fromFile(file))
);
// Combine into one document, preserving page order
const mergedPdf = await IronPdf.PdfDocument.merge(pdfDocs);
// Write the result to disk
await mergedPdf.toFile(outputFilePath);
console.log(`Merged PDF saved to ${outputFilePath}`);
}
(async () => {
const inputFiles = ['report-jan.pdf', 'report-feb.pdf', 'report-mar.pdf'];
await mergePdfs('quarterly-report.pdf', inputFiles);
})();
JavaScript
Promise.all(), kaynak dosyaları teker teker yüklemek yerine paralel olarak yükler, ki bu daha büyük koleksiyonları işlerken önemlidir. merge() çağrısı, belgeleri dizi sırasına göre birleştirir, bu nedenle dosyaları dizide istediğiniz çıktı sırasına göre yerleştirin.
İpuçları: Dosya yollarını, mutlak yollar veya Node.js süreç çalışma dizinine göre göreli yollar olarak geçin. fromFile() yöntemi, yolları doğrudan komut dosyasının kendisine göre çözümlemez.
Kodun Her Bölümü Ne Yapar?
PdfDocument.fromFile(): Diskteki bir PDF'i okur ve bir PdfDocument nesnesi döndürür. Tam yöntem imzaları için IronPDF for Node.js API Referansına bakın.
Promise.all(): Tüm dosya yükleme işlemlerini aynı anda başlatır, çok belgeli birleştirmelerin toplam yükleme süresini azaltır. Bu kalıp, çok iş parçacıklı ve eşzamanlı PDF oluşturma senaryolarına da uygundur.
PdfDocument.merge(): Yüklenmiş belgelerin dizisini tek bir PdfDocument halinde birleştirir ve her kaynağın tüm biçimlendirmesini, resimlerini ve gömülü içeriğini muhafaza eder.
toFile(): Birleşik belgeyi belirtilen yola yazar. Çıktı dosya boyutunu azaltmak gerektiğinde PDF sıkıştırma ile bunu birleştirin.
Her PDF'den Belirli Sayfaları Nasıl Birleştiririm?
Her kaynak belgeden her sayfayı geçirmek her zaman hedef değildir. Her bir giriş dosyasından seçici sayfa aralıklarını birleştirmek için, belgeleri merge()'a iletmeden önce istenen sayfaları çıkarın.
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-specific-pages.jsconstIronPdf = require('ironpdf');// Each entry specifies a file and the range of pages to include (zero-indexed)const pageRanges = [ { file: 'contract.pdf', startPage: 0, endPage: 2 }, { file: 'appendix.pdf', startPage: 0, endPage: 0 }, { file: 'signature.pdf', startPage: 0, endPage: 0 },];async function mergeSpecificPages(outputFile, ranges) { const pdfsToMerge = []; for (const range of ranges) { const pdf = awaitIronPdf.PdfDocument.fromFile(range.file); // extractPages returns a new PdfDocument with only the specified page range const pages = pdf.extractPages(range.startPage, range.endPage); pdfsToMerge.push(pages); } const merged = awaitIronPdf.PdfDocument.merge(pdfsToMerge); await merged.toFile(outputFile);}mergeSpecificPages('assembled-contract.pdf', pageRanges);
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-specific-pages.js
const IronPdf = require('ironpdf');
// Each entry specifies a file and the range of pages to include (zero-indexed)
const pageRanges = [
{ file: 'contract.pdf', startPage: 0, endPage: 2 },
{ file: 'appendix.pdf', startPage: 0, endPage: 0 },
{ file: 'signature.pdf', startPage: 0, endPage: 0 },
];
async function mergeSpecificPages(outputFile, ranges) {
const pdfsToMerge = [];
for (const range of ranges) {
const pdf = await IronPdf.PdfDocument.fromFile(range.file);
// extractPages returns a new PdfDocument with only the specified page range
const pages = pdf.extractPages(range.startPage, range.endPage);
pdfsToMerge.push(pages);
}
const merged = await IronPdf.PdfDocument.merge(pdfsToMerge);
await merged.toFile(outputFile);
}
mergeSpecificPages('assembled-contract.pdf', pageRanges);
JavaScript
extractPages(startPage, endPage) sıfır bazlı sayfa dizinlerini kabul eder. 0, 0 sadece ilk sayfayı çıkarırken, 0, 2 ilk üç sayfayı çıkarır. Döngü, ranges'de görünen sırayla sayfa aralığı belgelerinin bir dizisini oluşturur, ardından merge() onları son çıktıya birleştirir.
Bu kalıp, ayrı dosyalarda saklanan bir imza sayfası, bir ek ve bir ön kapaktan sözleşmeler düzenlerken faydalıdır. Her kaynaktan diskte dosyaları çoğaltmadan tam olarak önemli sayfaları toplayabilirsiniz.
Lütfen dikkate alın: IronPDF'de sayfa dizinleri sıfır bazlıdır. Bir belgenin 1. sayfası dizin 0'dır, 2. sayfa dizin 1 ve bu şekilde devam eder.
Birleştirilmiş Bir PDF'ye Üstbilgi ve Altbilgi Nasıl Eklenir?
Birleştirdikten sonra, tüm sayfalara tutarlı başlıklar ve alt bilgileri uygulamak için oluşan belgede addHtmlHeader() ve addHtmlFooter() çağrısı yapın. Bu yöntemler bir HTML dizesi ve bir seçenekler nesnesi kabul eder.
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-with-headers-footers.jsconstIronPdf = require('ironpdf');async function mergeWithHeadersFooters(inputFiles, outputFile) { const docs = await Promise.all( inputFiles.map(f =>IronPdf.PdfDocument.fromFile(f)) ); const mergedPdf = awaitIronPdf.PdfDocument.merge(docs); // Apply a styled header to every page await mergedPdf.addHtmlHeader('<h3 style="color:#333;">Quarterly Report</h3>', { height: 25, drawDividerLine: true, }); // Apply a page-numbering footer await mergedPdf.addHtmlFooter('<p style="font-size:10px;">Page {page} of {total-pages}</p>', { height: 20, drawDividerLine: true, }); await mergedPdf.toFile(outputFile);}mergeWithHeadersFooters(['q1.pdf', 'q2.pdf', 'q3.pdf'], 'annual-report.pdf');
{page} ve {total-pages} yer tutucuları, birleştirilmiş belgenin sayfa sayısına karşı render zamanı çözülür. Başlık ya da alt bilgiyi sayfa içeriğinden görsel olarak ayırmak için drawDividerLine: true kullanın.
Birleşimden sonra üstbilgi ve altbilgi uygulamak, birleşik belgedeki her sayfanın, geldiği kaynak dosya ne olursa olsun, aynı muameleyi görmesini sağlar. Tam üstbilgi ve altbilgi yapılandırma seçenekleri için HTML üstbilgi ve altbilgi örneklerine bakın.
Birleştirilmiş Bir PDF Nasıl Parola İle Korunur?
Birleştirmeden sonra şifre koruması ve izin kısıtlamaları uygulamak için güvenlik seçenekleri nesnesiyle saveAs() çağrısı yapın. Bu, birleşik belgeye yetkisiz erişimi önler.
userPassword belgeyi açmak için gereklidir; ownerPassword izin ayarlarını kendileri kontrol eder. Diğer izin bayraklarını devre dışı bırakırken allowUserPrinting: true ayarlamak, alıcıların belgeyi yazdırmasına izin verir, fakat düzenleme, kopyalama ve açıklama yapmalarını engeller. Kullanılabilir izin bayraklarının tam listesi için IronPDF Node.js API Referansına bakın.
Önemli: Kaynak PDF'ler zaten şifre korumalıysa, her belgenin çözme şifresini fromFile() ile yüklerken sağlayın. Şifresini vermeden şifreli bir belgeyi birleştirme girişimi bir hataya neden olur.
PDF'leri Nasıl Birleştirir ve Dijital İmza Eklerim?
PDF'leri birleştirip hemen ardından imzalamak, tüm kaynak içeriği kapsayan tek bir imzalı belge üretir. applySignature(), birleşik çıktıya dijital sertifika eklemek için merge() sonrasında uygulayın.
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-with-signature.jsconstIronPdf = require('ironpdf');async function mergeAndSign(inputFiles, outputFile, pfxPath, pfxPassword) { const docs = await Promise.all( inputFiles.map(f =>IronPdf.PdfDocument.fromFile(f)) ); const mergedPdf = awaitIronPdf.PdfDocument.merge(docs); // Attach a digital signature using a PFX certificate await mergedPdf.applySignature(pfxPath, pfxPassword); await mergedPdf.toFile(outputFile);}mergeAndSign( ['section-a.pdf', 'section-b.pdf'], 'signed-report.pdf', 'certificate.pfx', 'certpass');
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-merge-pdf/merge-with-signature.js
const IronPdf = require('ironpdf');
async function mergeAndSign(inputFiles, outputFile, pfxPath, pfxPassword) {
const docs = await Promise.all(
inputFiles.map(f => IronPdf.PdfDocument.fromFile(f))
);
const mergedPdf = await IronPdf.PdfDocument.merge(docs);
// Attach a digital signature using a PFX certificate
await mergedPdf.applySignature(pfxPath, pfxPassword);
await mergedPdf.toFile(outputFile);
}
mergeAndSign(
['section-a.pdf', 'section-b.pdf'],
'signed-report.pdf',
'certificate.pfx',
'certpass'
);
JavaScript
applySignature() yöntemi, PDF meta verilerine sertifikayı gömer, böylece okuyucular belge bütünlüğünü doğrulayabilir. Bu iş akışı, birden fazla bölümün birleştirildiği ve ardından dağıtımdan önce birlikte imzalandığı sözleşme montajı hatlarında yaygındır. Sertifika tabanlı imzalamayı tam bir şekilde ele almak için, dijital imzalar örneklerine bakın.
İpuçları: Birleşik belgeyi imzalayın, ayrı kaynak dosyaları değil, tüm birleşik belgeyi onaylayan tek bir sertifika gerektiğinde.
Yaygın PDF Birleştirme Hatalarını Nasıl Gideririm?
Birleşme sırasında çoğu hata, dört kategoriye ayrılır: eksik dosyalar, bellek tükenmesi, bozuk girişler ve izin sorunları. Aşağıdaki tablo en sık nedenleri ve her biri nasıl ele alınacağını listeler.
Yaygın PDF birleştirme hataları ve çözümleri
Hata
Muhtemel Sebep
Çözüm
Dosya bulunamadı
Yanlış yol veya çalışma dizini uyumsuzluğu
Mutlak yollar kullanın veya süreç çalışma dizinini doğrulayın
İşlemden önce PDF okuyucuyla kaynak dosyaları doğrulayın
İzin reddedildi
Girişte okuma erişimi yok veya çıktıda yazma erişimi yok
İşletim sisteminde dosya ve dizin izinlerini kontrol edin
Şifreli kaynak PDF
Giriş PDF'si açmak için bir parola gerektirir
Şifreyi fromFile()'ye ikinci argüman olarak geçin
Ortam özelindeki kurulum sorunları için IronPDF değişiklik günlüğü belgelenmiş sorunlar ve düzeltmeler içerir. Yukarıdaki tabloyu kontrol ettikten sonra sorunlar devam ederse, kütüphaneden tam hata mesajını yüzeye çıkarmak için bir try-catch bloğuna sarın.
Dikkat: Giriş dizinizdeki her dosya yolunun var olduğundan emin olmak için her zaman fromFile() çağrı yapmadan önce doğrulayın. Tek bir eksik dosya, tüm Promise.all() çağrısının reddedilmesine yol açar, birleştirmeyi iptal eder.
Node.js yalnız başına ön uç yol doğrulaması için yararlı araçlar sağlar. Node.js fs.promises.access yöntemi, bir dosyanın okunabilir olup olmadığını kontrol etmenizi ve ardından IronPDF'e iletmenizi sağlar. Benzer birleşme hata senaryolarını topluluk geliştiricilerinin nasıl ele aldığına dair sorular için, Node.js'de PDF'leri birleştirme konusunda Ekstra bilgi için bilgi sağlar.
Node.js'de PDF Birleştirmenin Bir Sonraki Adımları Nelerdir?
Yukarıdaki örnekler, en yaygın birleştirme senaryolarını kapsar: temel dosya kombinasyonu, sayfa aralığı seçimi, üstbilgi ve altbilgi enjeksiyonu, parola koruması ve dijital imzalama. IronPDF ayrıca birleşmiş sayfalarda PDF formlarını yönetmeyi, birleşik belgeye yeni içerik mühürlemeyi ve önizleme üretimi için nihai çıktının rasterize edilmiş görüntülerini üretmeyi destekler.
IronPDF'nin başka neler yapabileceğini görmeye hazır mısınız? Tam API uygulaması ve ek nasıl yapılır kılavuzları için IronPDF for Node.js belgelerine göz atın.
Sıkça Sorulan Sorular
Node.js'te birden fazla PDF dosyasını tek bir dosyada nasıl birleştiririm?
Her dosyayı PdfDocument.fromFile() ile yükleyin, sonuçları bir diziye toplayın, diziyi PdfDocument.merge()'e aktarın ve çıktıyı toFile() ile kaydedin. Üç veya daha fazla belge birleştirirken dosyaları paralel olarak yüklemek için Promise.all() kullanın.
IronPDF, PDF dosyalarını birleştirirken biçimlendirmeyi korur mu?
Evet. IronPDF, her kaynak belgeden yazı tiplerini, resimleri, gömülü formları ve sayfa geometrisini korur. Birleştirilen çıktı, giriş dizisinde kaynak dosyaların göründüğü sırada, her sayfanın özgün düzenini muhafaza eder.
Her PDF'den sadece belirli sayfaları nasıl birleştiririm?
Yüklenen her bir belgeden önce PdfDocument.merge() işlevine geçmeden, extractPages(startPage, endPage) çağrısını yapın. Sayfa indeksleri sıfırdan başlar, bu yüzden ilk sayfa indeks 0'dır. Döndürülen belge, yalnızca belirtilen aralığı içerir.
Birleştirilmiş bir PDF dosyasına üstbilgi ve altbilgi ekleyebilir miyim?
Evet. Birleştirdikten sonra, ortaya çıkan belgede addHtmlHeader() ve addHtmlFooter() çağırın. Her iki yöntem de bir HTML dizesi ve bir seçenekler nesnesi kabul eder. Otomatik sayfa numaralandırma için {page} ve {total-pages} yer tutucularını kullanın.
Node.js ile birleştirilmiş bir PDF'yi parolayla nasıl koruma altına alabilirim?
userPassword, ownerPassword ve allowUserPrinting gibi izin bayraklarını belirten bir güvenlik seçenekleri nesnesi ile saveAs() çağırın. Belgeyi açmak için userPassword gereklidir; ownerPassword ise izin ayarlarını kontrol eder.
Bir dosya bulunamadı hatasıyla birleştirme başarısız olursa ne yapmalıyım?
Tüm giriş dosya yollarının Node.js süreci çalışma dizinine göre doğru olduğundan emin olun veya mutlak yolları kullanın. Her dosyanın okunabilir olduğunu doğrulamak için fs.promises.access() kullanın ve ardından PdfDocument.fromFile()'i çağırın.
Kaynak PDF'lerden biri şifreli ise ne olur?
Bir şifresi olan bir PDF'yi şifresini sağlamadan yüklemeye çalışmak bir hata verecek ve tüm Promise.all() çağrısını reddedecektir. Birleştirmeden önce fromFile() fonksiyonuna belgenin şifresini ikinci argüman olarak sağlayın.
IronPDF ile PDF birleştirmek için lisans anahtarına ihtiyacım var mı?
IronPDF, geliştirme sırasında bir lisans anahtarı olmadan çalışır, ancak çıktı belgelerine bir deneme filigranı ekler. Filigranı kaldırmak ve tam işlevselliği etkinleştirmek için üretime dağıtmadan önce geçerli bir lisans anahtarını yapılandırın.
How can I combine PDFs and ensure they preserve all formatting and content with IronPDF?
The `PdfDocument.merge()` method in IronPDF concatenates loaded PDFs into a single document, preserving all formatting, images, and embedded content from each source.
What additional features does IronPDF offer for working with PDFs in Node.js?
IronPDF supports HTML to PDF conversion, PDF modification, digital signatures, password protection, and more, providing a comprehensive toolkit for handling PDF documents in Node.js.
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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.