History of MigraDoc
Here are the news and improvements of MigraDoc Foundation.
What’s new in version 6.1
See general history for changes that affect PDFsharp and MigraDoc.
Minor improvements
We changed the behavior of decimal tab stops to make them behave like they do in Word. Read more
What’s new in version 6.0
Core builds now can be used everywhere
With version 1.51, the Core builds were still limited to Windows. Beginning with version 6.0, the Core builds can also be used under Linux and other platforms.
Upgrading an existing MigraDoc project is described in Upgrade existing projects to PDFsharp 6.
DOM was revised
The MigraDoc document object model was reworked to make it faster and more easy to use. The attribute InternalsVisibleTo is not required anymore. Read more about the MigraDoc document object model
Feature improvements
Version 1.5 did not work properly with .NET 5 and later because the Default encoding had changed. Version 6.0 of the library works with the new Default encoding.
Performance improvements
With version 1.5 we already improved the speed of text rendering (PDFsharp) and table rendering (MigraDoc). With version 6.0 we worked on the speed again and achieved some nice improvements especially with MigraDoc table rendering again. See benchmark results in the next paragraph.
Benchmark results
Tests were made using MigraDoc routines. Improvements were made within MigraDoc (e.g. table rendering), but also within PDFsharp (e.g. text rendering).
Paragraphs (AddTestParagraphs)
MigraDoc test that adds 50000 short paragraphs and renders PDF.
- 6.0.0-preview-1
- .NET6 Core: ~ 4.1 s
- .NET6 GDI: ~ 4.6 s
- .NET6 WPF: ~ 4.4 s
- 1.51 GDI: ~ 4.9 s
- 1.51 WPF: ~ 3.7 s
- 1.32 GDI: ~ 22 s
- 1.32 WPF: ~ 250 s
Table (AddTestTable)
MigraDoc test that creates a table with 5000 data rows plus a header row and renders PDF.
- 6.0.0-preview-1
- .NET6 Core: ~ 1.1 s
- .NET6 GDI: ~ 1.1 s
- .NET6 WPF: ~ 1.3 s
- 1.51 GDI: ~ 5.8 s
- 1.51 WPF: ~ 5.8 s
- 1.32 GDI: ~ 115 s
- 1.32 WPF: ~ 123 s
Table with borders (AddTestTableWithBorders)
MigraDoc test that creates a table with borders with 5000 data rows plus a header row and renders PDF.
- 6.0.0-preview-1
- .NET6 Core: ~ 1.4 s
- .NET6 GDI: ~ 1.5 s
- .NET6 WPF: ~ 1.6 s
- 1.51 GDI: ~ 5.8 s
- 1.51 WPF: ~ 5.9 s
- 1.32 GDI: ~ 114 s
- 1.32 WPF: ~ 136 s
Lorem ipsum (AddLoremIpsumTest)
MigraDoc test that creates a document with 4000 paragraphs containing "Lorem ipsum" text and renders PDF.
- 6.0.0-preview-1
- .NET6 Core: ~ 2.3 s
- .NET6 GDI: ~ 2.3 s
- .NET6 WPF: ~ 2.6 s
- 1.51 GDI: ~ 5.2 s
- 1.51 WPF: ~ 3.4 s
- 1.32 GDI: ~ 31 s
- 1.32 WPF: ~ 311 s
Lorem table (AddLoremTable)
MigraDoc test that creates a table with 5000 text rows containing "Lorem ipsum" text plus a header row and renders PDF.
- 6.0.0-preview-1
- .NET6 Core: ~ 3.8 s
- .NET6 GDI: ~ 3.8 s
- .NET6 WPF: ~ 3.9 s
- 1.51 GDI: ~ 17 s
- 1.51 WPF: ~ 10 s
- 1.32 GDI: ~ 153 s
- 1.32 WPF: ~ 520 s
Images (AddImagesTest)
MigraDoc test that creates a document with 5000 BMP images and renders PDF.
- 6.0.0-preview-1
- .NET6 Core: ~ 1.9 s
- .NET6 GDI: ~ 2.9 s
- .NET6 WPF: ~ 5.1 s
- 1.51 GDI: ~ 4.4 s
- 1.51 WPF: ~ 7.1 s
- 1.32 GDI: BASE64 images not supported
- 1.32 WPF: BASE64 images not supported