Proxoft.TemplateEngine.Docx
1.0.0
dotnet add package Proxoft.TemplateEngine.Docx --version 1.0.0
NuGet\Install-Package Proxoft.TemplateEngine.Docx -Version 1.0.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="Proxoft.TemplateEngine.Docx" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Proxoft.TemplateEngine.Docx" Version="1.0.0" />
<PackageReference Include="Proxoft.TemplateEngine.Docx" />
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 Proxoft.TemplateEngine.Docx --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Proxoft.TemplateEngine.Docx, 1.0.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 Proxoft.TemplateEngine.Docx@1.0.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=Proxoft.TemplateEngine.Docx&version=1.0.0
#tool nuget:?package=Proxoft.TemplateEngine.Docx&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Docx.TemplateEngine
Docx TemplateEngine is a tool for processing Docx templates. The user create a docx document with custom placeholders/markdown e.g. {order.totalPrice}. It is necessary to create a corresponding Template model tree in the code:
ObjectModel documentModel = ObjectModel.Create(
("order", ObjectModel.Create(("totalPrice", "256.00")))
);
And process the template:
using FileStream templateStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read);
DocumentEngine engine = new(NullLogger<DocumentEngine>.Instance);
byte[] docx = engine.Run(templateStream, documentModel, config);
File.WriteAllBytes("C:/Temp/processedDocument.docx", docx);
The styling of placeholders is taken into account and filled text takes over the styles. It is possible to use placeholders for:
- values
- objects with values
- conditions (if condition is evaluated as false, the content is removed from document)
- images
- collections
- in paragraphs
- in tables (repeats rows within the collection markdown)
Example
ObjectModel root = ObjectModel.Create(
( "title" , new ValueModel("Example Document") ),
( "description", new ValueModel("very short description")),
( "list",
new CollectionModel(
Enumerable.Range(0, 5).Select(i => ObjectModel.Create(
("name", new ValueModel($"Name {i * 10}")),
("value", new ValueModel($"Value {i}"))
))
)
),
(
"nested",
ObjectModel.Create(
("text", new ValueModel("Nested value"))
)
),
(
"condition",
new ConditionModel(true)
),
(
"image",
this.LoadFromFile("sample.jpeg")
)
);
The word template:
Filled document:
| 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 is compatible. 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
- DocumentFormat.OpenXml (>= 3.3.0)
- Microsoft.Extensions.Logging (>= 9.0.6)
- SkiaSharp (>= 3.119.0)
-
net9.0
- DocumentFormat.OpenXml (>= 3.3.0)
- Microsoft.Extensions.Logging (>= 9.0.6)
- SkiaSharp (>= 3.119.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 |
|---|---|---|
| 1.0.0 | 184 | 7/9/2025 |