sillsdev.dotImpose
2.6.1
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package sillsdev.dotImpose --version 2.6.1
NuGet\Install-Package sillsdev.dotImpose -Version 2.6.1
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="sillsdev.dotImpose" Version="2.6.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="sillsdev.dotImpose" Version="2.6.1" />
<PackageReference Include="sillsdev.dotImpose" />
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 sillsdev.dotImpose --version 2.6.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: sillsdev.dotImpose, 2.6.1"
#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 sillsdev.dotImpose@2.6.1
#: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=sillsdev.dotImpose&version=2.6.1
#tool nuget:?package=sillsdev.dotImpose&version=2.6.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
DotImpose Library
A .NET library for PDF imposition and layout operations, supporting various booklet and calendar layouts.
PdfDroplet and Bloom use this library for generating print-ready PDF layouts.
Installation
Get it from nuget:
dotnet add package SILLsDev.DotImpose
Usage
using sillsdev.dotImpose.LayoutMethods;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
// Open an input PDF
var inputPdf = XPdfForm.FromFile("input.pdf");
// Choose a layout method
var layoutMethod = new SideFoldBookletLayouter(); // or other layout methods
// Access layout method information
Console.WriteLine($"Layout ID: {layoutMethod.Id}"); // "sideFoldBooklet"
Console.WriteLine($"Layout Label: {layoutMethod.EnglishLabel}"); // "Fold Booklet"
// Define paper target
var paperTarget = new PaperTarget("A4", PdfSharp.PageSize.A4);
// Perform the layout
layoutMethod.Layout(inputPdf, "input.pdf", "output.pdf", paperTarget, rightToLeft: false, showCropMarks: false);
Available Layout Methods
Each layout method has an Id property (for programmatic use) and an EnglishLabel property (for display):
| Class | Id | English Label | Description |
|---|---|---|---|
NullLayoutMethod |
original |
Original | Original layout (no changes) |
SideFoldBookletLayouter |
sideFoldBooklet |
Fold Booklet | Side-fold booklet layout |
CalendarLayouter |
calendar |
Calendar Fold | Calendar fold layout |
CutLandscapeLayout |
cutBooklet |
Cut & Stack | Cut landscape layout |
SideFold4UpBookletLayouter |
sideFoldCut4UpBooklet |
Fold/Cut 4Up Booklet | 4-up side-fold booklet |
SideFold4UpSingleBookletLayouter |
sideFoldCut4UpSingleBooklet |
Fold/Cut Single 4Up Booklet | 4-up single booklet |
Folded8Up8PageBookletLayouter |
folded8Up8PageBooklet |
Fold/Cut 8Up 8 Page Booklet | 8-up folded booklet |
Square6UpBookletLayouter |
square6UpBooklet |
Fold/Cut 6Up Square Booklet | 6-up square booklet |
Features
- Multiple PDF imposition layouts
- Support for right-to-left languages
- Crop marks for commercial printing
Building
Build the solution using .NET 8.0:
dotnet build
dotnet pack --configuration Release
License
This project is licensed under the MIT License.
Copyright © SIL Global 2012-2025
| Product | Versions 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.
-
net8.0
- PdfSharp (>= 6.2.1)
- System.Drawing.Common (>= 6.0.0)
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 |
|---|---|---|
| 2.6.5-test | 76 | 3/3/2026 |
| 2.6.2 | 242 | 10/30/2025 |
| 2.6.1 | 159 | 10/11/2025 |