Allors.Documents
4.0.0
Prefix Reserved
dotnet add package Allors.Documents --version 4.0.0
NuGet\Install-Package Allors.Documents -Version 4.0.0
<PackageReference Include="Allors.Documents" Version="4.0.0" />
<PackageVersion Include="Allors.Documents" Version="4.0.0" />
<PackageReference Include="Allors.Documents" />
paket add Allors.Documents --version 4.0.0
#r "nuget: Allors.Documents, 4.0.0"
#:package Allors.Documents@4.0.0
#addin nuget:?package=Allors.Documents&version=4.0.0
#tool nuget:?package=Allors.Documents&version=4.0.0
Allors Documents
Embed template tags inside OpenDocument texts: write the template in LibreOffice Writer, bind it to a model, render the document.
Status
Packages
| Package | Holds |
|---|---|
Allors.Documents |
The template and its renderer, the tag language, the inspection, Validate, the model contracts (IShape, IResolver) and the dictionary shape and resolver. Targets netstandard2.0 and net10.0, is trimmable and AOT-compatible, uses no reflection and has no dependencies. |
Allors.Documents.Reflection |
OpenDocumentTemplate<T>, ReflectionShape and ReflectionResolver: templates over plain classes and dictionaries, their members read through reflection. |
Allors.Documents.Barcodes |
The picture renderers code128, ean13 and qr: a barcode of the value's text, drawn with ZXing.Net for the frame that shows it. |
Allors.Documents.Imaging |
PictureScaling, a picture processor that scales a picture down to its frame with SkiaSharp, turns a photo upright and keeps its format. |
Allors.Documents is all a render needs. The other packages are optional: reflection for an application without a resolver of its own, barcodes and imaging for one that draws no barcodes and scales no pictures of its own. An application that has those capabilities wraps its own code as a renderer or picture processor, which Renderers and picture processing shows, and needs neither package.
Usage
using Allors.Documents;
using Allors.Documents.Reflection;
var template = new OpenDocumentTemplate<InvoiceModel>(templateBytes);
RenderResult result = template.Render(model);
File.WriteAllBytes("invoice.odt", result.Document);
foreach (Finding finding in result.Findings)
{
Console.WriteLine(finding); // error: <$Invoice.Totl>: Invoice has no member Totl (content.xml paragraph 12 "Total <$Invoice.Totl>")
}
A template is read once and rendered any number of times, from any thread. A render never throws for what the template says: a value the model cannot give prints blank, and the findings say which tag and where. Validate reports the same before any data exists.
Documentation
The documentation is written for template authors, developers and maintainers. The pages live under docs/ in this repository; the links go to their sources on GitHub.
For template authors: Write a template · Tags · Formatting · Pictures · Maps · Findings
For developers: Render your first document · Validate templates · Resolve your own model · Renderers and picture processing · API · Design
For everyone: Terminology · Documentation index
For maintainers: Architecture · Releasing · Writing documentation · Documentation website
Changes are recorded in CHANGELOG.md. Agents follow AGENTS.md, which points to the same pages.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 is compatible. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
net10.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Allors.Documents:
| Package | Downloads |
|---|---|
|
Allors.Documents.Reflection
Bind Allors Documents templates to plain classes and dictionaries through reflection. |
|
|
Allors.Documents.Imaging
Scale the pictures of Allors Documents templates to their frames. |
|
|
Allors.Documents.Barcodes
Draw barcodes into the picture frames of Allors Documents templates. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.0 | 218 | 10/19/2026 |
| 3.2.0 | 167 | 10/16/2026 |
| 3.1.0 | 226 | 10/15/2026 |
| 3.0.0 | 188 | 10/15/2026 |
| 2.1.0 | 217 | 10/14/2026 |
| 2.0.0 | 172 | 10/14/2026 |
| 1.2.0 | 182 | 10/13/2026 |
| 1.2.0-rc.1 | 53 | 10/13/2026 |
| 1.0.10 | 20,576 | 3/11/2024 |
| 1.0.5 | 270 | 3/11/2024 |
| 1.0.4 | 13,750 | 4/19/2022 |
| 1.0.3 | 19,002 | 6/18/2020 |
| 1.0.0 | 2,588 | 4/15/2020 |