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
<PackageReference Include="GroupDocs.Merger.LowCode" Version="26.7.0" />
<PackageVersion Include="GroupDocs.Merger.LowCode" Version="26.7.0" />
<PackageReference Include="GroupDocs.Merger.LowCode" />
paket add GroupDocs.Merger.LowCode --version 26.7.0
#r "nuget: GroupDocs.Merger.LowCode, 26.7.0"
#:package GroupDocs.Merger.LowCode@26.7.0
#addin nuget:?package=GroupDocs.Merger.LowCode&version=26.7.0
#tool nuget:?package=GroupDocs.Merger.LowCode&version=26.7.0
Document Merger .NET API — Low Code
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
- Get Started
- The Seven Products
- Joining Documents
- Splitting a Document
- Removing Pages from a PDF
- Input Format Enforcement
- Licensing
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.
The Seven Products
| Product | Operation | Input format | Constructor arguments |
|---|---|---|---|
JoinDocx |
Append documents | DOCX | source path or Stream, IEnumerable<string> documents, IJoinOptions |
JoinPdf |
Append documents | 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 | source path or Stream, page selection |
|
SplitPptx |
Split into several documents | PPTX | source path or Stream, page selection |
RemovePagesPdf |
Remove pages | 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.
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.
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}.pdfdeliverspart_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.pdfdeliversreport_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.
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.
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.
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
.liclicences 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
*.licfile 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
InvalidOperationExceptionnaming 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.
| Product | Versions 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. |
-
net6.0
- Aspose.Drawing.Common (>= 26.4.0)
- GroupDocs.CrossPlatform.NativeAssets (>= 26.6.0)
- Microsoft.Extensions.DependencyInjection (>= 6.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0.0)
- Microsoft.Extensions.DependencyModel (>= 5.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
- Microsoft.NETCore.Platforms (>= 2.0.0)
- Microsoft.Win32.SystemEvents (>= 6.0.0)
- Newtonsoft.Json (>= 13.0.3)
- SkiaSharp (>= 3.119.2)
- SkiaSharp.NativeAssets.Linux.NoDependencies (>= 3.119.2)
- SkiaSharp.NativeAssets.macOS (>= 3.119.2)
- SkiaSharp.NativeAssets.Win32 (>= 3.119.2)
- System.Configuration.ConfigurationManager (>= 4.5.0)
- System.Diagnostics.DiagnosticSource (>= 7.0.0)
- System.Diagnostics.PerformanceCounter (>= 4.5.0)
- System.Drawing.Common (>= 6.0.0)
- System.Net.Http.Json (>= 8.0.1)
- System.Security.Cryptography.Pkcs (>= 6.0.5)
- System.Security.Cryptography.ProtectedData (>= 4.5.0)
- System.Security.Cryptography.Xml (>= 6.0.2)
- System.Security.Permissions (>= 4.5.0)
- System.Text.Encoding.CodePages (>= 7.0.0)
- System.Text.Encodings.Web (>= 8.0.0)
- System.Text.Json (>= 8.0.5)
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 |
