Dangl.TextConverter.RtfImageConversion 3.0.4

Prefix Reserved
dotnet add package Dangl.TextConverter.RtfImageConversion --version 3.0.4                
NuGet\Install-Package Dangl.TextConverter.RtfImageConversion -Version 3.0.4                
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="Dangl.TextConverter.RtfImageConversion" Version="3.0.4" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Dangl.TextConverter.RtfImageConversion --version 3.0.4                
#r "nuget: Dangl.TextConverter.RtfImageConversion, 3.0.4"                
#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.
// Install Dangl.TextConverter.RtfImageConversion as a Cake Addin
#addin nuget:?package=Dangl.TextConverter.RtfImageConversion&version=3.0.4

// Install Dangl.TextConverter.RtfImageConversion as a Cake Tool
#tool nuget:?package=Dangl.TextConverter.RtfImageConversion&version=3.0.4                

Library to transform Rtf and Html to plain text and vice versa

Product 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. 
.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 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
3.0.4 800 12/12/2023
3.0.3 436 11/27/2023
3.0.2 410 9/22/2023
3.0.1 1,032 3/16/2023
3.0.0 523 1/4/2023
2.1.0 428 11/28/2022
2.0.0 861 6/25/2022

## v3.0.4:
- The `System.Text.Encoding.CodePages` dependency was downgraded again to `4.5.0`, to fix dependency incompatibilities in earlier .NET versions

## v3.0.3:
- Dropped tests for .NET 6 and added tests for .NET 8
- When exporting plain text to RTF, there's now a space after the initial `{\rtf1` control word

## v3.0.2:
- Updated internal dependencies

## v3.0.1:
- Support `\line` as line-break control character when reading RTF

## v3.0.0:
- The ANTLR dependencies were updated from _Antlr.Runtime_ to _Antlr.Runtime.Standard_. The new package is the now official ANTLR runtime package and includes many performance improvements
- Compatibility for `net40` and `netstandard1.3` was dropped, the lowest supported frameworks now are `net45` and `netstandard2.0`

## v2.1.0:
- Dropped tests for `net5.0` and added tests for `net7.0`
- Whitespaces in `span` texts are now better preserved when converting from Html to plain text

## v2.0.0:
- RTF texts now support **images**. They can be read from RTF and also exported. Conversion between RTF and Html will also preserve images. For some operations, images can only be preserved if they are converted to another format, e.g. importing DIB (Device Independent Bitmaps) from RTF requires you to supply an `IRtfImageConverter`, similar when exporting a GIF image to RTF which also requires a conversion. To extract RTF texts from images, you must use the `RtfToText.ConvertRtfToSegmentedText` method
- A new package **Dangl.TextConverter.RtfImageConversion** has been published, which contains converters for both GIF and DIB formats
- _HtmlAgilityPack_ was updated from `1.11.7` to `1.11.43`, which now treats sequences like `<br></br>` as two instances of the `br` tag instead of a single one. This behavior is actually correct, but customers that rely on the old behavior can check the source code examples for how to configure it
- Segmented RTF text now may also return a new type `RtfImageSegment`. Client code should be updated to expect this new type
- The `TextByClass` type now also has a property `ImageNode`, which will be populated if Html text is split by class name and an image node is encountered. Please be aware that image nodes will always lead to a split node and not have any other properties set
- Dropped tests for .NET Core 3.1 and added tests for .NET 6.0

## v1.3.9:
- Fixed a bug where escape sequences terminated with a semicolon `;` were not properly converted from RTF to plain text
- Dropped tests for `netcoreapp2.1` and added tests for `net5.0`

## v1.3.8:
- Fixed a bug where `HtmlToText.ConvertHtmlToPlaintextAndSplitByClassname` removed empty segments at the beginning or the end, even if the segments were matching a class name

## v1.3.7:
- Fixed a bug where the runtime complexity of the `HtmlTableConverter` was rising very fast for deeply nested tables

## v1.3.6:
- Add `net40` as target framework

## v1.3.5:
- Deserializing RTF text now recognizes escape sequences in decimal format, e.g. `\u252` is deserialized as `ü`

## v1.3.4:
- The NuGet package now does specify the **MIT** license
- Dropped tests for `netcoreapp2.2` and added tests for `netcoreapp3.1`
- The `PackageIcon` element is now used for the NuGet package instead of the deprecated `PackageIconUrl`

## v1.3.3:
- Deserializing escaped unicode strings now ignores non printable characters

## v1.3.2:
- Bugfix when deserializing incomplete RTF texts. When an incomplete RTF string was given, this could sometimes lead to a `NullReferenceException`

## v1.3.1:
- Bugfix in `HtmlToText.ConvertHtmlToPlaintextAndSplitByClassname` which could throw an exception if the Html had no plain text representation, e.g. for image only Html

## v1.3.0:
- The generated assemblies now have a strong name. This is a breaking change of the binary API and will require recompilation on all systems that consume this package. The strong name of the generated assembly allows compatibility with other, signed tools. Please note that this does not increase security or provide tamper-proof binaries, as the key is available in the source code per [Microsoft guidelines](https://msdn.microsoft.com/en-us/library/wd40t7ad(v=vs.110).aspx)

## v1.2.9:
- The class `Dangl.TextConverter.Html.HtmlTableConverter` is now public
- The `InternalsVisibleToo` attribute for the assembly was removed to prevent conflicts in applications that sign their binaries

## v1.2.8:
- Bugfix where bookmark elements in Rtf texts with missing closing elements where throwing a `System.InvalidOperationException`
- CI tests are now also run on Linux
- Bugfix where line endings were sometimes not correctly trimmed when running on .NET Core on Linux

## v1.2.7:
- Non-printable unicode escape sequences (`0x00` - `0x08`, `0x0b` and `0x0e` - `0x1f`) are now ignored when converting RTF text to plain text

## v1.2.6:
- Add the `HtmlAgilityPackLegacyBehaviorHelper` utility class and fix an issue where enabling the legacy behavior in HtmlAgilityPack was not thread safe and could fail when simultaneously accessed

## v1.2.5:
- Update **HtmlAgilityPack** dependency. The previously referenced version `1.9.2` was pulled from NuGet due to an unintended, breaking API change. Please see https://github.com/zzzprojects/html-agility-pack/issues/125 for more information about the change
- The `HtmlToText` class now sets the static property `HtmlAgilityPack.HtmlDocument.DisableBehavaiorTagP = false` in its static method calls to ensure compatible behavior. If your own code relies on different behavior, please ensure that this property is always set to its original value after invoking one of the methods on `HtmlToText`. See the README for further details

## v1.2.4:
- Dependencies update

## v1.2.3.:
- Small internal refactoring
- Dependencies update

## v1.2.2:
- Add `bool keepWhitespaceAtLineEnds` parameter to `TextToHtml.TransformPlaintextToHtml()` overload which defaults to false
- Bugfix where Rtf text was sometimes incorrectly read and output when segments between groups started with whitespace

## v1.2.1:
- Add `StringLineStartNormalizationExtensions`

## v1.2.0:
- Update `HtmlAgilityPack` for huge (about 10x) performance improvements in `netstandard` targets, see https://github.com/zzzprojects/html-agility-pack/releases/tag/v1.8.11
- When converting Html to plain text, it's now possible to have the result split by Html class names. Please see the README or https://docs.dangl-it.com/Projects/Dangl.TextConverter for further details
- `public static SegmentedRtf ConvertRtfToSegmentedText(string rtfInput)` was added to `RtfToText`. This will return text segments that contain plain text representations of the texts as well as tags to indicate the opening and closing of bookmarks. This is used, for example, in the [**GAEB & AVA .Net Libraries** by Dangl**IT**](https://www.dangl-it.com/products/gaeb-ava-net-library/) to work with text additions in GAEB 2000 files. Please see the README or https://docs.dangl-it.com/Projects/Dangl.TextConverter for further details
- Added `TextToRtf.ConvertPlainTextToRtf(SegmentedRtf segmentedRtf)` to convert back to Rtf from segmented texts while preserving bookmarks
- Dropped tests for `netcoreapp2.0`, added tests for `netcoreapp2.2`

## v1.1.5:
- Bugfix: Some empty tables caused a `NullReferenceException` when converting them to plaintext via the `HtmlToText` class
- Update of `HtmlAgilityPack` and `System.Text.Encoding.CodePages` (the latter only for `netstandard` targets)

## v1.1.4:
- Dependencies update

## v1.1.3:
- Update of HtmlAgilityPack dependency to include latest bugfixes
- Internal refactoring of the CI/CD pipeline

## v1.1.2:
- Small performance improvements for parsing Rtf text

## v1.1.1:
- Update HtmlAgilityPack to latest stable version 1.8.4

## v1.1.0:
- Switch to HtmlAgilityPack. The HtmlAgilityPack.Core fork is no longer required since the original supports now netstandard

## v1.0.8
- Add `netstandard2.0` target
- Switch build system to NUKE

## v1.0.7
- Fix bug in RtfToText where Rtf annotations were read as plain text

## v1.0.6
- Performance improvements for Rtf texts that contain pictures

## v1.0.5
- Update Html encoding/decoding to preserve correctness in roundtrip scenarios
     
## v1.0.4
- Downgrade to netstandard1.3 and net45 for broader compatibility

## v1.0.3
- Performance improvements

## v1.0.2
- Update ANTLR4 dependencies to latest stable version

## v1.0.1
- Target NETStandard 1.3