From 369c2b0bdc88c9b86408a1e954098792736fd020 Mon Sep 17 00:00:00 2001
From: Simon Stevenson
Date: Tue, 12 May 2015 17:46:37 +1000
Subject: [PATCH 01/34] Fix for the last attribute without a value crashing the
parser
---
Source/HtmlRenderer/Core/Parse/HtmlParser.cs | 26 +++++++++++---------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/Source/HtmlRenderer/Core/Parse/HtmlParser.cs b/Source/HtmlRenderer/Core/Parse/HtmlParser.cs
index 286dee89c..f246fda82 100644
--- a/Source/HtmlRenderer/Core/Parse/HtmlParser.cs
+++ b/Source/HtmlRenderer/Core/Parse/HtmlParser.cs
@@ -222,27 +222,31 @@ private static void ExtractAttributes(string source, int idx, int length, out Di
if (startIdx < idx + length)
{
var key = source.Substring(startIdx, endIdx - startIdx);
+ var value = "";
startIdx = endIdx + 1;
while (startIdx < idx + length && (char.IsWhiteSpace(source, startIdx) || source[startIdx] == '='))
startIdx++;
bool hasPChar = false;
- char pChar = source[startIdx];
- if (pChar == '"' || pChar == '\'')
+ if (startIdx < idx + length)
{
- hasPChar = true;
- startIdx++;
- }
+ char pChar = source[startIdx];
+ if (pChar == '"' || pChar == '\'')
+ {
+ hasPChar = true;
+ startIdx++;
+ }
- endIdx = startIdx + (hasPChar ? 0 : 1);
- while (endIdx < idx + length && (hasPChar ? source[endIdx] != pChar : !char.IsWhiteSpace(source, endIdx)))
- endIdx++;
+ endIdx = startIdx + (hasPChar ? 0 : 1);
+ while (endIdx < idx + length && (hasPChar ? source[endIdx] != pChar : !char.IsWhiteSpace(source, endIdx)))
+ endIdx++;
- var value = source.Substring(startIdx, endIdx - startIdx);
- value = HtmlUtils.DecodeHtml(value);
+ value = source.Substring(startIdx, endIdx - startIdx);
+ value = HtmlUtils.DecodeHtml(value);
+ }
- if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
+ if (!string.IsNullOrEmpty(key) && (value != null))
{
if (attributes == null)
attributes = new Dictionary(StringComparer.InvariantCultureIgnoreCase);
From 2ed4f0008360c9560e620413cd046992157b5bba Mon Sep 17 00:00:00 2001
From: Julien Pomez
Date: Mon, 6 Feb 2017 12:21:14 +0100
Subject: [PATCH 02/34] Fixes WPF text blurry render encountered in some cases.
---
Source/HtmlRenderer.WPF/Adapters/GraphicsAdapter.cs | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/Source/HtmlRenderer.WPF/Adapters/GraphicsAdapter.cs b/Source/HtmlRenderer.WPF/Adapters/GraphicsAdapter.cs
index d61bef4ca..95cb5fe67 100644
--- a/Source/HtmlRenderer.WPF/Adapters/GraphicsAdapter.cs
+++ b/Source/HtmlRenderer.WPF/Adapters/GraphicsAdapter.cs
@@ -201,7 +201,15 @@ public override void DrawString(string str, RFont font, RColor color, RPoint poi
glyphRendered = true;
var glyphRun = new GlyphRun(glyphTypeface, rtl ? 1 : 0, false, 96d / 72d * font.Size, glyphs, Utils.ConvertRound(point), widths, null, null, null, null, null, null);
+ var rect = glyphRun.ComputeAlignmentBox();
+ var guidelines = new GuidelineSet();
+ guidelines.GuidelinesX.Add(rect.Left);
+ guidelines.GuidelinesX.Add(rect.Right);
+ guidelines.GuidelinesY.Add(rect.Top);
+ guidelines.GuidelinesY.Add(rect.Bottom);
+ _g.PushGuidelineSet(guidelines);
_g.DrawGlyphRun(colorConv, glyphRun);
+ _g.Pop();
}
}
@@ -269,7 +277,7 @@ public override void DrawRectangle(RPen pen, double x, double y, double width, d
x += .5;
y += .5;
}
-
+
_g.DrawRectangle(null, ((PenAdapter)pen).CreatePen(), new Rect(x, y, width, height));
}
From c6b3929cbcf0e394bca07da2050610f35b067ea0 Mon Sep 17 00:00:00 2001
From: Jeroen Diederix
Date: Tue, 14 Feb 2017 10:12:43 +0100
Subject: [PATCH 03/34] Convert code points from other unicode planes to utf16,
like emoticons 😃, and avoid a hard unhandled exception.
---
Source/HtmlRenderer/Core/Utils/HtmlUtils.cs | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/Source/HtmlRenderer/Core/Utils/HtmlUtils.cs b/Source/HtmlRenderer/Core/Utils/HtmlUtils.cs
index 09cc95a86..960b719aa 100644
--- a/Source/HtmlRenderer/Core/Utils/HtmlUtils.cs
+++ b/Source/HtmlRenderer/Core/Utils/HtmlUtils.cs
@@ -370,8 +370,12 @@ private static string DecodeHtmlCharByCode(string str)
num = num * (hex ? 16 : 10) + CommonUtils.ToDigit(str[endIdx++], hex);
endIdx += (endIdx < str.Length && str[endIdx] == ';') ? 1 : 0;
+ string repl = string.Empty;
+ if (num >= 0 && num <= 0x10ffff && !(num >= 0xd800 && num <= 0xdfff))
+ repl = Char.ConvertFromUtf32((int)num);
+
str = str.Remove(idx, endIdx - idx);
- str = str.Insert(idx, Convert.ToChar(num).ToString());
+ str = str.Insert(idx, repl);
idx = str.IndexOf("", idx + 1);
}
From a07a85984fd72747fa00a142c490a8fb86200dfc Mon Sep 17 00:00:00 2001
From: Licshee
Date: Wed, 3 May 2017 04:58:36 +0800
Subject: [PATCH 04/34] fix #74
---
Source/Demo/WPF/HtmlRenderingHelper.cs | 4 ++--
Source/Demo/WPF/MainControl.xaml.cs | 4 ++--
Source/HtmlRenderer.WPF/HtmlControl.cs | 10 +++++-----
Source/HtmlRenderer.WPF/HtmlRenderer.WPF.csproj | 2 +-
.../{RoutedEvenArgs.cs => RoutedEventArgs.cs} | 8 ++++----
5 files changed, 14 insertions(+), 14 deletions(-)
rename Source/HtmlRenderer.WPF/{RoutedEvenArgs.cs => RoutedEventArgs.cs} (85%)
diff --git a/Source/Demo/WPF/HtmlRenderingHelper.cs b/Source/Demo/WPF/HtmlRenderingHelper.cs
index 276737b1b..5250e17fe 100644
--- a/Source/Demo/WPF/HtmlRenderingHelper.cs
+++ b/Source/Demo/WPF/HtmlRenderingHelper.cs
@@ -65,7 +65,7 @@ public static BitmapEncoder GetBitmapEncoder(string ext)
///
/// Handle stylesheet resolve.
///
- public static void OnStylesheetLoad(object sender, RoutedEvenArgs args)
+ public static void OnStylesheetLoad(object sender, RoutedEventArgs args)
{
DemoUtils.OnStylesheetLoad(sender, args.Data);
}
@@ -105,7 +105,7 @@ public static BitmapImage ImageFromStream(Stream stream)
///
/// On image load in renderer set the image by event async.
///
- public static void OnImageLoad(object sender, RoutedEvenArgs args)
+ public static void OnImageLoad(object sender, RoutedEventArgs args)
{
ImageLoad(args.Data);
}
diff --git a/Source/Demo/WPF/MainControl.xaml.cs b/Source/Demo/WPF/MainControl.xaml.cs
index 215d3b13c..00fd7b5c5 100644
--- a/Source/Demo/WPF/MainControl.xaml.cs
+++ b/Source/Demo/WPF/MainControl.xaml.cs
@@ -326,7 +326,7 @@ private void OnColoredCheckbox_click(object sender, RoutedEventArgs e)
///
/// Show error raised from html renderer.
///
- private void OnRenderError(object sender, RoutedEvenArgs args)
+ private void OnRenderError(object sender, RoutedEventArgs args)
{
Dispatcher.BeginInvoke(new Action(() => MessageBox.Show(args.Data.Message + (args.Data.Exception != null ? "\r\n" + args.Data.Exception : null), "Error in Html Renderer", MessageBoxButton.OK)));
}
@@ -334,7 +334,7 @@ private void OnRenderError(object sender, RoutedEvenArgs
/// On specific link click handle it here.
///
- private void OnLinkClicked(object sender, RoutedEvenArgs args)
+ private void OnLinkClicked(object sender, RoutedEventArgs args)
{
if (args.Data.Link == "SayHello")
{
diff --git a/Source/HtmlRenderer.WPF/HtmlControl.cs b/Source/HtmlRenderer.WPF/HtmlControl.cs
index 752f5bd99..be4e241fd 100644
--- a/Source/HtmlRenderer.WPF/HtmlControl.cs
+++ b/Source/HtmlRenderer.WPF/HtmlControl.cs
@@ -388,7 +388,7 @@ protected override void OnKeyDown(KeyEventArgs e)
///
protected virtual void OnLoadComplete(EventArgs e)
{
- RoutedEventArgs newEventArgs = new RoutedEvenArgs(LoadCompleteEvent, this, e);
+ RoutedEventArgs newEventArgs = new RoutedEventArgs(LoadCompleteEvent, this, e);
RaiseEvent(newEventArgs);
}
@@ -397,7 +397,7 @@ protected virtual void OnLoadComplete(EventArgs e)
///
protected virtual void OnLinkClicked(HtmlLinkClickedEventArgs e)
{
- RoutedEventArgs newEventArgs = new RoutedEvenArgs(LinkClickedEvent, this, e);
+ RoutedEventArgs newEventArgs = new RoutedEventArgs(LinkClickedEvent, this, e);
RaiseEvent(newEventArgs);
}
@@ -406,7 +406,7 @@ protected virtual void OnLinkClicked(HtmlLinkClickedEventArgs e)
///
protected virtual void OnRenderError(HtmlRenderErrorEventArgs e)
{
- RoutedEventArgs newEventArgs = new RoutedEvenArgs(RenderErrorEvent, this, e);
+ RoutedEventArgs newEventArgs = new RoutedEventArgs(RenderErrorEvent, this, e);
RaiseEvent(newEventArgs);
}
@@ -415,7 +415,7 @@ protected virtual void OnRenderError(HtmlRenderErrorEventArgs e)
///
protected virtual void OnStylesheetLoad(HtmlStylesheetLoadEventArgs e)
{
- RoutedEventArgs newEventArgs = new RoutedEvenArgs(StylesheetLoadEvent, this, e);
+ RoutedEventArgs newEventArgs = new RoutedEventArgs(StylesheetLoadEvent, this, e);
RaiseEvent(newEventArgs);
}
@@ -424,7 +424,7 @@ protected virtual void OnStylesheetLoad(HtmlStylesheetLoadEventArgs e)
///
protected virtual void OnImageLoad(HtmlImageLoadEventArgs e)
{
- RoutedEventArgs newEventArgs = new RoutedEvenArgs(ImageLoadEvent, this, e);
+ RoutedEventArgs newEventArgs = new RoutedEventArgs(ImageLoadEvent, this, e);
RaiseEvent(newEventArgs);
}
diff --git a/Source/HtmlRenderer.WPF/HtmlRenderer.WPF.csproj b/Source/HtmlRenderer.WPF/HtmlRenderer.WPF.csproj
index 5c725a851..80c4b97f9 100644
--- a/Source/HtmlRenderer.WPF/HtmlRenderer.WPF.csproj
+++ b/Source/HtmlRenderer.WPF/HtmlRenderer.WPF.csproj
@@ -70,7 +70,7 @@
-
+
diff --git a/Source/HtmlRenderer.WPF/RoutedEvenArgs.cs b/Source/HtmlRenderer.WPF/RoutedEventArgs.cs
similarity index 85%
rename from Source/HtmlRenderer.WPF/RoutedEvenArgs.cs
rename to Source/HtmlRenderer.WPF/RoutedEventArgs.cs
index be5b60ed5..32dd0c65a 100644
--- a/Source/HtmlRenderer.WPF/RoutedEvenArgs.cs
+++ b/Source/HtmlRenderer.WPF/RoutedEventArgs.cs
@@ -20,26 +20,26 @@ namespace TheArtOfDev.HtmlRenderer.WPF
///
/// the event arguments object
/// the type of the routed events args data
- public delegate void RoutedEventHandler(object sender, RoutedEvenArgs args) where T : class;
+ public delegate void RoutedEventHandler(object sender, RoutedEventArgs args) where T : class;
///
/// HTML Renderer routed event arguments containing event data.
///
- public sealed class RoutedEvenArgs : RoutedEventArgs where T : class
+ public sealed class RoutedEventArgs : RoutedEventArgs where T : class
{
///
/// the argument data of the routed event
///
private readonly T _data;
- public RoutedEvenArgs(RoutedEvent routedEvent, T data)
+ public RoutedEventArgs(RoutedEvent routedEvent, T data)
: base(routedEvent)
{
ArgChecker.AssertArgNotNull(data, "args");
_data = data;
}
- public RoutedEvenArgs(RoutedEvent routedEvent, object source, T data)
+ public RoutedEventArgs(RoutedEvent routedEvent, object source, T data)
: base(routedEvent, source)
{
ArgChecker.AssertArgNotNull(data, "args");
From fbe070a62c62f87d56eb785578482c12757d673a Mon Sep 17 00:00:00 2001
From: Licshee
Date: Wed, 3 May 2017 05:46:32 +0800
Subject: [PATCH 05/34] cleaning up: key & value can never be null in
ExtractAttributes
---
Source/HtmlRenderer/Core/Parse/HtmlParser.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/HtmlRenderer/Core/Parse/HtmlParser.cs b/Source/HtmlRenderer/Core/Parse/HtmlParser.cs
index f246fda82..49ee39051 100644
--- a/Source/HtmlRenderer/Core/Parse/HtmlParser.cs
+++ b/Source/HtmlRenderer/Core/Parse/HtmlParser.cs
@@ -246,7 +246,7 @@ private static void ExtractAttributes(string source, int idx, int length, out Di
value = HtmlUtils.DecodeHtml(value);
}
- if (!string.IsNullOrEmpty(key) && (value != null))
+ if (key.Length != 0)
{
if (attributes == null)
attributes = new Dictionary(StringComparer.InvariantCultureIgnoreCase);
From 73d457de97f22195fade02cf6606f4270e3df579 Mon Sep 17 00:00:00 2001
From: Jonathan Taylor
Date: Wed, 24 May 2017 13:51:22 -0600
Subject: [PATCH 06/34] Removed System.Windows.Forms dependency in WPF nuspec
file
---
Build/NuGet/HtmlRenderer.WPF.nuspec | 1 -
1 file changed, 1 deletion(-)
diff --git a/Build/NuGet/HtmlRenderer.WPF.nuspec b/Build/NuGet/HtmlRenderer.WPF.nuspec
index d0abfa1db..f3b20bcee 100644
--- a/Build/NuGet/HtmlRenderer.WPF.nuspec
+++ b/Build/NuGet/HtmlRenderer.WPF.nuspec
@@ -35,7 +35,6 @@
See http://htmlrenderer.codeplex.com/releases.
html render renderer draw control WPF
-
From df83112d7968b2602d6f7a4eec79038a5fae7dc4 Mon Sep 17 00:00:00 2001
From: Bas Driessen
Date: Sat, 24 Jun 2017 03:01:07 +0200
Subject: [PATCH 07/34] Fix for combining bold with italic in WPF
Checking if the RFontStyle flag is set instead of checking the value
only, (Bold | Italic) would fall through to default instead of the
desired values.
Adding bold and italic font style span to sample html.
---
Source/Demo/Common/Samples/02.Text.htm | 2 +-
Source/Demo/Common/Samples/03.Tables.htm | 2 +-
.../HtmlRenderer.WPF/Adapters/WpfAdapter.cs | 22 +++++++------------
3 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/Source/Demo/Common/Samples/02.Text.htm b/Source/Demo/Common/Samples/02.Text.htm
index b7aee3fa9..727d1fea4 100644
--- a/Source/Demo/Common/Samples/02.Text.htm
+++ b/Source/Demo/Common/Samples/02.Text.htm
@@ -23,7 +23,7 @@ Formatting
Colors, Colors,
Colors
Back colors, Back colors, Back colors
- Font style, Font style, Font style, Font style, Font style
+ Font style, Font style, Font style, Font style, Font style, Font style
Lorem ipsum dolor sit amet,
diff --git a/Source/Demo/Common/Samples/03.Tables.htm b/Source/Demo/Common/Samples/03.Tables.htm
index 7f8a07eb7..e923bacce 100644
--- a/Source/Demo/Common/Samples/03.Tables.htm
+++ b/Source/Demo/Common/Samples/03.Tables.htm
@@ -77,7 +77,7 @@
Back colors,
Back colors, Back colors
Font style,
- Font style, Font style,
+ Font style, Font style, Font style,
Font style, Font style
diff --git a/Source/HtmlRenderer.WPF/Adapters/WpfAdapter.cs b/Source/HtmlRenderer.WPF/Adapters/WpfAdapter.cs
index 117ec5ca8..3ea88d9c4 100644
--- a/Source/HtmlRenderer.WPF/Adapters/WpfAdapter.cs
+++ b/Source/HtmlRenderer.WPF/Adapters/WpfAdapter.cs
@@ -207,13 +207,10 @@ private static Brush GetSolidColorBrush(RColor color)
///
private static FontStyle GetFontStyle(RFontStyle style)
{
- switch (style)
- {
- case RFontStyle.Italic:
- return FontStyles.Italic;
- default:
- return FontStyles.Normal;
- }
+ if ((style & RFontStyle.Italic) == RFontStyle.Italic)
+ return FontStyles.Italic;
+
+ return FontStyles.Normal;
}
///
@@ -221,13 +218,10 @@ private static FontStyle GetFontStyle(RFontStyle style)
///
private static FontWeight GetFontWidth(RFontStyle style)
{
- switch (style)
- {
- case RFontStyle.Bold:
- return FontWeights.Bold;
- default:
- return FontWeights.Normal;
- }
+ if ((style & RFontStyle.Bold) == RFontStyle.Bold)
+ return FontWeights.Bold;
+
+ return FontWeights.Normal;
}
#endregion
From d4495b414eeace94c63c708c03ff7854bf2761b4 Mon Sep 17 00:00:00 2001
From: Licshee
Date: Fri, 11 Aug 2017 15:38:03 +0800
Subject: [PATCH 08/34] Revert "Fixes WPF text blurry render encountered in
some cases."
---
Source/HtmlRenderer.WPF/Adapters/GraphicsAdapter.cs | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/Source/HtmlRenderer.WPF/Adapters/GraphicsAdapter.cs b/Source/HtmlRenderer.WPF/Adapters/GraphicsAdapter.cs
index 95cb5fe67..d61bef4ca 100644
--- a/Source/HtmlRenderer.WPF/Adapters/GraphicsAdapter.cs
+++ b/Source/HtmlRenderer.WPF/Adapters/GraphicsAdapter.cs
@@ -201,15 +201,7 @@ public override void DrawString(string str, RFont font, RColor color, RPoint poi
glyphRendered = true;
var glyphRun = new GlyphRun(glyphTypeface, rtl ? 1 : 0, false, 96d / 72d * font.Size, glyphs, Utils.ConvertRound(point), widths, null, null, null, null, null, null);
- var rect = glyphRun.ComputeAlignmentBox();
- var guidelines = new GuidelineSet();
- guidelines.GuidelinesX.Add(rect.Left);
- guidelines.GuidelinesX.Add(rect.Right);
- guidelines.GuidelinesY.Add(rect.Top);
- guidelines.GuidelinesY.Add(rect.Bottom);
- _g.PushGuidelineSet(guidelines);
_g.DrawGlyphRun(colorConv, glyphRun);
- _g.Pop();
}
}
@@ -277,7 +269,7 @@ public override void DrawRectangle(RPen pen, double x, double y, double width, d
x += .5;
y += .5;
}
-
+
_g.DrawRectangle(null, ((PenAdapter)pen).CreatePen(), new Rect(x, y, width, height));
}
From c14d10c1bc0295a3e6861b44bc891e4c2af39c4d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maur=C3=ADcio=20Vielmo=20Schmaedeck?=
Date: Wed, 27 Mar 2019 00:30:34 -0300
Subject: [PATCH 09/34] Fix for #149
Fixes an error where a WebException would be "randomly" thrown when downloading an image
---
Source/HtmlRenderer/Core/Handlers/ImageDownloader.cs | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Source/HtmlRenderer/Core/Handlers/ImageDownloader.cs b/Source/HtmlRenderer/Core/Handlers/ImageDownloader.cs
index 8ebdf009e..2f8b0f5e6 100644
--- a/Source/HtmlRenderer/Core/Handlers/ImageDownloader.cs
+++ b/Source/HtmlRenderer/Core/Handlers/ImageDownloader.cs
@@ -48,6 +48,11 @@ internal sealed class ImageDownloader : IDisposable
///
private readonly Dictionary> _imageDownloadCallbacks = new Dictionary>();
+ public ImageDownloader()
+ {
+ ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
+ }
+
///
/// Makes a request to download the image from the server and raises the when it's down.
///
From bbff8902d7a017044fc40c659fbf937fbdba2f1e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?=
Date: Mon, 8 Dec 2025 08:10:23 +0100
Subject: [PATCH 10/34] Update all links
- Use the CodePlex Archive website and point to GitHub
- Use HTTPS links
- Point to archive.org for old images
---
Build/NuGet/HtmlRenderer.Core.nuspec | 9 +-
Build/NuGet/HtmlRenderer.Mono.README.md | 53 ++++++
Build/NuGet/HtmlRenderer.Mono.nuspec | 10 +-
Build/NuGet/HtmlRenderer.Mono.readme.txt | 50 ------
Build/NuGet/HtmlRenderer.PdfSharp.README.md | 35 ++++
Build/NuGet/HtmlRenderer.PdfSharp.nuspec | 10 +-
Build/NuGet/HtmlRenderer.PdfSharp.readme.txt | 33 ----
Build/NuGet/HtmlRenderer.WPF.README.md | 53 ++++++
Build/NuGet/HtmlRenderer.WPF.nuspec | 10 +-
Build/NuGet/HtmlRenderer.WPF.readme.txt | 50 ------
Build/NuGet/HtmlRenderer.WinForms.README.md | 53 ++++++
Build/NuGet/HtmlRenderer.WinForms.nuspec | 10 +-
Build/NuGet/HtmlRenderer.WinForms.readme.txt | 50 ------
README.md | 57 +++---
Source/Demo/Common/DemoUtils.cs | 4 +-
Source/Demo/Common/HtmlSyntaxHighlighter.cs | 2 +-
.../Demo/Common/PerfSamples/1.Big table.htm | 170 +++++++++---------
Source/Demo/Common/Resources/Tooltip.html | 2 +-
Source/Demo/Common/Samples/00.Intro.htm | 5 +-
Source/Demo/Common/Samples/02.Text.htm | 12 +-
Source/Demo/Common/Samples/04.Links.htm | 2 +-
Source/Demo/Common/Samples/05.Images.htm | 2 +-
.../Demo/Common/Samples/06.Embeded video.htm | 2 +-
Source/Demo/Common/Samples/20.About.htm | 26 ++-
.../Demo/Common/TestSamples/02.Line break.htm | 4 +-
.../Common/TestSamples/06.External Image.htm | 6 +-
Source/Demo/Common/TestSamples/09.Inline.htm | 8 +-
.../Common/TestSamples/10.BlockInInline.htm | 2 +-
.../Demo/Common/TestSamples/15.MaxWidth.htm | 8 +-
.../Common/TestSamples/19.Many images.htm | 98 +++++-----
Source/Demo/WPF/HtmlRenderer.Demo.WPF.csproj | 2 +-
Source/Demo/WPF/HtmlRenderingHelper.cs | 4 +-
.../HtmlRenderer.Demo.WinForms.csproj | 2 +-
Source/Demo/WinForms/HtmlRenderingHelper.cs | 4 +-
.../HtmlRenderer.PdfSharp.csproj | 2 +-
Source/HtmlRenderer.WPF/HtmlRender.cs | 2 +-
.../Utilities/ClipboardHelper.cs | 4 +-
Source/HtmlRenderer.WinForms/HtmlRender.cs | 2 +-
.../MetafileExtensions.cs | 2 +-
.../Utilities/ClipboardHelper.cs | 4 +-
Source/HtmlRenderer/Core/Dom/CssBoxFrame.cs | 4 +-
Source/SharedAssemblyInfo.cs | 2 +-
42 files changed, 440 insertions(+), 430 deletions(-)
create mode 100644 Build/NuGet/HtmlRenderer.Mono.README.md
delete mode 100644 Build/NuGet/HtmlRenderer.Mono.readme.txt
create mode 100644 Build/NuGet/HtmlRenderer.PdfSharp.README.md
delete mode 100644 Build/NuGet/HtmlRenderer.PdfSharp.readme.txt
create mode 100644 Build/NuGet/HtmlRenderer.WPF.README.md
delete mode 100644 Build/NuGet/HtmlRenderer.WPF.readme.txt
create mode 100644 Build/NuGet/HtmlRenderer.WinForms.README.md
delete mode 100644 Build/NuGet/HtmlRenderer.WinForms.readme.txt
diff --git a/Build/NuGet/HtmlRenderer.Core.nuspec b/Build/NuGet/HtmlRenderer.Core.nuspec
index 25e8783ea..829ac2a9e 100644
--- a/Build/NuGet/HtmlRenderer.Core.nuspec
+++ b/Build/NuGet/HtmlRenderer.Core.nuspec
@@ -6,9 +6,9 @@
HTML Renderer Core
Arthur Teplitzki
Arthur Teplitzki
- https://htmlrenderer.codeplex.com/license
- https://htmlrenderer.codeplex.com/
- https://github.com/ArthurHub/HTML-Renderer/blob/master/html.ico?raw=true
+ https://github.com/ArthurHub/HTML-Renderer/blob/master/LICENSE
+ https://codeplexarchive.org/project/HtmlRenderer
+ https://raw.githubusercontent.com/ArthurHub/HTML-Renderer/refs/heads/master/html.ico
false
Cross framework (WinForms/WPF/PDF/Metro/Mono/etc.), Multipurpose (UI Controls / Image generation / PDF generation / etc.), 100% managed (C#), High performance HTML Rendering library.
@@ -20,7 +20,7 @@
Can be used to create framework specific renderer using adapter extensibility object model.
For existing implementations see: HtmlRenderer.WinForms, HtmlRenderer.WPF and HtmlRenderer.PdfSharp.
- See http://htmlrenderer.codeplex.com/releases.
+ See https://github.com/ArthurHub/HTML-Renderer/releases.
html render renderer draw core
@@ -34,5 +34,6 @@
+
\ No newline at end of file
diff --git a/Build/NuGet/HtmlRenderer.Mono.README.md b/Build/NuGet/HtmlRenderer.Mono.README.md
new file mode 100644
index 000000000..80b7724d0
--- /dev/null
+++ b/Build/NuGet/HtmlRenderer.Mono.README.md
@@ -0,0 +1,53 @@
+# Welcome to the HTML Renderer WinForms library!
+
+This library provides the rich formatting power of HTML in Mono .NET applications using
+simple controls or static rendering code.
+For more info see HTML Renderer on GitHub: https://github.com/ArthurHub/HTML-Renderer
+
+## DEMO APPLICATION
+
+HTML Renderer Demo application showcases HTML Renderer capabilities, use it to explore and learn
+on the library: https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Demo%20application
+
+## FEEDBACK / RELEASE NOTES
+
+If you have problems, wish to report a bug, or have a suggestion, please open an issue on the
+HTML Renderer issue page: https://github.com/ArthurHub/HTML-Renderer/issues
+
+For full release notes and all versions see: https://github.com/ArthurHub/HTML-Renderer/releases
+
+## QUICK START
+
+For more Quick Start see: https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Documentation
+
+---
+
+## Quick Start: Use HTML panel control on WinForms form
+
+```csharp
+public partial class Form1 : Form
+{
+ public Form1()
+ {
+ InitializeComponent();
+
+ TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel htmlPanel = new TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel();
+ htmlPanel.Text = "Hello World
This is html rendered text
";
+ htmlPanel.Dock = DockStyle.Fill;
+ Controls.Add(htmlPanel);
+ }
+}
+```
+
+## Quick Start: Create image from HTML snippet
+
+```csharp
+class Program
+{
+ private static void Main(string[] args)
+ {
+ Image image = TheArtOfDev.HtmlRenderer.WinForms.HtmlRender.RenderToImageGdiPlus("Hello World
This is html rendered text");
+ image.Save("image.png", ImageFormat.Png);
+ }
+}
+```
\ No newline at end of file
diff --git a/Build/NuGet/HtmlRenderer.Mono.nuspec b/Build/NuGet/HtmlRenderer.Mono.nuspec
index 11840a00c..d1c2a67f1 100644
--- a/Build/NuGet/HtmlRenderer.Mono.nuspec
+++ b/Build/NuGet/HtmlRenderer.Mono.nuspec
@@ -6,9 +6,9 @@
HTML Renderer for Mono
Arthur Teplitzki
Arthur Teplitzki
- https://htmlrenderer.codeplex.com/license
- https://htmlrenderer.codeplex.com/
- https://github.com/ArthurHub/HTML-Renderer/blob/master/html.ico?raw=true
+ https://github.com/ArthurHub/HTML-Renderer/blob/master/LICENSE
+ https://codeplexarchive.org/project/HtmlRenderer
+ https://raw.githubusercontent.com/ArthurHub/HTML-Renderer/refs/heads/master/html.ico
false
Multipurpose (UI Controls / Image generation), 100% managed (C#), High performance HTML Rendering library for Mono.
@@ -32,7 +32,7 @@
* High performance and low memory footprint.
* Extendable and configurable.
- See http://htmlrenderer.codeplex.com/releases.
+ See https://github.com/ArthurHub/HTML-Renderer/releases.
html render renderer draw control winforms mono
@@ -51,6 +51,6 @@
-
+
\ No newline at end of file
diff --git a/Build/NuGet/HtmlRenderer.Mono.readme.txt b/Build/NuGet/HtmlRenderer.Mono.readme.txt
deleted file mode 100644
index 81bc1c0d2..000000000
--- a/Build/NuGet/HtmlRenderer.Mono.readme.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-
-********** Welcome to the HTML Renderer WinForms library! *****************************************
-
-This library provides the rich formatting power of HTML in Mono .NET applications using
-simple controls or static rendering code.
-For more info see HTML Renderer on CodePlex: http://htmlrenderer.codeplex.com
-
-********** DEMO APPLICATION ***********************************************************************
-
-HTML Renderer Demo application showcases HTML Renderer capabilities, use it to explore and learn
-on the library: http://htmlrenderer.codeplex.com/wikipage?title=Demo%20application
-
-********** FEEDBACK / RELEASE NOTES ***************************************************************
-
-If you have problems, wish to report a bug, or have a suggestion please start a thread on
-HTML Renderer discussions page: http://htmlrenderer.codeplex.com/discussions
-
-For full release notes and all versions see: http://htmlrenderer.codeplex.com/releases
-
-********** QUICK START ****************************************************************************
-
-For more Quick Start see: https://htmlrenderer.codeplex.com/wikipage?title=Quick%20start
-
-***************************************************************************************************
-********** Quick Start: Use HTML panel control on WinForms form
-
-public partial class Form1 : Form
-{
- public Form1()
- {
- InitializeComponent();
-
- TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel htmlPanel = new TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel();
- htmlPanel.Text = "Hello World
This is html rendered text";
- htmlPanel.Dock = DockStyle.Fill;
- Controls.Add(htmlPanel);
- }
-}
-
-***************************************************************************************************
-********** Quick Start: Create image from HTML snippet
-
-class Program
-{
- private static void Main(string[] args)
- {
- Image image = TheArtOfDev.HtmlRenderer.WinForms.HtmlRender.RenderToImageGdiPlus("Hello World
This is html rendered text");
- image.Save("image.png", ImageFormat.Png);
- }
-}
diff --git a/Build/NuGet/HtmlRenderer.PdfSharp.README.md b/Build/NuGet/HtmlRenderer.PdfSharp.README.md
new file mode 100644
index 000000000..f1af8def0
--- /dev/null
+++ b/Build/NuGet/HtmlRenderer.PdfSharp.README.md
@@ -0,0 +1,35 @@
+# Welcome to the HTML Renderer PdfSharp library!
+
+This library provides the ability to generate PDF documents from HTML snippets using static rendering code.
+For more info see HTML Renderer on GitHub: https://github.com/ArthurHub/HTML-Renderer
+
+## DEMO APPLICATION
+
+HTML Renderer Demo application showcases HTML Renderer capabilities, use it to explore and learn
+on the library: https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Demo%20application
+
+## FEEDBACK / RELEASE NOTES
+
+If you have problems, wish to report a bug, or have a suggestion, please open an issue on the
+HTML Renderer issue page: https://github.com/ArthurHub/HTML-Renderer/issues
+
+For full release notes and all versions see: https://github.com/ArthurHub/HTML-Renderer/releases
+
+## QUICK START
+
+For more Quick Start see: https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Documentation
+
+---
+
+## Quick Start: Create PDF from HTML snippet using PdfSharp
+
+```csharp
+class Program
+{
+ private static void Main(string[] args)
+ {
+ PdfDocument pdf = PdfGenerator.GeneratePdf("Hello World
This is html rendered text", PageSize.A4);
+ pdf.Save("document.pdf");
+ }
+}
+```
diff --git a/Build/NuGet/HtmlRenderer.PdfSharp.nuspec b/Build/NuGet/HtmlRenderer.PdfSharp.nuspec
index 84e5efada..71ba7dbb7 100644
--- a/Build/NuGet/HtmlRenderer.PdfSharp.nuspec
+++ b/Build/NuGet/HtmlRenderer.PdfSharp.nuspec
@@ -6,9 +6,9 @@
HTML Renderer for PDF using PdfSharp
Arthur Teplitzki
Arthur Teplitzki
- https://htmlrenderer.codeplex.com/license
- https://htmlrenderer.codeplex.com/
- https://github.com/ArthurHub/HTML-Renderer/blob/master/html.ico?raw=true
+ https://github.com/ArthurHub/HTML-Renderer/blob/master/LICENSE
+ https://codeplexarchive.org/project/HtmlRenderer
+ https://raw.githubusercontent.com/ArthurHub/HTML-Renderer/refs/heads/master/html.ico
false
PDF document generator from HTML snippet, 100% managed (C#), High performance library using PdfSharp.
@@ -27,7 +27,7 @@
* High performance and low memory footprint.
* Extendable and configurable.
- See http://htmlrenderer.codeplex.com/releases.
+ See https://github.com/ArthurHub/HTML-Renderer/releases.
html render renderer draw pdfsharp
@@ -47,6 +47,6 @@
-
+
\ No newline at end of file
diff --git a/Build/NuGet/HtmlRenderer.PdfSharp.readme.txt b/Build/NuGet/HtmlRenderer.PdfSharp.readme.txt
deleted file mode 100644
index 97a66b14d..000000000
--- a/Build/NuGet/HtmlRenderer.PdfSharp.readme.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-
-********** Welcome to the HTML Renderer PdfSharp library! *****************************************
-
-This library provides the ability to generate PDF documents from HTML snippets using static rendering code.
-For more info see HTML Renderer on CodePlex: http://htmlrenderer.codeplex.com
-
-********** DEMO APPLICATION ***********************************************************************
-
-HTML Renderer Demo application showcases HTML Renderer capabilities, use it to explore and learn
-on the library: http://htmlrenderer.codeplex.com/wikipage?title=Demo%20application
-
-********** FEEDBACK / RELEASE NOTES ***************************************************************
-
-If you have problems, wish to report a bug, or have a suggestion please start a thread on
-HTML Renderer discussions page: http://htmlrenderer.codeplex.com/discussions
-
-For full release notes and all versions see: http://htmlrenderer.codeplex.com/releases
-
-********** QUICK START ****************************************************************************
-
-For more Quick Start see: https://htmlrenderer.codeplex.com/wikipage?title=Quick%20start
-
-***************************************************************************************************
-********** Quick Start: Create PDF from HTML snippet using PdfSharp
-
-class Program
-{
- private static void Main(string[] args)
- {
- PdfDocument pdf = PdfGenerator.GeneratePdf("Hello World
This is html rendered text", PageSize.A4);
- pdf.Save("document.pdf");
- }
-}
diff --git a/Build/NuGet/HtmlRenderer.WPF.README.md b/Build/NuGet/HtmlRenderer.WPF.README.md
new file mode 100644
index 000000000..0c536f912
--- /dev/null
+++ b/Build/NuGet/HtmlRenderer.WPF.README.md
@@ -0,0 +1,53 @@
+# Welcome to the HTML Renderer WPF library!
+
+This library provides the rich formatting power of HTML in your WPF .NET applications using
+simple controls or static rendering code.
+For more info see HTML Renderer on GitHub: https://github.com/ArthurHub/HTML-Renderer
+
+## DEMO APPLICATION
+
+HTML Renderer Demo application showcases HTML Renderer capabilities, use it to explore and learn
+on the library: https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Demo%20application
+
+## FEEDBACK / RELEASE NOTES
+
+If you have problems, wish to report a bug, or have a suggestion, please open an issue on the
+HTML Renderer issue page: https://github.com/ArthurHub/HTML-Renderer/issues
+
+For full release notes and all versions see: https://github.com/ArthurHub/HTML-Renderer/releases
+
+## QUICK START
+
+For more Quick Start see: https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Documentation
+
+---
+
+## Quick Start: Use HTML panel control on WPF window
+
+```xaml
+
+
+
+
+
+```
+
+## Quick Start: Create image from HTML snippet
+
+```csharp
+class Program
+{
+ private static void Main(string[] args)
+ {
+ BitmapFrame image = HtmlRender.RenderToImage("Hello World
This is html rendered text");
+ var encoder = new PngBitmapEncoder();
+ encoder.Frames.Add(image);
+ using (FileStream stream = new FileStream("image.png", FileMode.OpenOrCreate))
+ encoder.Save(stream);
+ }
+}
+```
\ No newline at end of file
diff --git a/Build/NuGet/HtmlRenderer.WPF.nuspec b/Build/NuGet/HtmlRenderer.WPF.nuspec
index f3b20bcee..121e82e12 100644
--- a/Build/NuGet/HtmlRenderer.WPF.nuspec
+++ b/Build/NuGet/HtmlRenderer.WPF.nuspec
@@ -6,9 +6,9 @@
HTML Renderer for WPF
Arthur Teplitzki
Arthur Teplitzki
- https://htmlrenderer.codeplex.com/license
- https://htmlrenderer.codeplex.com/
- https://github.com/ArthurHub/HTML-Renderer/blob/master/html.ico?raw=true
+ https://github.com/ArthurHub/HTML-Renderer/blob/master/LICENSE
+ https://codeplexarchive.org/project/HtmlRenderer
+ https://raw.githubusercontent.com/ArthurHub/HTML-Renderer/refs/heads/master/html.ico
false
Multipurpose (UI Controls / Image generation), 100% managed (C#), High performance HTML Rendering library for WPF.
@@ -32,7 +32,7 @@
* High performance and low memory footprint.
* Extendable and configurable.
- See http://htmlrenderer.codeplex.com/releases.
+ See https://github.com/ArthurHub/HTML-Renderer/releases.
html render renderer draw control WPF
@@ -50,6 +50,6 @@
-
+
\ No newline at end of file
diff --git a/Build/NuGet/HtmlRenderer.WPF.readme.txt b/Build/NuGet/HtmlRenderer.WPF.readme.txt
deleted file mode 100644
index 6d858ea66..000000000
--- a/Build/NuGet/HtmlRenderer.WPF.readme.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-
-********** Welcome to the HTML Renderer WPF library! **********************************************
-
-This library provides the rich formatting power of HTML in your WPF .NET applications using
-simple controls or static rendering code.
-For more info see HTML Renderer on CodePlex: http://htmlrenderer.codeplex.com
-
-********** DEMO APPLICATION ***********************************************************************
-
-HTML Renderer Demo application showcases HTML Renderer capabilities, use it to explore and learn
-on the library: http://htmlrenderer.codeplex.com/wikipage?title=Demo%20application
-
-********** FEEDBACK / RELEASE NOTES ***************************************************************
-
-If you have problems, wish to report a bug, or have a suggestion please start a thread on
-HTML Renderer discussions page: http://htmlrenderer.codeplex.com/discussions
-
-For full release notes and all versions see: http://htmlrenderer.codeplex.com/releases
-
-********** QUICK START ****************************************************************************
-
-For more Quick Start see: https://htmlrenderer.codeplex.com/wikipage?title=Quick%20start
-
-***************************************************************************************************
-********** Quick Start: Use HTML panel control on WPF window
-
-
-
-
-
-
-
-***************************************************************************************************
-********** Quick Start: Create image from HTML snippet
-
-class Program
-{
- private static void Main(string[] args)
- {
- BitmapFrame image = HtmlRender.RenderToImage("Hello World
This is html rendered text");
- var encoder = new PngBitmapEncoder();
- encoder.Frames.Add(image);
- using (FileStream stream = new FileStream("image.png", FileMode.OpenOrCreate))
- encoder.Save(stream);
- }
-}
diff --git a/Build/NuGet/HtmlRenderer.WinForms.README.md b/Build/NuGet/HtmlRenderer.WinForms.README.md
new file mode 100644
index 000000000..0d4f2d4d7
--- /dev/null
+++ b/Build/NuGet/HtmlRenderer.WinForms.README.md
@@ -0,0 +1,53 @@
+# Welcome to the HTML Renderer WinForms library!
+
+This library provides the rich formatting power of HTML in your WinForms .NET applications using
+simple controls or static rendering code.
+For more info see HTML Renderer on GitHub: https://github.com/ArthurHub/HTML-Renderer
+
+## DEMO APPLICATION
+
+HTML Renderer Demo application showcases HTML Renderer capabilities, use it to explore and learn
+on the library: https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Demo%20application
+
+## FEEDBACK / RELEASE NOTES
+
+If you have problems, wish to report a bug, or have a suggestion, please open an issue on the
+HTML Renderer issue page: https://github.com/ArthurHub/HTML-Renderer/issues
+
+For full release notes and all versions see: https://github.com/ArthurHub/HTML-Renderer/releases
+
+## QUICK START
+
+For more Quick Start see: https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Documentation
+
+---
+
+## Quick Start: Use HTML panel control on WinForms form
+
+```csharp
+public partial class Form1 : Form
+{
+ public Form1()
+ {
+ InitializeComponent();
+
+ TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel htmlPanel = new TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel();
+ htmlPanel.Text = "Hello World
This is html rendered text";
+ htmlPanel.Dock = DockStyle.Fill;
+ Controls.Add(htmlPanel);
+ }
+}
+```
+
+## Quick Start: Create image from HTML snippet
+
+```csharp
+class Program
+{
+ private static void Main(string[] args)
+ {
+ Image image = TheArtOfDev.HtmlRenderer.WinForms.HtmlRender.RenderToImage("Hello World
This is html rendered text");
+ image.Save("image.png", ImageFormat.Png);
+ }
+}
+```
diff --git a/Build/NuGet/HtmlRenderer.WinForms.nuspec b/Build/NuGet/HtmlRenderer.WinForms.nuspec
index 37fcfe31b..c41134ca7 100644
--- a/Build/NuGet/HtmlRenderer.WinForms.nuspec
+++ b/Build/NuGet/HtmlRenderer.WinForms.nuspec
@@ -6,9 +6,9 @@
HTML Renderer for WinForms
Arthur Teplitzki
Arthur Teplitzki
- https://htmlrenderer.codeplex.com/license
- https://htmlrenderer.codeplex.com/
- https://github.com/ArthurHub/HTML-Renderer/blob/master/html.ico?raw=true
+ https://github.com/ArthurHub/HTML-Renderer/blob/master/LICENSE
+ https://codeplexarchive.org/project/HtmlRenderer
+ https://raw.githubusercontent.com/ArthurHub/HTML-Renderer/refs/heads/master/html.ico
false
Multipurpose (UI Controls / Image generation), 100% managed (C#), High performance HTML Rendering library for WinForms.
@@ -32,7 +32,7 @@
* High performance and low memory footprint.
* Extendable and configurable.
- See http://htmlrenderer.codeplex.com/releases.
+ See https://github.com/ArthurHub/HTML-Renderer/releases.
html render renderer draw control winforms
@@ -51,6 +51,6 @@
-
+
\ No newline at end of file
diff --git a/Build/NuGet/HtmlRenderer.WinForms.readme.txt b/Build/NuGet/HtmlRenderer.WinForms.readme.txt
deleted file mode 100644
index 8c2fe704b..000000000
--- a/Build/NuGet/HtmlRenderer.WinForms.readme.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-
-********** Welcome to the HTML Renderer WinForms library! *****************************************
-
-This library provides the rich formatting power of HTML in your WinForms .NET applications using
-simple controls or static rendering code.
-For more info see HTML Renderer on CodePlex: http://htmlrenderer.codeplex.com
-
-********** DEMO APPLICATION ***********************************************************************
-
-HTML Renderer Demo application showcases HTML Renderer capabilities, use it to explore and learn
-on the library: http://htmlrenderer.codeplex.com/wikipage?title=Demo%20application
-
-********** FEEDBACK / RELEASE NOTES ***************************************************************
-
-If you have problems, wish to report a bug, or have a suggestion please start a thread on
-HTML Renderer discussions page: http://htmlrenderer.codeplex.com/discussions
-
-For full release notes and all versions see: http://htmlrenderer.codeplex.com/releases
-
-********** QUICK START ****************************************************************************
-
-For more Quick Start see: https://htmlrenderer.codeplex.com/wikipage?title=Quick%20start
-
-***************************************************************************************************
-********** Quick Start: Use HTML panel control on WinForms form
-
-public partial class Form1 : Form
-{
- public Form1()
- {
- InitializeComponent();
-
- TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel htmlPanel = new TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel();
- htmlPanel.Text = "Hello World
This is html rendered text";
- htmlPanel.Dock = DockStyle.Fill;
- Controls.Add(htmlPanel);
- }
-}
-
-***************************************************************************************************
-********** Quick Start: Create image from HTML snippet
-
-class Program
-{
- private static void Main(string[] args)
- {
- Image image = TheArtOfDev.HtmlRenderer.WinForms.HtmlRender.RenderToImage("Hello World
This is html rendered text");
- image.Save("image.png", ImageFormat.Png);
- }
-}
diff --git a/README.md b/README.md
index 5a21ca388..c197e39ed 100644
--- a/README.md
+++ b/README.md
@@ -1,21 +1,34 @@
-HTML Renderer [](https://ci.appveyor.com/project/ArthurHub/html-renderer)
-=============
-
-## Help Wanted
-* Looking for a contributor(s) to take this project forward as I'm unable to continue supporting it.
-* Contribute directly to the repository and update nuget packages.
-
-#### Documentation, Discussion and Issue tracking is on [CodePlex](https://htmlrenderer.codeplex.com/).
+# HTML Renderer
**Cross framework** (WinForms/WPF/PDF/Metro/Mono/etc.), **Multipurpose** (UI Controls / Image generation / PDF generation / etc.), **100% managed** (C#), High performance HTML Rendering library.
The library is 100% managed **C#** code without any external dependencies (no WebBrowser control, ActiveX / COM or MSHTML dll), the only requirement is **.NET 2.0 or higher**.
-#### [Download](https://htmlrenderer.codeplex.com/releases/) the [Demo application](https://htmlrenderer.codeplex.com/wikipage?title=Demo%20application&referringTitle=Home) to explore HTML Renderer capabilities.
-

-### Features and Benefits
+
+## Issues & Documentation
+
+For questions and issues, use the official [GitHub repository](https://github.com/ArthurHub/HTML-Renderer).
+
+For documentation, check out the project on the [CodePlex Archive](https://codeplexarchive.org/project/HtmlRenderer) or the [personal blog](https://theartofdev.com/tag/html-renderer/).
+
+
+## Download
+
+The release packages on [GitHub](https://github.com/ArthurHub/HTML-Renderer/releases) or the [CodePlex Archive](https://codeplexarchive.org/project/HtmlRenderer) also contains a Demo application to explore HML Renderer's capabilities.
+
+The latest NuGet packages can be found on NuGet.org:
+
+* [HtmlRenderer.WinForms](https://www.nuget.org/packages/HtmlRenderer.WinForms)
+* [HtmlRenderer.WPF](https://www.nuget.org/packages/HtmlRenderer.WPF)
+* [HtmlRenderer.Mono](https://www.nuget.org/packages/HtmlRenderer.Mono)
+* [HtmlRenderer.PdfSharp](https://www.nuget.org/packages/HtmlRenderer.PdfSharp)
+* [HtmlRenderer.Core](https://www.nuget.org/packages/HtmlRenderer.Core)
+
+
+## Features and Benefits
+
* Extensive HTML 4.01 and CSS level 2 specifications support.
* Support separating CSS from HTML by loading stylesheet code separately.
* Support text selection, copy-paste and context menu.
@@ -29,26 +42,20 @@ The library is 100% managed **C#** code without any external dependencies (no We
* Lightweight, just two DLLs (~300K).
* High performance and low memory footprint.
* Extendable and configurable.
-* Powerful [Demo application](https://htmlrenderer.codeplex.com/wikipage?title=Demo%20application&referringTitle=Home) to explore and learn the library.
+* Powerful [Demo application](https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Demo%20application) to explore and learn the library.
+
+
+## WinForms/WPF controls
-### WinForms/WPF controls
* *HtmlPanel* - The full power of HTML control build to replace WebBrowser control, accepts HTML, text selection, scrollbars, link click intercept, image load intercept and much more.
* *HtmlLabel* - As WinForms label but accepts HTML, text selection, auto-size capabilities, transparent background and more.
* *HtmlToolTip* - As WinForms ToolTip control but accepts HTML and ability to handle links (WinForms only).
-### Sample application's
+
+## Sample application's
+
* Render HTML content generated by rich web editors like forums, blogs, etc.
* Render Office documents converted to HTML.
* Create WinForms UI that requires text selection with clipboard support.
-* [Create images from HTML code snippets](https://htmlrenderer.codeplex.com/wikipage?title=Image%20generation&referringTitle=Home).
+* [Create images from HTML code snippets](https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Image%20generation).
* Create PDF document from HTML code snippets.
-
-### NuGet packages
-* [HtmlRenderer.WinForms](https://www.nuget.org/packages/HtmlRenderer.WinForms)
-* [HtmlRenderer.WPF](https://www.nuget.org/packages/HtmlRenderer.WPF)
-* [HtmlRenderer.Mono](https://www.nuget.org/packages/HtmlRenderer.Mono)
-* [HtmlRenderer.PdfSharp](https://www.nuget.org/packages/HtmlRenderer.PdfSharp)
-* [HtmlRenderer.Core](https://www.nuget.org/packages/HtmlRenderer.Core)
-
-#### HTML Renderer on my blog
-[TheArtOfDev / HTML Renderer](http://theartofdev.com/html-renderer/)
diff --git a/Source/Demo/Common/DemoUtils.cs b/Source/Demo/Common/DemoUtils.cs
index f695886bc..682f325f5 100644
--- a/Source/Demo/Common/DemoUtils.cs
+++ b/Source/Demo/Common/DemoUtils.cs
@@ -29,7 +29,7 @@ public static String SampleHtmlLabelText
get
{
return "This is an HtmlLabel on transparent background with colors and links: " +
- "HTML Renderer";
+ "HTML Renderer";
}
}
@@ -40,7 +40,7 @@ public static String SampleHtmlPanelText
{
get
{
- return "This is an HtmlPanel with colors and links: HTML Renderer" +
+ return "This is an HtmlPanel with colors and links: HTML Renderer" +
"If there is more text than the size of the control scrollbars will appear.
" +
"
Click me to change my Text property.";
}
diff --git a/Source/Demo/Common/HtmlSyntaxHighlighter.cs b/Source/Demo/Common/HtmlSyntaxHighlighter.cs
index d68f2c1c8..e77cdb474 100644
--- a/Source/Demo/Common/HtmlSyntaxHighlighter.cs
+++ b/Source/Demo/Common/HtmlSyntaxHighlighter.cs
@@ -26,7 +26,7 @@ namespace TheArtOfDev.HtmlRenderer.Demo.Common
///
///
/// The MIT License (MIT) Copyright (c) 2014 Arthur Teplitzki.
- /// Based on work by Alun Evans 2006 (http://www.codeproject.com/Articles/15038/C-Formatting-Text-in-a-RichTextBox-by-Parsing-the).
+ /// Based on work by Alun Evans 2006 (https://web.archive.org/web/20170426121905/http://www.codeproject.com/Articles/15038/C-Formatting-Text-in-a-RichTextBox-by-Parsing-the).
///
public static class HtmlSyntaxHighlighter
{
diff --git a/Source/Demo/Common/PerfSamples/1.Big table.htm b/Source/Demo/Common/PerfSamples/1.Big table.htm
index 9aad29719..cb4cb2ef0 100644
--- a/Source/Demo/Common/PerfSamples/1.Big table.htm
+++ b/Source/Demo/Common/PerfSamples/1.Big table.htm
@@ -46,7 +46,7 @@
@@ -62,8 +62,8 @@
- opmqjeqf mj
- pdkfd ddooekeh pc denopnjgcirn pe oqemmcg fla lnmaba 2.1 -
+ opmqjeqf mj
+ pdkfd ddooekeh pc denopnjgcirn pe oqemmcg fla lnmaba 2.1 -
khon gac ioof phpdigja
@@ -71,9 +71,9 @@
&ppbg;
@@ -140,7 +140,7 @@
|
- fcb: j onq'p eoapl jmin leo halnbcmam ei cfri... m´h qnlpll lnha ohhrrjbcf jghl
+ fcb: j onq'p eoapl jmin leo halnbcmam ei cfri... m´h qnlpll lnha ohhrrjbcf jghl
bqcrgpk lb abp qkqo gralcp kfeildpd, dbjbj ril eppg n hfcbqd gqj fnjd &gpnp;egoppa&foaq;
fn &ncon;ccrb hm rjelnn&jgkl; qhlj kpkfoe qead odr obepl ij gfk dekfm, gmo fifdf
kle cnnj bpjon fgn frbcf'e haerd qfgimmkn le gfol nifmojh rrjghcqa dkac (koen hpccjmi,
@@ -149,7 +149,7 @@ |
@@ -176,7 +176,7 @@
@@ -200,12 +200,12 @@
@@ -225,7 +225,7 @@
@@ -247,7 +247,7 @@
@@ -269,7 +269,7 @@
@@ -291,7 +291,7 @@
@@ -387,7 +387,7 @@
@@ -417,7 +417,7 @@
@@ -438,7 +438,7 @@
@@ -472,7 +472,7 @@
@@ -495,7 +495,7 @@
@@ -517,7 +517,7 @@
@@ -540,7 +540,7 @@ giedc heaarh'e
+ href='https://www.google.com'>giedc heaarh'e
dqcpcipck icdbp pk nbbk riel)
&jbhp;
@@ -573,7 +573,7 @@ fekjk rrekjm'e
+ href='https://www.google.com'>fekjk rrekjm'e
dcolmagp abgep gb alhk rddm)
&gnpe;
hfapi: ppo kbl'd pefl dqgmdqrkdq nb rhhppnr ka {dpgrj irae}.
@@ -602,7 +602,7 @@ aqckk idkjob'o
+ href='https://www.google.com'>aqckk idkjob'o
pmqapakp migeq pcrg)
&mpib;
@@ -631,7 +631,7 @@
@@ -655,7 +655,7 @@ eefgj rhnmcr
+ href='https://www.google.com'>eefgj rhnmcr
&crmk;
@@ -671,7 +671,7 @@
&ignd;
@@ -702,7 +702,7 @@ dgobg hrhlrm
+ href='https://www.google.com'>dgobg hrhlrm
&rhfd;
@@ -733,7 +733,7 @@
qpefa nflrrd
+ href='https://www.google.com'>qpefa nflrrd
&ikkb;
cpage: mornan.
@@ -785,10 +785,10 @@
- obm: r´c&pjfi; pfe &lgrl;hcag enkdefl jkfalcch in iqfardi&mccr; lc clrdqbj &jmpe;amcolbiq
+ obm: r´c&pjfi; pfe &lgrl;hcag enkdefl jkfalcch in iqfardi&mccr; lc clrdqbj &jmpe;amcolbiq
jp rdngfkc&jccl; (pidh &mrdg;qeoba&aeal; ablac eche). plj hrjmkcd rhrcfkkl ccmfa
jjjbikmea...
+ data-containertype="-1" data-objectid="3512" data-objecttype="3" href='https://www.google.com'>
rhbjp jeegip
&abdb;
@@ -826,7 +826,7 @@ cronf dhgobi
+ href='https://www.google.com'>cronf dhgobi
&mggq;
@@ -1066,7 +1066,7 @@
@@ -1087,7 +1087,7 @@
@@ -1132,7 +1132,7 @@
@@ -1154,7 +1154,7 @@
@@ -1175,7 +1175,7 @@
@@ -1196,7 +1196,7 @@
@@ -1218,7 +1218,7 @@
@@ -1284,7 +1284,7 @@
@@ -1306,7 +1306,7 @@
@@ -1336,7 +1336,7 @@
@@ -1357,7 +1357,7 @@ gdl: hlioq fjcflcph,
+ href='https://www.google.com'>hlioq fjcflcph,
f ahlbk ro cadqohcid qq agdal mfimik pnrk kja kf od pfkeq cq h lcnepa croq nb efkciqd:
- 2 okilkcojphgo: djfpicickhje ljmqjni
@@ -1376,7 +1376,7 @@
farohbqrgo
+ href='https://www.google.com'>farohbqrgo
@@ -1399,7 +1399,7 @@
poihpkqmjj
+ href='https://www.google.com'>poihpkqmjj
@@ -1420,7 +1420,7 @@
@@ -1440,7 +1440,7 @@
@@ -1460,7 +1460,7 @@
@@ -1484,7 +1484,7 @@
@@ -1505,7 +1505,7 @@
@@ -1526,7 +1526,7 @@
@@ -1547,7 +1547,7 @@
@@ -1568,7 +1568,7 @@
@@ -1589,7 +1589,7 @@
@@ -1610,7 +1610,7 @@
@@ -1631,7 +1631,7 @@
@@ -1652,7 +1652,7 @@
@@ -1828,7 +1828,7 @@
+ data-objectid="3512" data-objecttype="3" href='https://www.google.com'>
abnaf ajllna
@@ -1854,7 +1854,7 @@ gekjn ofkcmr
+ href='https://www.google.com'>gekjn ofkcmr
|
|
@@ -1899,7 +1899,7 @@
nrg: {0} pkmcf'j bnpo apjcnfcbfg ip akmr dmgicpk jj ind faleekdg ccaeo (bhkqr jbhfgh)
+ href='https://www.google.com'>bhkqr jbhfgh)
|
|
@@ -1944,7 +1944,7 @@
@@ -1965,7 +1965,7 @@
@@ -1987,7 +1987,7 @@
@@ -2029,7 +2029,7 @@
@@ -2050,7 +2050,7 @@
@@ -2071,7 +2071,7 @@
@@ -2093,7 +2093,7 @@
+ data-objectid="3512" data-objecttype="3" href='https://www.google.com'>
qfplf drmjhc, eei olh ldfjb qq n hmaomb eijbocg (nkn apieq)
&kdgl;
@@ -2101,7 +2101,7 @@
@@ -2122,7 +2122,7 @@
@@ -2143,7 +2143,7 @@
@@ -2165,7 +2165,7 @@
@@ -2207,7 +2207,7 @@
@@ -2228,7 +2228,7 @@
@@ -2249,7 +2249,7 @@
nal: &jldk;mdnmq qhk ig gpmmmhe nkqh ree gech rfobr. eqmm le bcbaob&hfda; (khobe dmqjgm),
+ href='https://www.google.com'>khobe dmqjgm),
orkc, jep'h nrn liio fridrq r ggq aan? beode jfci peok qhapof lipm ighnok deiec
fi dkgrclo bdghajgj.
@@ -2447,7 +2447,7 @@
+ data-objectid="3512" data-objecttype="3" href='https://www.google.com'>
roloc aeemag, mi cqr kdcr &oapr;ghp cmj mjln qlf rarl kr flrff eeq phciqr
mhmcbjd foandfmlcd gebj fhckphko?&bjea; mk jfpjaoa pq kc r kendoep? h'h akjd bkinjiclb
bpgo &deji;jki qpg bpna ded jnff qd jcgbr? fjdp prakprj rbfe eg pohr&gpkb;. bieaa,
@@ -2585,7 +2585,7 @@
@@ -2707,13 +2707,13 @@
@@ -2758,7 +2758,7 @@
@@ -3054,20 +3054,20 @@
|
- pngfmr o bba dahbkcro ql qaralkcqojci ch addkifq mie dcobgb 2.1 aa
- jjjpo, gm bp
+ jjjpo, gm bp qejpnprah
|
|
- qhfkmejmp iobknjbqlqdg pp hiahqhh epb rclnqo
2.1 ff ciden gjaooda: pabjq
|
diff --git a/Source/Demo/Common/Resources/Tooltip.html b/Source/Demo/Common/Resources/Tooltip.html
index 85892877a..1c00962e2 100644
--- a/Source/Demo/Common/Resources/Tooltip.html
+++ b/Source/Demo/Common/Resources/Tooltip.html
@@ -14,5 +14,5 @@
This is an
HtmlToolTip and it's very
COOL!!!
- You can even click on the
links!
+ You can even click on the
links!
\ No newline at end of file
diff --git a/Source/Demo/Common/Samples/00.Intro.htm b/Source/Demo/Common/Samples/00.Intro.htm
index ae8a64361..18c44f869 100644
--- a/Source/Demo/Common/Samples/00.Intro.htm
+++ b/Source/Demo/Common/Samples/00.Intro.htm
@@ -104,14 +104,11 @@
2012 - Arthur Teplitzki
- http://TheArtOfDev.com
+ https://TheArtOfDev.com
2009 - Jose Manuel Menendez Poo
-
- www.menendezpoo.com
-