GroupDocs.Merger.LowCode 26.7.0

Prefix Reserved
dotnet add package GroupDocs.Merger.LowCode --version 26.7.0
                    
NuGet\Install-Package GroupDocs.Merger.LowCode -Version 26.7.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="GroupDocs.Merger.LowCode" Version="26.7.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="GroupDocs.Merger.LowCode" Version="26.7.0" />
                    
Directory.Packages.props
<PackageReference Include="GroupDocs.Merger.LowCode" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add GroupDocs.Merger.LowCode --version 26.7.0
                    
#r "nuget: GroupDocs.Merger.LowCode, 26.7.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package GroupDocs.Merger.LowCode@26.7.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=GroupDocs.Merger.LowCode&version=26.7.0
                    
Install as a Cake Addin
#tool nuget:?package=GroupDocs.Merger.LowCode&version=26.7.0
                    
Install as a Cake Tool

Document Merger .NET API — Low Code

Package version Package downloads .NET 6.0

banner


Docs Reference Examples Blog Releases Support License


GroupDocs.Merger.LowCode is the low-code edition of GroupDocs.Merger for .NET. Instead of the full document-manipulation API it exposes a handful of single-purpose products: each one targets a single file format and a single operation, is configured entirely through its constructor, and runs when you call Save. Each product is licensed in its own right. The rest of the library — including the Merger class itself — stays internal to the package.

Reach for this package when an application needs one well-defined operation (merge these PDFs, split this presentation) and you would rather not take a dependency on the whole API surface. If you need cross-format merging, OLE embedding, page rotation, password handling or previews, install the full GroupDocs.Merger package instead.

Content


Top

Get Started

The package targets net6.0 only. Execute the following from the Package Manager Console in Visual Studio:

Install-Package GroupDocs.Merger.LowCode

To upgrade an existing installation, run Update-Package GroupDocs.Merger.LowCode.

Every product lives in the GroupDocs.Merger.LowCode namespace; the options types it accepts come from GroupDocs.Merger.Domain.Options.

Top

The Seven Products

Product Operation Input format Constructor arguments
JoinDocx Append documents DOCX source path or Stream, IEnumerable<string> documents, IJoinOptions
JoinPdf Append documents PDF source path or Stream, IEnumerable<string> documents, IJoinOptions
JoinPptx Append documents PPTX source path or Stream, IEnumerable<string> documents, IJoinOptions
SplitDocx Split into several documents DOCX source path or Stream, page selection
SplitPdf Split into several documents PDF source path or Stream, page selection
SplitPptx Split into several documents PPTX source path or Stream, page selection
RemovePagesPdf Remove pages PDF source path or Stream, IRemoveOptions

Each product exposes exactly one method, Save(string outputPath), which performs the operation and writes the result. The split products write one file per part; every other product writes one file. When the source is a Stream, the document is read from the start of the stream regardless of its current position, so pass a stream whose content begins at offset 0. The caller's stream is left open — disposing it remains your responsibility.

Top

Joining Documents

Merge several PDFs into one, starting from a source file path:

using System.Collections.Generic;
using GroupDocs.Merger.Domain.Options;
using GroupDocs.Merger.LowCode;

IEnumerable<string> documents = new[]
{
    @"c:\input\part2.pdf",
    @"c:\input\part3.pdf"
};

new JoinPdf(@"c:\input\part1.pdf", documents, new JoinOptions())
    .Save(@"c:\output\merged.pdf");

The documents are appended in enumeration order. The same shape applies to JoinDocx and JoinPptx, each with its own format. Every join product also accepts the source as a Stream:

using System.IO;
using GroupDocs.Merger.Domain.Options;
using GroupDocs.Merger.LowCode;

using FileStream source = File.OpenRead(@"c:\input\slides1.pptx");

new JoinPptx(source, new[] { @"c:\input\slides2.pptx" }, new JoinOptions())
    .Save(@"c:\output\deck.pptx");

Note that only the source may be a stream — the documents to append are always given as file paths.

Top

Splitting a Document

A split writes several files, and Save is where they land. Name the pages in the constructor:

using GroupDocs.Merger.LowCode;

new SplitPdf(@"c:\input\report.pdf", new[] { 1, 2, 3 })
    .Save(@"c:\output\report.pdf");

That call delivers c:\output\report_1.pdf, report_2.pdf and report_3.pdf. Nothing else is written — no copy of the source document.

The output path spells the parts in one of two ways:

  • A {0} template. When the file name carries {0}, it is replaced with the part number: c:\output\part_{0}.pdf delivers part_1.pdf, part_2.pdf, part_3.pdf. A {1}, if you use one, is replaced with the source extension.
  • A plain path. Without a placeholder the part number is appended to the file name, before the extension: c:\output\report.pdf delivers report_1.pdf, report_2.pdf, and so on in that same directory.

Part numbers follow the split itself: in SplitMode.Pages each part is numbered after the source page it holds, so selecting pages 2 and 4 delivers report_2.pdf and report_4.pdf; in SplitMode.Interval the parts are the intervals between the given pages, numbered from 0. Missing directories are created. A relative output path is resolved against the current working directory.

Four page selections are available, each for a source path and for a Stream:

using System.IO;
using GroupDocs.Merger.Domain.Options;
using GroupDocs.Merger.LowCode;

// The listed pages, each into a document of its own.
new SplitPdf(@"c:\input\report.pdf", new[] { 1, 2, 3 })
    .Save(@"c:\output\page_{0}.pdf");

// The listed pages as interval boundaries.
new SplitPdf(@"c:\input\report.pdf", new[] { 5 }, SplitMode.Interval)
    .Save(@"c:\output\chunk_{0}.pdf");

// A page range.
new SplitDocx(@"c:\input\contract.docx", 2, 6)
    .Save(@"c:\output\clause.docx");

// A page range narrowed to its even or odd pages.
using FileStream source = File.OpenRead(@"c:\input\slides.pptx");
new SplitPptx(source, 1, 10, RangeMode.OddPages)
    .Save(@"c:\output\slide.pptx");

SplitDocx and SplitPptx work identically for their formats.

Top

Removing Pages from a PDF

using GroupDocs.Merger.Domain.Options;
using GroupDocs.Merger.LowCode;

new RemovePagesPdf(@"c:\input\report.pdf", new RemoveOptions(new[] { 2, 4 }))
    .Save(@"c:\output\report-trimmed.pdf");

RemoveOptions also accepts a start/end page range, optionally narrowed to even or odd pages with a RangeMode.

Top

Input Format Enforcement

Each product validates the format named in its type. A file source is checked by extension and a stream source by content detection; a mismatch throws FileTypeNotSupportedException before any work is done:

using System;
using GroupDocs.Merger.Exceptions;
using GroupDocs.Merger.LowCode;

try
{
    new SplitPdf(@"c:\input\report.docx", new[] { 1, 2 })
        .Save(@"c:\output\report.pdf");
}
catch (FileTypeNotSupportedException ex)
{
    // "Input format does not match the expected format 'PDF'; the supplied file is '...'."
    Console.WriteLine(ex.Message);
}

The message reads the supplied file is '...' for a path source and the supplied stream is '...' for a stream source.

Top

Licensing

Licensing is handled by the static GroupDocs.Merger.LowCode.License class. License.Set takes a path and accepts both licence kinds:

using GroupDocs.Merger.LowCode;

// A metered licence file (XML carrying PublicKey and PrivateKey elements),
// or a standard offline GroupDocs .lic file — Set detects which it was given.
License.Set(@"c:\licenses\GroupDocs.Merger.LowCode.lic");
  • Metered licences are billed per use and require network access so that consumption can be reported. The keys can also be supplied directly with License.Set(publicKey, privateKey).
  • Standard .lic licences are validated offline and need no network access.
  • Automatic pickup: if no licence has been set when a product runs, it looks for the first *.lic file in the application base directory and applies it. This is best effort — a missing or unusable file simply leaves the library unlicensed.
  • Because the seven are licensed separately, a metered licence issued for one product is rejected by another with an InvalidOperationException naming the products involved. A product-family or Total licence covers all seven, and so does a standard .lic.

Without a licence the library runs in evaluation mode: results carry an evaluation message and page and content limits apply. Request a free 30-day temporary licence to evaluate the full feature set.

Top


Docs Reference Examples Blog Releases Support License


Top

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
26.7.0 0 8/1/2026