Table of Contents

Choose your packages

Install DocWright for conversion, rendering and editing. Add a capability package only when you need that capability, so an application that only converts never carries code for mail merge or reporting.

The main package

DocWright is the facade. It brings in everything needed to read, edit, render and save Word documents:

Included in DocWright What it provides
DocWright.Core Measurement primitives (twips, EMU, colour), extension points, diagnostics, resource limits and the exception types.
DocWright.Dom The editable document model: sections, paragraphs, tables, styles, tracked changes, content controls, form fields, find and replace, {{placeholder}} filling.
DocWright.Layout Style resolution and page layout: line breaking, tables, floating objects, headers, footers and notes.
DocWright.Fonts Font discovery, OpenType parsing, metric-compatible substitution and bundled fallback faces.
DocWright.Renderers.Pdf The PDF writer, including font subsetting, links, outlines, tagged PDF and PDF/A-2b.
DocWright.Renderers.Imaging The PNG and JPEG renderer, for Word pages and for existing PDFs.
DocWright.Formats.Docx DOCX read and write, lossless on round trip.
DocWright.Formats.Doc Legacy Word 97–2003 .doc reading, including RC4-encrypted files.
DocWright.Formats.Pdf Reading, rasterizing and re-assembling existing PDF files.
DocWright.Formats.Html, .Rtf, .Markdown, .Text Read and write.
DocWright.Formats.Odt, .Epub, .Rdl Export only.
DocWright.Cryptography Opening and saving password-protected documents.
DocWright.Ole The compound-file container that .doc files and embedded objects live in.

You never need to reference these individually. Installing DocWright is enough.

Capability packages

Add these when you need what they do:

Package Install it to…
DocWright.Composition Build a document in C# with a fluent API: pages, headers and footers, columns, tables, styled text.
DocWright.MailMerge Run mail merges: merge fields, repeating regions for tables and line items, nested data, images.
DocWright.Compare Compare two documents and get the differences back as real tracked changes.
DocWright.Signatures Verify and sign Office documents, and sign PDFs.
DocWright.ComplexText Shape Indic and other complex scripts with HarfBuzz. Arabic and Hebrew are shaped without it. This is the only package with a native dependency.
DocWright.Reporting Load, edit and validate SSRS report definitions, evaluate their expressions, and run and paginate them against your data.
DocWright.Reporting.Rdl Read and write .rdl and .rdlc files, 2005 through 2016 schemas, losslessly.
DocWright.Reporting.Export Export a paginated report to Word, CSV or plain text.
DocWright.Reporting.Viewer Show a report in a browser: HTML with inline SVG, a region map, and hit-testing, search and toggle services.
DocWright.Formats.Xlsx Write Excel workbooks. The report Excel export uses it, and you can use it on its own.
Tip

Running SSRS reports needs DocWright.Reporting plus DocWright.Reporting.Rdl to load the .rdl file. Add DocWright.Reporting.Export or DocWright.Reporting.Viewer for the outputs you want. PDF and images come from DocWright itself.

Target frameworks

Every package targets .NET Framework 4.8, .NET Standard 2.0, .NET 8 and .NET 10. It runs anywhere those run: Windows, Linux, macOS, containers and Azure App Service.

  • The .NET 8 and .NET 10 assemblies are trim- and AOT-compatible.
  • All assemblies are strong-named.
  • No package needs Microsoft Office, and only DocWright.ComplexText carries a native binary.

Next

Install DocWright in your project.