PdfTools.SplitMerge 1.0.4

dotnet add package PdfTools.SplitMerge --version 1.0.4
                    
NuGet\Install-Package PdfTools.SplitMerge -Version 1.0.4
                    
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="PdfTools.SplitMerge" Version="1.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PdfTools.SplitMerge" Version="1.0.4" />
                    
Directory.Packages.props
<PackageReference Include="PdfTools.SplitMerge" />
                    
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 PdfTools.SplitMerge --version 1.0.4
                    
#r "nuget: PdfTools.SplitMerge, 1.0.4"
                    
#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 PdfTools.SplitMerge@1.0.4
                    
#: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=PdfTools.SplitMerge&version=1.0.4
                    
Install as a Cake Addin
#tool nuget:?package=PdfTools.SplitMerge&version=1.0.4
                    
Install as a Cake Tool

PDFTools.SplitMerge Nuget Package

The PDFTools.SplitMerge package provides classes that allow for splitting/merging PDFs. The package is flexible and allows for processing PDFs in memory or by using file storage, whichever you prefer. On this page you will find real code examples of how to use the classes provided in the nuget package.

Split By Ranges (File Storage)

Code

ISplitRangeParser splitRangeParser = new SplitRangeParser();
IStoragePdfSplitter pdfSplitter = new FileStoragePdfSplitter(splitRangeParser);
Attempt<IEnumerable<string>> splitAttempt = pdfSplitter.SplitByRanges(inputPdfPath, outputFolderPath, "1,3-5,8-16");

if (!splitAttempt.Success)
{
    Console.WriteLine(splitAttempt1.ErrorMessage);
}

Output

image

Split By Ranges (In Memory)

Code

ISplitRangeParser splitRangeParser = new SplitRangeParser();
IMemoryPdfSplitter pdfSplitter = new MemoryPdfSplitter(splitRangeParser);
Attempt<IEnumerable<Stream>> splitAttempt = pdfSplitter.SplitByRanges(inputPdfStream, "1,3-5,8-16");

if (!splitAttempt.Success)
{
    Console.WriteLine(splitAttempt.ErrorMessage);
}

Split By Interval (File Storage)

Code

ISplitRangeParser splitRangeParser = new SplitRangeParser();
IStoragePdfSplitter pdfSplitter = new FileStoragePdfSplitter(splitRangeParser);

Attempt<IEnumerable<string>> splitAttempt = pdfSplitter.SplitByInterval(inputPdfPath, 15, outputFolderPath);

if (!splitAttempt.Success)
{
    Console.WriteLine(splitAttempt.ErrorMessage);
}

Output

image

Split By Interval (In Memory)

Code

ISplitRangeParser splitRangeParser = new SplitRangeParser();
IMemoryPdfSplitter pdfSplitter = new MemoryPdfSplitter(splitRangeParser);
Attempt<IEnumerable<Stream>> splitAttempt = pdfSplitter.SplitByInterval(inputPdfStream, 5);

if (!splitAttempt.Success)
{
    Console.WriteLine(splitAttempt.ErrorMessage);
}

Merge (File Storage)

Code

List<string> pdfPaths = new List<string>();

IStoragePdfMerger pdfMerger = new FileStoragePdfMerger();
Attempt<string> mergeAttempt = pdfMerger.Merge(pdfPaths, outputFolderPath);

if (!mergeAttempt.Success)
{
    Console.WriteLine(mergeAttempt.ErrorMessage);
}

Output

image

Merge (In Memory)

Code

List<Stream> pdfStreams = new List<Stream>();

IMemoryPdfMerger pdfMerger = new MemoryPdfMerger();
Attempt<Stream> mergeAttempt = pdfMerger.Merge(pdfStreams);

if (!mergeAttempt.Success)
{
    Console.WriteLine(mergeAttempt.ErrorMessage);
}
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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
1.0.4 209 8/25/2024
1.0.4-prerelease1 161 8/25/2024
1.0.4-prerelease 158 8/25/2024
1.0.3 179 8/18/2024
1.0.2 173 8/18/2024
1.0.1 166 8/7/2024
1.0.0 164 8/7/2024