From 369c2b0bdc88c9b86408a1e954098792736fd020 Mon Sep 17 00:00:00 2001 From: Simon Stevenson Date: Tue, 12 May 2015 17:46:37 +1000 Subject: [PATCH 01/42] 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 530e9a05f4caf2c3958634170b4ea80d0de05a47 Mon Sep 17 00:00:00 2001 From: Andrey Ushakov Date: Tue, 26 Apr 2016 13:57:23 +0300 Subject: [PATCH 02/42] Support base64 images in css content property --- Source/Demo/Common/HtmlRenderer.Demo.Common.csproj | 3 +++ .../Common/TestSamples/32.Image in css content.htm | 14 ++++++++++++++ Source/HtmlRenderer/Core/Dom/CssBoxImage.cs | 8 ++++++-- Source/HtmlRenderer/Core/Dom/CssBoxProperties.cs | 10 ++++++++-- Source/HtmlRenderer/Core/Parse/CssParser.cs | 14 ++++++++++++-- Source/HtmlRenderer/Core/Utils/CssUtils.cs | 5 +++++ Source/HtmlRenderer/Core/Utils/HtmlConstants.cs | 2 +- 7 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 Source/Demo/Common/TestSamples/32.Image in css content.htm diff --git a/Source/Demo/Common/HtmlRenderer.Demo.Common.csproj b/Source/Demo/Common/HtmlRenderer.Demo.Common.csproj index a8ffe8490..9e964a55e 100644 --- a/Source/Demo/Common/HtmlRenderer.Demo.Common.csproj +++ b/Source/Demo/Common/HtmlRenderer.Demo.Common.csproj @@ -155,6 +155,9 @@ + + + - foinobpjg + foinobpjg @@ -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 @@

iigm nnk frmjfl + href='https://www.google.com'>iigm nnk frmjfl ejk + data-containertype="-2" data-objectid="2471" data-objecttype="700" href='https://www.google.com'> lppf rnp rnpjihp

&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 @@

- qcpciiahbq + qcpciiahbq @@ -176,7 +176,7 @@

- jcrrnagrqq + jcrrnagrqq @@ -200,12 +200,12 @@

&ofik;

nkm: + data-objectid="3512" data-objecttype="3" href='https://www.google.com'> ogqkq lblhhk, amcdon? pm rel bll irdffld dgfgl gdine lc &opoc;ljmmblicf&eqil; qgc ng pfooch ldda aq poloknkqbj... qcagh no pqj hhaigo hf aqi hchhco pfkjoef... - gmoorqgfcj + gmoorqgfcj @@ -225,7 +225,7 @@

- lqafmgjder + lqafmgjder @@ -247,7 +247,7 @@

- lmmacdienr + lmmacdienr @@ -269,7 +269,7 @@

- ndlrhbegpd + ndlrhbegpd @@ -291,7 +291,7 @@

- iefmkkidri + iefmkkidri @@ -387,7 +387,7 @@

- jffdkrloia + jffdkrloia @@ -417,7 +417,7 @@

- ocdnikrcij + ocdnikrcij @@ -438,7 +438,7 @@

- mlkgdjqbrb + mlkgdjqbrb @@ -472,7 +472,7 @@

- ngjpkefafq + ngjpkefafq @@ -495,7 +495,7 @@

- cmjekieppq + cmjekieppq @@ -517,7 +517,7 @@

- dafomhjllq + dafomhjllq @@ -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 @@

- lplfhiceem + lplfhiceem @@ -655,7 +655,7 @@

eefgj rhnmcr

+ href='https://www.google.com'>eefgj rhnmcr

&crmk;

@@ -671,7 +671,7 @@

ijqnna • rrgbk + mn lfrlhoc.ijqnna • rrgbk ko 2.7.2013 nn 3.57.34 nq.fpf

&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 @@

- foigbphcoa + foigbphcoa @@ -1087,7 +1087,7 @@

- erkeokamgb + erkeokamgb @@ -1132,7 +1132,7 @@

- grilrdagid + grilrdagid @@ -1154,7 +1154,7 @@

- grcohqpnor + grcohqpnor @@ -1175,7 +1175,7 @@

- lljaghklrq + lljaghklrq @@ -1196,7 +1196,7 @@

- hgiircibcr + hgiircibcr @@ -1218,7 +1218,7 @@

- dlkgodbdcb + dlkgodbdcb @@ -1284,7 +1284,7 @@

- erkmioomnd + erkmioomnd @@ -1306,7 +1306,7 @@

- ljqbcalnff + ljqbcalnff @@ -1336,7 +1336,7 @@

- hahdjkmlda + hahdjkmlda @@ -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 @@

    - jbcmbmblrd + jbcmbmblrd @@ -1440,7 +1440,7 @@

    - qicilgnpmc + qicilgnpmc @@ -1460,7 +1460,7 @@

    - idgpecqqbe + idgpecqqbe @@ -1484,7 +1484,7 @@

    - dfbggcmpci + dfbggcmpci @@ -1505,7 +1505,7 @@

    - nalofqmbfj + nalofqmbfj @@ -1526,7 +1526,7 @@

    - pnkaqjoffq + pnkaqjoffq @@ -1547,7 +1547,7 @@

    - qrqrkgdcqr + qrqrkgdcqr @@ -1568,7 +1568,7 @@

    - gnlikhjdnp + gnlikhjdnp @@ -1589,7 +1589,7 @@

    - iabjqrghmc + iabjqrghmc @@ -1610,7 +1610,7 @@

    - krccimirgr + krccimirgr @@ -1631,7 +1631,7 @@

    - qdlabffkab + qdlabffkab @@ -1652,7 +1652,7 @@

    - bokbkcafha + bokbkcafha @@ -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 @@

    - ermkrcjhph + ermkrcjhph @@ -1965,7 +1965,7 @@

    - pjlooeoecc + pjlooeoecc @@ -1987,7 +1987,7 @@

    - gjcaoddide + gjcaoddide @@ -2029,7 +2029,7 @@

    - cbmqpeodaj + cbmqpeodaj @@ -2050,7 +2050,7 @@

    - kariaiqbfn + kariaiqbfn @@ -2071,7 +2071,7 @@

    - fffjecboen + fffjecboen @@ -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 @@

    - kpgbarfmmq + kpgbarfmmq @@ -2122,7 +2122,7 @@

    - ffpqbmpdrj + ffpqbmpdrj @@ -2143,7 +2143,7 @@

    - fchijmeomh + fchijmeomh @@ -2165,7 +2165,7 @@

    - qbaqglhbcp + qbaqglhbcp @@ -2207,7 +2207,7 @@

    - kkpoghnaeg + kkpoghnaeg @@ -2228,7 +2228,7 @@

    - effijocbfm + effijocbfm @@ -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 @@

    - rkiqjcqpgc + rkiqjcqpgc @@ -2707,13 +2707,13 @@

    pjmrkf - • rgmdf rq 2.7.2013 fe 5.09.21 rl.mhe bhr rmqo jhrfbrao im bmda dhijpfi - cdirfk gi kmem ihqm qdrpjn, fjre - epriip • kggei fo 2.7.2013 hm 5.10.26 fq.rpa... mk emk fphqg prab...

    + bmppeohdc lmph pjmrkf + • rgmdf rq 2.7.2013 fe 5.09.21 rl.mhe bhr rmqo jhrfbrao im bmda dhijpfi + cdirfk gi kmem ihqm qdrpjn, fjre + epriip � kggei fo 2.7.2013 hm 5.10.26 fq.rpa... mk emk fphqg prab...

    - fiicehbcam + fiicehbcam @@ -2758,7 +2758,7 @@

    - adnkmldmig + adnkmldmig @@ -3054,20 +3054,20 @@

    - cganbif ma lrbffrkl or ehlj ehnof, pr jr qf qpr jpdfnnjf gc ddrdrphci - 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 -
    \ No newline at end of file diff --git a/Source/Demo/Common/Samples/02.Text.htm b/Source/Demo/Common/Samples/02.Text.htm index 727d1fea4..85e201024 100644 --- a/Source/Demo/Common/Samples/02.Text.htm +++ b/Source/Demo/Common/Samples/02.Text.htm @@ -2,11 +2,11 @@ Text - @@ -80,7 +80,7 @@

    Justifed


    Breakable lines

    - http://www.google.com/sjkdhgfasdfgfg/asdfadfsgaefg/adfgafdgadfg/asdfgaedfgsdfg/dasfgasfdgasdfg/adfgadfgasfdg/adfsgafgafg/afdgaddfgadfg/afsdgafdgaddfg/afsdgafgadqfdgaeddfg + https://www.google.com/sjkdhgfasdfgfg/asdfadfsgaefg/adfgafdgadfg/asdfgaedfgsdfg/dasfgasfdgasdfg/adfgadfgasfdg/adfsgafgafg/afdgaddfgadfg/afsdgafdgaddfg/afsdgafgadqfdgaeddfg

    Transparent text

    diff --git a/Source/Demo/Common/Samples/04.Links.htm b/Source/Demo/Common/Samples/04.Links.htm index 05c8a5c79..e84a45f1b 100644 --- a/Source/Demo/Common/Samples/04.Links.htm +++ b/Source/Demo/Common/Samples/04.Links.htm @@ -16,7 +16,7 @@

    URI href


    Check the context menu options on the link as well by right clicking on it.
    - This is a URI link to HTML Renderer (href="https://htmlrenderer.codeplex.com/") + This is a URI link to HTML Renderer (href="https://codeplexarchive.org/project/HtmlRenderer")

    File path href

    diff --git a/Source/Demo/Common/Samples/05.Images.htm b/Source/Demo/Common/Samples/05.Images.htm index 6d41f3e79..9c6c08077 100644 --- a/Source/Demo/Common/Samples/05.Images.htm +++ b/Source/Demo/Common/Samples/05.Images.htm @@ -64,7 +64,7 @@

    img tag

    Loaded from web: - + diff --git a/Source/Demo/Common/Samples/06.Embeded video.htm b/Source/Demo/Common/Samples/06.Embeded video.htm index dc64330d9..ea67b2f7f 100644 --- a/Source/Demo/Common/Samples/06.Embeded video.htm +++ b/Source/Demo/Common/Samples/06.Embeded video.htm @@ -27,7 +27,7 @@

Note: Because this technique requires server API it is currently supported - only for YouTube and + only for YouTube and Vimeo.

diff --git a/Source/Demo/Common/Samples/20.About.htm b/Source/Demo/Common/Samples/20.About.htm index 7bb3e76bf..e28d613b7 100644 --- a/Source/Demo/Common/Samples/20.About.htm +++ b/Source/Demo/Common/Samples/20.About.htm @@ -4,39 +4,33 @@ -

- About

+

About

- For updates and fixes go to HTML Renderer on - CodePlex. + For updates and fixes go to HTML Renderer on + GitHub.

For contributing go to ArthurHub/HTML-Renderer on GitHub.

- Please submit bugs and requests to - HTML Renderer Issue Tracker on CodePlex. + Please submit bugs and requests to + HTML Renderer Issue Tracker on GitHub.



-

- 2012 - Arthur Teplitzki

-
- http://TheArtOfDev.com -
-

- 2009 - Jose Manuel Menendez Poo

+

2012 - Arthur Teplitzki

- www.menendezpoo.com + https://TheArtOfDev.com
+

2009 - Jose Manuel Menendez Poo


License

- The code is under the New BSD License (BSD) license. + The code is under the New BSD License (BSD) license.
If you use the code on a commercial application, please give the developers credit for the HTML Renderer code.

@@ -44,7 +38,7 @@



- Thanks for the HTML highlighting code on the demo app to + Thanks for the HTML highlighting code on the demo app to Alun Evans

diff --git a/Source/Demo/Common/TestSamples/02.Line break.htm b/Source/Demo/Common/TestSamples/02.Line break.htm index 3eae36cce..46e3c0a70 100644 --- a/Source/Demo/Common/TestSamples/02.Line break.htm +++ b/Source/Demo/Common/TestSamples/02.Line break.htm @@ -11,11 +11,11 @@


Long line without whitespaces:
- http://www.google.com/sjkdhgfasdfgfg/asdfadfsgaefg/adfgafdgadfg/asdfgaedfgsdfg/dasfgasfdgasdfg/adfgadfgasfdg/adfsgafgafg/afdgaddfgadfg/afsdgafdgaddfg/afsdgafgadqfdgaeddfg the-end + https://www.google.com/sjkdhgfasdfgfg/asdfadfsgaefg/adfgafdgadfg/asdfgaedfgsdfg/dasfgasfdgasdfg/adfgadfgasfdg/adfsgafgafg/afdgaddfgadfg/afsdgafdgaddfg/afsdgafgadqfdgaeddfg the-end

Breakable long line without whitespaces:
- http://www.google.com/sjkdhgfasdfgfg/asdfadfsgaefg/adfgafdgadfg/asdfgaedfgsdfg/dasfgasfdgasdfg/adfgadfgasfdg/adfsgafgafg/afdgaddfgadfg/afsdgafdgaddfg/afsdgafgadqfdgaeddfg the-end + https://www.google.com/sjkdhgfasdfgfg/asdfadfsgaefg/adfgafdgadfg/asdfgaedfgsdfg/dasfgasfdgasdfg/adfgadfgasfdg/adfsgafgafg/afdgaddfgadfg/afsdgafdgaddfg/afsdgafgadqfdgaeddfg the-end


diff --git a/Source/Demo/Common/TestSamples/06.External Image.htm b/Source/Demo/Common/TestSamples/06.External Image.htm index 0492a426c..acd188ff0 100644 --- a/Source/Demo/Common/TestSamples/06.External Image.htm +++ b/Source/Demo/Common/TestSamples/06.External Image.htm @@ -8,12 +8,12 @@

From web:
- +
GIF:
- +
By event: @@ -21,6 +21,6 @@

- + \ No newline at end of file diff --git a/Source/Demo/Common/TestSamples/09.Inline.htm b/Source/Demo/Common/TestSamples/09.Inline.htm index 6a89ba426..bdafb3c87 100644 --- a/Source/Demo/Common/TestSamples/09.Inline.htm +++ b/Source/Demo/Common/TestSamples/09.Inline.htm @@ -1,18 +1,18 @@
- codePlex + gitHub

- code Plex + git Hub

- CodePlex codePlex + GitHub gitHub

- CodePlex codePlex code + GitHub gitHub code
Hello World diff --git a/Source/Demo/Common/TestSamples/10.BlockInInline.htm b/Source/Demo/Common/TestSamples/10.BlockInInline.htm index fda0edb1e..aaa579842 100644 --- a/Source/Demo/Common/TestSamples/10.BlockInInline.htm +++ b/Source/Demo/Common/TestSamples/10.BlockInInline.htm @@ -31,7 +31,7 @@

diff --git a/Source/Demo/Common/TestSamples/15.MaxWidth.htm b/Source/Demo/Common/TestSamples/15.MaxWidth.htm index d8b98e9ba..693f1d947 100644 --- a/Source/Demo/Common/TestSamples/15.MaxWidth.htm +++ b/Source/Demo/Common/TestSamples/15.MaxWidth.htm @@ -14,7 +14,7 @@

Long line without whitespaces:
- http://www.google.com/sjkdhgfasdfgfg/asdfadfsgaefg/adfgafdgadfg/asdfgaedfgsdfg/dasfgasfdgasdfg/adfgadfgasfdg/adfsgafgafg/afdgaddfgadfg/afsdgafdgaddfg/afsdgafgadqfdgaeddfg/afsdgadfgafg + https://www.google.com/sjkdhgfasdfgfg/asdfadfsgaefg/adfgafdgadfg/asdfgaedfgsdfg/dasfgasfdgasdfg/adfgadfgasfdg/adfsgafgafg/afdgaddfgadfg/afsdgafdgaddfg/afsdgafgadqfdgaeddfg/afsdgadfgafg

The text should not exceed max width:
@@ -26,10 +26,10 @@

metus. Integer leo dolor, tristique a, dignissim ac, iaculis eget, elit. Donec arcu.

The image should also be limited by size because it has: style="width:90%"
- - + +

- +

diff --git a/Source/Demo/Common/TestSamples/19.Many images.htm b/Source/Demo/Common/TestSamples/19.Many images.htm index a7cd2582c..c297b08ca 100644 --- a/Source/Demo/Common/TestSamples/19.Many images.htm +++ b/Source/Demo/Common/TestSamples/19.Many images.htm @@ -2,102 +2,102 @@

Contains many images that should not load until in scroll view

Image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- +

Another image

- + \ No newline at end of file diff --git a/Source/Demo/WPF/HtmlRenderer.Demo.WPF.csproj b/Source/Demo/WPF/HtmlRenderer.Demo.WPF.csproj index 8c26cdcc4..c462387a6 100644 --- a/Source/Demo/WPF/HtmlRenderer.Demo.WPF.csproj +++ b/Source/Demo/WPF/HtmlRenderer.Demo.WPF.csproj @@ -135,7 +135,7 @@ - This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see https://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. diff --git a/Source/Demo/WPF/HtmlRenderingHelper.cs b/Source/Demo/WPF/HtmlRenderingHelper.cs index 5250e17fe..2fb88670e 100644 --- a/Source/Demo/WPF/HtmlRenderingHelper.cs +++ b/Source/Demo/WPF/HtmlRenderingHelper.cs @@ -136,13 +136,13 @@ public static void ImageLoad(HtmlImageLoadEventArgs e) ThreadPool.QueueUserWorkItem(state => { Thread.Sleep(delay); - e.Callback("https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-snc7/c0.44.403.403/p403x403/318890_10151195988833836_1081776452_n.jpg"); + e.Callback("https://images.unsplash.com/photo-1608848461950-0fe51dfc41cb?w=500&q=80"); }); return; } else { - e.Callback("http://sphotos-a.xx.fbcdn.net/hphotos-ash4/c22.0.403.403/p403x403/263440_10152243591765596_773620816_n.jpg"); + e.Callback("https://images.unsplash.com/photo-1608848461950-0fe51dfc41cb?w=500&q=80"); return; } } diff --git a/Source/Demo/WinForms/HtmlRenderer.Demo.WinForms.csproj b/Source/Demo/WinForms/HtmlRenderer.Demo.WinForms.csproj index 95dafc2f1..2e089e2db 100644 --- a/Source/Demo/WinForms/HtmlRenderer.Demo.WinForms.csproj +++ b/Source/Demo/WinForms/HtmlRenderer.Demo.WinForms.csproj @@ -177,7 +177,7 @@ - This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see https://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. diff --git a/Source/Demo/WinForms/HtmlRenderingHelper.cs b/Source/Demo/WinForms/HtmlRenderingHelper.cs index 8ca593314..6be842af6 100644 --- a/Source/Demo/WinForms/HtmlRenderingHelper.cs +++ b/Source/Demo/WinForms/HtmlRenderingHelper.cs @@ -144,13 +144,13 @@ public static void ImageLoad(HtmlImageLoadEventArgs e, bool pdfSharp) ThreadPool.QueueUserWorkItem(state => { Thread.Sleep(delay); - e.Callback("https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-snc7/c0.44.403.403/p403x403/318890_10151195988833836_1081776452_n.jpg"); + e.Callback("https://images.unsplash.com/photo-1608848461950-0fe51dfc41cb?w=500&q=80"); }); return; } else { - e.Callback("http://sphotos-a.xx.fbcdn.net/hphotos-ash4/c22.0.403.403/p403x403/263440_10152243591765596_773620816_n.jpg"); + e.Callback("https://images.unsplash.com/photo-1608848461950-0fe51dfc41cb?w=500&q=80"); return; } } diff --git a/Source/HtmlRenderer.PdfSharp/HtmlRenderer.PdfSharp.csproj b/Source/HtmlRenderer.PdfSharp/HtmlRenderer.PdfSharp.csproj index ef0fd7acc..1c80d52f2 100644 --- a/Source/HtmlRenderer.PdfSharp/HtmlRenderer.PdfSharp.csproj +++ b/Source/HtmlRenderer.PdfSharp/HtmlRenderer.PdfSharp.csproj @@ -76,7 +76,7 @@ - This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see https://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. diff --git a/Source/HtmlRenderer.WPF/HtmlRender.cs b/Source/HtmlRenderer.WPF/HtmlRender.cs index 77eb4a046..d9e6c65ad 100644 --- a/Source/HtmlRenderer.WPF/HtmlRender.cs +++ b/Source/HtmlRenderer.WPF/HtmlRender.cs @@ -31,7 +31,7 @@ namespace TheArtOfDev.HtmlRenderer.WPF /// /// Rendering to image
/// // TODO:a update! - /// See https://htmlrenderer.codeplex.com/wikipage?title=Image%20generation
+ /// See https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Image%20generation
/// Because of GDI text rendering issue with alpha channel clear type text rendering rendering to image requires special handling.
/// Solid color background - generate an image where the background is filled with solid color and all the html is rendered on top /// of the background color, GDI text rendering will be used. (RenderToImage method where the first argument is html string)
diff --git a/Source/HtmlRenderer.WPF/Utilities/ClipboardHelper.cs b/Source/HtmlRenderer.WPF/Utilities/ClipboardHelper.cs index aac84e249..df4f1b799 100644 --- a/Source/HtmlRenderer.WPF/Utilities/ClipboardHelper.cs +++ b/Source/HtmlRenderer.WPF/Utilities/ClipboardHelper.cs @@ -18,7 +18,7 @@ namespace TheArtOfDev.HtmlRenderer.WPF.Utilities { /// /// Helper to encode and set HTML fragment to clipboard.
- /// See http://theartofdev.com/2012/11/11/setting-html-and-plain-text-formatting-to-clipboard/.
+ /// See https://theartofdev.com/2012/11/11/setting-html-and-plain-text-formatting-to-clipboard/.
/// . ///
/// @@ -91,7 +91,7 @@ internal static class ClipboardHelper /// hello world /// ]]> /// - /// See format specification here: http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/clipboard/htmlclipboard.asp + /// See format specification here: https://msdn.microsoft.com/library/default.asp?url=/workshop/networking/clipboard/htmlclipboard.asp ///
/// /// a html fragment diff --git a/Source/HtmlRenderer.WinForms/HtmlRender.cs b/Source/HtmlRenderer.WinForms/HtmlRender.cs index 3c6ad3ca9..b7e24d81e 100644 --- a/Source/HtmlRenderer.WinForms/HtmlRender.cs +++ b/Source/HtmlRenderer.WinForms/HtmlRender.cs @@ -39,7 +39,7 @@ namespace TheArtOfDev.HtmlRenderer.WinForms /// /// /// Rendering to image
- /// See https://htmlrenderer.codeplex.com/wikipage?title=Image%20generation
+ /// See https://codeplexarchive.org/ProjectTab/Wiki/HtmlRenderer/Documentation/Image%20generation
/// Because of GDI text rendering issue with alpha channel clear type text rendering rendering to image requires special handling.
/// Solid color background - generate an image where the background is filled with solid color and all the html is rendered on top /// of the background color, GDI text rendering will be used. (RenderToImage method where the first argument is html string)
diff --git a/Source/HtmlRenderer.WinForms/MetafileExtensions.cs b/Source/HtmlRenderer.WinForms/MetafileExtensions.cs index 4b13ba607..7bc5fad25 100644 --- a/Source/HtmlRenderer.WinForms/MetafileExtensions.cs +++ b/Source/HtmlRenderer.WinForms/MetafileExtensions.cs @@ -9,7 +9,7 @@ public static class MetafileExtensions { public static void SaveAsEmf(Metafile me, string fileName) { - /* http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/12a1c749-b320-4ce9-aff7-9de0d7fd30ea + /* https://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/12a1c749-b320-4ce9-aff7-9de0d7fd30ea How to save or serialize a Metafile: Solution found by : SWAT Team member _1 Date : Friday, February 01, 2008 1:38 PM diff --git a/Source/HtmlRenderer.WinForms/Utilities/ClipboardHelper.cs b/Source/HtmlRenderer.WinForms/Utilities/ClipboardHelper.cs index dd5d3b7aa..8c34cab02 100644 --- a/Source/HtmlRenderer.WinForms/Utilities/ClipboardHelper.cs +++ b/Source/HtmlRenderer.WinForms/Utilities/ClipboardHelper.cs @@ -18,7 +18,7 @@ namespace TheArtOfDev.HtmlRenderer.WinForms.Utilities { /// /// Helper to encode and set HTML fragment to clipboard.
- /// See http://theartofdev.wordpress.com/2012/11/11/setting-html-and-plain-text-formatting-to-clipboard/.
+ /// See https://theartofdev.wordpress.com/2012/11/11/setting-html-and-plain-text-formatting-to-clipboard/.
/// . ///
/// @@ -91,7 +91,7 @@ internal static class ClipboardHelper /// hello world /// ]]> /// - /// See format specification here: http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/clipboard/htmlclipboard.asp + /// See format specification here: https://msdn.microsoft.com/library/default.asp?url=/workshop/networking/clipboard/htmlclipboard.asp ///
/// /// a html fragment diff --git a/Source/HtmlRenderer/Core/Dom/CssBoxFrame.cs b/Source/HtmlRenderer/Core/Dom/CssBoxFrame.cs index 7bb6ed57f..0b810e5fc 100644 --- a/Source/HtmlRenderer/Core/Dom/CssBoxFrame.cs +++ b/Source/HtmlRenderer/Core/Dom/CssBoxFrame.cs @@ -146,7 +146,7 @@ private void LoadYoutubeDataAsync(Uri uri) { try { - var apiUri = new Uri(string.Format("http://gdata.youtube.com/feeds/api/videos/{0}?v=2&alt=json", uri.Segments[2])); + var apiUri = new Uri(string.Format("https://gdata.youtube.com/feeds/api/videos/{0}?v=2&alt=json", uri.Segments[2])); var client = new WebClient(); client.Encoding = Encoding.UTF8; @@ -282,7 +282,7 @@ private void LoadVimeoDataAsync(Uri uri) { try { - var apiUri = new Uri(string.Format("http://vimeo.com/api/v2/video/{0}.json", uri.Segments[2])); + var apiUri = new Uri(string.Format("https://vimeo.com/api/v2/video/{0}.json", uri.Segments[2])); var client = new WebClient(); client.Encoding = Encoding.UTF8; diff --git a/Source/SharedAssemblyInfo.cs b/Source/SharedAssemblyInfo.cs index d5336037f..6cb556d7e 100644 --- a/Source/SharedAssemblyInfo.cs +++ b/Source/SharedAssemblyInfo.cs @@ -8,7 +8,7 @@ [assembly: AssemblyTitle("HTML Renderer")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Open source hosted on CodePlex")] +[assembly: AssemblyCompany("Open source hosted on GitHub")] [assembly: AssemblyProduct("HTML Renderer")] [assembly: AssemblyCopyright("Copyright © 2008")] [assembly: AssemblyTrademark("")] From c0c2f419ded22b60676de15162a942d815656e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Mon, 8 Dec 2025 10:06:40 +0100 Subject: [PATCH 19/42] Update to .NET Framewok 4.6.2 - Older .NET Framework versions are no longer supported - Update project format to SDK style --- .gitignore | 1 + Build/NuGet/HtmlRenderer.Mono.nuspec | 1 - Build/NuGet/HtmlRenderer.PdfSharp.nuspec | 1 - Build/NuGet/HtmlRenderer.WinForms.nuspec | 1 - README.md | 3 +- .../Common/HtmlRenderer.Demo.Common.csproj | 182 +++++------------- .../Common/Properties/Resources.Designer.cs | 4 +- Source/Demo/Common/Samples/00.Intro.htm | 3 +- Source/Demo/WPF/HtmlRenderer.Demo.WPF.csproj | 128 +----------- .../HtmlRenderer.Demo.WinForms.csproj | 179 +---------------- .../HtmlRenderer.PdfSharp.csproj | 81 +------- Source/HtmlRenderer.PdfSharp/packages.config | 4 - .../HtmlRenderer.WPF/HtmlRenderer.WPF.csproj | 76 +------- .../HtmlRenderer.WinForms.csproj | 111 +---------- Source/HtmlRenderer/HtmlRenderer.csproj | 118 +----------- 15 files changed, 98 insertions(+), 795 deletions(-) delete mode 100644 Source/HtmlRenderer.PdfSharp/packages.config diff --git a/.gitignore b/.gitignore index ce3a150ad..ec0fb2754 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ x64/ *.vspscc *.vssscc .builds +.vs/ # Visual C++ cache files ipch/ diff --git a/Build/NuGet/HtmlRenderer.Mono.nuspec b/Build/NuGet/HtmlRenderer.Mono.nuspec index d1c2a67f1..bd12f9fab 100644 --- a/Build/NuGet/HtmlRenderer.Mono.nuspec +++ b/Build/NuGet/HtmlRenderer.Mono.nuspec @@ -27,7 +27,6 @@ * Support separating CSS from HTML by loading stylesheet code separately. * Support text selection, copy-paste and context menu. * Handles "real world" malformed HTML, it doesn't have to be XHTML. - * Supports .NET 2.0 or higher including Client Profile. * Lightweight, only two DLLs (~300K). * High performance and low memory footprint. * Extendable and configurable. diff --git a/Build/NuGet/HtmlRenderer.PdfSharp.nuspec b/Build/NuGet/HtmlRenderer.PdfSharp.nuspec index 71ba7dbb7..70577208a 100644 --- a/Build/NuGet/HtmlRenderer.PdfSharp.nuspec +++ b/Build/NuGet/HtmlRenderer.PdfSharp.nuspec @@ -22,7 +22,6 @@ * Extensive HTML 4.01 and CSS level 2 specifications support. * Support separating CSS from HTML by loading stylesheet code separately. * Handles "real world" malformed HTML, it doesn't have to be XHTML. - * Supports .NET 2.0 or higher including Client Profile. * Lightweight, only two DLLs (~300K). * High performance and low memory footprint. * Extendable and configurable. diff --git a/Build/NuGet/HtmlRenderer.WinForms.nuspec b/Build/NuGet/HtmlRenderer.WinForms.nuspec index c41134ca7..84ee85f01 100644 --- a/Build/NuGet/HtmlRenderer.WinForms.nuspec +++ b/Build/NuGet/HtmlRenderer.WinForms.nuspec @@ -27,7 +27,6 @@ * Support separating CSS from HTML by loading stylesheet code separately. * Support text selection, copy-paste and context menu. * Handles "real world" malformed HTML, it doesn't have to be XHTML. - * Supports .NET 2.0 or higher including Client Profile. * Lightweight, only two DLLs (~300K). * High performance and low memory footprint. * Extendable and configurable. diff --git a/README.md b/README.md index c197e39ed..379d3ee91 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **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**. +The library is 100% managed **C#** code without any external dependencies (no WebBrowser control, ActiveX / COM or MSHTML dll), the only requirement is **.NET Framework 4.6.2 or higher**. ![Renderer.png](https://raw.githubusercontent.com/ArthurHub/HTML-Renderer/master/Art/demo_winforms.png) @@ -38,7 +38,6 @@ The latest NuGet packages can be found on NuGet.org: * Create images/PDFs from HTML snippets. * Handles "real world" malformed HTML, it doesn't have to be XHTML. * 100% managed code and no external dependencies. -* Supports .NET 2.0 or higher including Client Profile. * Lightweight, just two DLLs (~300K). * High performance and low memory footprint. * Extendable and configurable. diff --git a/Source/Demo/Common/HtmlRenderer.Demo.Common.csproj b/Source/Demo/Common/HtmlRenderer.Demo.Common.csproj index 7413cc397..3f907ebe4 100644 --- a/Source/Demo/Common/HtmlRenderer.Demo.Common.csproj +++ b/Source/Demo/Common/HtmlRenderer.Demo.Common.csproj @@ -1,178 +1,96 @@ - - - + - Debug - AnyCPU - {2390B71F-9400-47F4-B23A-7F2649C87D35} + net462 Library - Properties TheArtOfDev.HtmlRenderer.Demo.Common HtmlRendererDemoCommon - v2.0 - 512 - + false - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - + Resources.resx True True - - - - - - - - - + PublicResXFileCodeGenerator Resources.Designer.cs Designer - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {FE611685-391F-4E3E-B27E-D3150E51E49B} - HtmlRenderer - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + - + - - \ No newline at end of file diff --git a/Source/Demo/Common/Properties/Resources.Designer.cs b/Source/Demo/Common/Properties/Resources.Designer.cs index 8b1aa6a38..f9f272e58 100644 --- a/Source/Demo/Common/Properties/Resources.Designer.cs +++ b/Source/Demo/Common/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.34014 +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -19,7 +19,7 @@ namespace TheArtOfDev.HtmlRenderer.Demo.Common.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class Resources { diff --git a/Source/Demo/Common/Samples/00.Intro.htm b/Source/Demo/Common/Samples/00.Intro.htm index 18c44f869..d310818b4 100644 --- a/Source/Demo/Common/Samples/00.Intro.htm +++ b/Source/Demo/Common/Samples/00.Intro.htm @@ -22,7 +22,7 @@

This project allows you to have the rich format power of HTML on your desktop applications without WebBrowser control or MSHTML.
The library is 100% managed code without any external dependencies, the only - requirement is .NET 2.0 or higher, including support for Client Profile. + requirement is .NET Framework 4.6.2 or higher, including support for Client Profile. @@ -63,7 +63,6 @@