Penggabung Dokumen

The Aspose.Words Document Merger for .NET memungkinkan Anda secara programatik menggabungkan sejumlah dokumen Word‑compatible menjadi satu output tunggal sambil mempertahankan format, gaya, tata letak halaman, header/footer, dan bidang. Penggunaan umum meliputi menyusun laporan, menggabungkan lampiran kontrak, atau mengumpulkan konten yang dihasilkan untuk pengarsipan.

Jika Anda mencoba mengakses fitur plugin lain yang melampaui ruang lingkup lisensi berbayar Anda, aplikasi Anda akan secara otomatis beralih ke mode percobaan. Opsi ini memungkinkan pengguna menjelajahi fungsionalitas tambahan tanpa komitmen keuangan langsung.

Instalasi dan Penyiapan

  1. Instal paket NuGet Aspose.Words.
  2. Terapkan metered licensing pada saat aplikasi dimulai untuk menghindari watermark evaluasi. Lihat Metered Licensing .
  3. Verifikasi persyaratan kerangka kerja di Panduan Instalasi .

IDE: Visual Studio 2017–2026, JetBrains Rider, MonoDevelop.

Input / Output yang Didukung: DOC, DOCX, RTF, DOT, DOTX, DOTM, DOCM, Word 2003 XML, dan Word 2007 XML.

Pantau Konsumsi: Manfaatkan metode GetConsumptionQuantity untuk melacak total jumlah permintaan API yang dikonsumsi.

using Aspose.Words;

var master = new Document();
var builder = new DocumentBuilder(master);

builder.InsertBreak(BreakType.SectionBreakNewPage);

ImportFormatMode mode = ImportFormatMode.KeepSourceFormatting;

foreach (string path in new[] { "Blank.docx", "Background images.docx", "annex.rtf" })
{
    var src = new Document(path);
    master.AppendDocument(src, mode);
    builder.MoveToDocumentEnd();
    builder.InsertBreak(BreakType.SectionBreakNewPage);
}

master.UpdateFields();
master.Save("MergedOutput.docx");

Contoh kode berikut menunjukkan cara mengatur kunci metered Anda:

  • KeepSourceFormatting — mempertahankan gaya dan pemformatan langsung setiap sumber (ideal untuk sisipan bermerek).
  • UseDestinationStyles — memetakan nama gaya yang identik ke definisi tujuan untuk tampilan yang seragam.

Skalabilitas: Dengan mudah sesuaikan lisensi Anda seiring evolusi kebutuhan aplikasi Anda.

Mulai setiap dokumen pada Halaman Baru, Berlanjut, atau Halaman Genap/Ganjil:

var sect = master.LastSection;
sect.PageSetup.SectionStart = SectionStart.NewPage; // Continuous, EvenPage, OddPage

Seragamkan margin/ukuran halaman dengan menyalin PageSetup dari bagian templat:

using Aspose.Words;
var master = new Document();

var template = new Document("template.docx");
var pageSetup = template.FirstSection.PageSetup;
foreach (Section s in master.Sections)
{
    s.PageSetup.Orientation = pageSetup.Orientation;
    s.PageSetup.PageWidth  = pageSetup.PageWidth;
    s.PageSetup.PageHeight = pageSetup.PageHeight;
    s.PageSetup.TopMargin  = pageSetup.TopMargin;
    s.PageSetup.BottomMargin = pageSetup.BottomMargin;
    s.PageSetup.LeftMargin = pageSetup.LeftMargin;
    s.PageSetup.RightMargin = pageSetup.RightMargin;
}

Plugin Aspose.Words Document AI untuk .NET memungkinkan pengembang untuk menerjemahkan atau merangkum dokumen serta memeriksa tata bahasa mereka. Terintegrasi dengan LLM seperti Gemini, Claude, dan OpenAI.

Instalasi dan Penyiapan:

// Copy headers/footers from a master template into every section
var hft = new Document("header-footer-template.docx");
foreach (Section s in master.Sections)
{
    s.HeadersFooters.Clear();
    s.HeadersFooters.AddClone(hft.FirstSection.HeadersFooters[HeaderFooterType.HeaderPrimary]);
    s.HeadersFooters.AddClone(hft.FirstSection.HeadersFooters[HeaderFooterType.FooterPrimary]);
}

// Add a simple text watermark
foreach (Section s in master.Sections)
{
    var header = s.HeadersFooters[HeaderFooterType.HeaderPrimary] ?? new HeaderFooter(master, HeaderFooterType.HeaderPrimary);
    if (header.ParentNode == null) s.HeadersFooters.Add(header);
    var shape = new Shape(master, ShapeType.TextPlainText)
    {
        RelativeHorizontalPosition = RelativeHorizontalPosition.Page,
        RelativeVerticalPosition   = RelativeVerticalPosition.Page,
        WrapType = WrapType.None,
        Rotation = -40,
        Width = 400, Height = 100, Left = 100, Top = 200,
        BehindText = true
    };
    shape.TextPath.Text = "CONFIDENTIAL";
    header.AppendChild(shape);
}

Konfigurasikan Lisensi Metered sebelum menjalankan operasi mail-merge.

Setelah menggabungkan, perbarui bidang sehingga nomor halaman, referensi, dan Daftar Isi cocok dengan tata letak baru:

master.UpdateFields();
master.UpdatePageLayout();        // ensures accurate page count
master.UpdateTableLayout();       // improves complex table pagination

Format Template / Output yang Didukung: DOC, DOCX, RTF, DOT, DOTX, DOTM, DOCM, Word 2003 XML, dan Word 2007 XML.:

using Aspose.Words;
var master = new Document();

var b = new DocumentBuilder(master);
b.MoveToDocumentStart();
b.InsertTableOfContents("TOC \\$1 \\$1 \\$1 \\$1");  // classic TOC switch set
master.UpdateFields();

Terjemahkan Dokumen

using System.IO;
using System.Collections.Generic;
using Aspose.Words;
using Aspose.Words.Lists;

IEnumerable<Stream> sourceStreams = new List<Stream>();

using (var output = new MemoryStream())
{
    var dst = new Document();
    foreach (Stream srcStream in sourceStreams)
    {
        using var s = srcStream; // e.g., S3/Blob stream
        var src = new Document(s); // auto‑detects format
        dst.AppendDocument(src, ImportFormatMode.UseDestinationStyles);
    }
    dst.UpdateFields();
    dst.Save(output, SaveFormat.docx);
    output.Position = 0;
    // return/output stream
}

Tips kinerja:

  • Tambahkan secara batch di memori; panggil UpdateFields() sekali di akhir.
  • Lebih suka UseDestinationStyles ketika Anda menginginkan gaya yang konsisten di seluruh puluhan input.
  • Buang Document instansi lebih awal dalam pipeline panjang untuk mengurangi memori puncak.

Praktik Terbaik

  • Pra‑validasi untuk korupsi/kata sandi agar menghindari penggabungan parsial.
  • Pilih KeepSourceFormatting ketika kesetiaan merek penting; pilih UseDestinationStyles untuk tampilan seragam.
  • Sisipkan sebuah pemisah bagian sebelum setiap penambahan untuk melindungi pengaturan halaman.
  • Seragamkan header/footer setelah menambahkan jika Anda menginginkan satu templat korporat.
  • Perbarui bidang & TOC sebagai langkah akhir.
  • Untuk batch yang sangat besar, bagi menjadi grup dan gabungkan grup tersebut untuk menjaga memori tetap stabil.

FAQ

  1. Bisakah saya memaksa setiap sumber mulai pada halaman baru? Ya. Sisipkan bagian atau jeda halaman sebelum setiap AppendDocument panggilan atau set SectionStart menjadi NewPage.
  2. Bagaimana cara saya mempertahankan gaya tujuan saat mengimpor? Gunakan ImportFormatMode.UseDestinationStyles di AppendDocument.
  3. Apakah nomor halaman dan TOC akan diperbarui secara otomatis? Panggil UpdateFields() (dan UpdatePageLayout() untuk paginasi yang tepat) setelah semua penambahan.
  4. Apakah Office diperlukan? Tidak. Aspose.Words adalah pustaka mandiri.
 Indonesia