Skip to content

Merge Documents (BETA) ​

Laravel WordTemplate mendukung penggabungan beberapa file Word (DOCX) menjadi satu dokumen. Fitur ini berguna untuk laporan gabungan, append dokumen, atau arsip kontrak.

Merge Beberapa File DOCX ​

php
use Novay\Word\Facades\Word;

Word::merge([
    storage_path('app/reports/january.docx'),
    storage_path('app/reports/february.docx'),
    storage_path('app/reports/march.docx'),
])->save(storage_path('app/reports/q1.docx'));

👉 File january.docx, february.docx, dan march.docx akan digabung jadi q1.docx.

Merge dengan Download Langsung ​

php
return Word::merge([
    public_path('docs/intro.docx'),
    public_path('docs/chapter1.docx'),
    public_path('docs/chapter2.docx'),
])->download('book.docx');

Merge dari Builder + Template ​

Anda juga bisa menggabungkan hasil dari builder dengan template yang sudah ada.

php
$tempDoc = Word::builder()
    ->addTitle('Appendix', 1)
    ->addText('Ini adalah lampiran tambahan.')
    ->toTempFile();

Word::merge([
    'templates/main.docx',
    $tempDoc,
])->download('final.docx');

👉 main.docx akan digabung dengan hasil builder di final.docx.

Merge dengan Pemisah Halaman ​

Secara default, setiap dokumen akan digabung langsung. Jika ingin memaksa page break antar dokumen:

php
Word::merge([
    'templates/cover.docx',
    'templates/content.docx',
], ['pageBreak' => true])
->download('merged.docx');

👉 Cover akan diikuti oleh konten pada halaman baru.

Merge + Multi-format Export ​

php
Word::merge([
    'templates/part1.docx',
    'templates/part2.docx',
])
->export(storage_path('app/final/combined'), ['docx', 'pdf']);

👉 Hasil:

  • combined.docx
  • combined.pdf

📌 Tips ​

  • Gunakan merge([...]) untuk menggabungkan banyak file.
  • Bisa gabung template, builder result, atau campuran keduanya.
  • Opsi pageBreak => true menambahkan halaman baru antar file.
  • Hasil merge bisa di-save, download, atau export ke multi-format.