Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 48dd0c3

Browse files
committed
Merge pull request ArthurHub#41 from ncfe-dev/master
Paging support in PDF added
2 parents 08a16b6 + 349e166 commit 48dd0c3

34 files changed

+1077
-105
lines changed

Source/Demo/Common/HtmlRenderer.Demo.Common.csproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,18 @@
155155
<ItemGroup>
156156
<EmbeddedResource Include="Resources\image32.png" />
157157
</ItemGroup>
158+
<ItemGroup>
159+
<EmbeddedResource Include="TestSamples\32.Image in css content.htm" />
160+
</ItemGroup>
161+
<ItemGroup>
162+
<EmbeddedResource Include="TestSamples\33.Fixed position.htm" />
163+
</ItemGroup>
164+
<ItemGroup>
165+
<EmbeddedResource Include="TestSamples\34.Breaking pages 1 - Paragraphs.htm" />
166+
</ItemGroup>
167+
<ItemGroup>
168+
<EmbeddedResource Include="TestSamples\35.Breaking pages 2 - Tables.htm" />
169+
</ItemGroup>
158170
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
159171
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
160172
Other similar extension points exist, see Microsoft.Common.targets.

Source/Demo/Common/TestSamples/32.Image in css content.htm

Lines changed: 12 additions & 0 deletions
Large diffs are not rendered by default.

Source/Demo/Common/TestSamples/33.Fixed position.htm

Lines changed: 83 additions & 0 deletions
Large diffs are not rendered by default.

Source/Demo/Common/TestSamples/34.Breaking pages 1 - Paragraphs.htm

Lines changed: 177 additions & 0 deletions
Large diffs are not rendered by default.

Source/Demo/Common/TestSamples/35.Breaking pages 2 - Tables.htm

Lines changed: 205 additions & 0 deletions
Large diffs are not rendered by default.

Source/Demo/WinForms/HtmlRenderer.Demo.WinForms.csproj

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,13 @@
6363
<ApplicationIcon>html.ico</ApplicationIcon>
6464
</PropertyGroup>
6565
<ItemGroup>
66-
<Reference Include="PdfSharp">
67-
<HintPath>..\..\packages\PDFsharp.1.32.3057.0\lib\net20\PdfSharp.dll</HintPath>
66+
<Reference Include="PdfSharp, Version=1.50.4000.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
67+
<HintPath>..\..\packages\PDFsharp.1.50.4000-beta3b\lib\net20\PdfSharp.dll</HintPath>
68+
<Private>True</Private>
6869
</Reference>
69-
<Reference Include="PdfSharp.Charting">
70-
<HintPath>..\..\packages\PDFsharp.1.32.3057.0\lib\net20\PdfSharp.Charting.dll</HintPath>
70+
<Reference Include="PdfSharp.Charting, Version=1.50.4000.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
71+
<HintPath>..\..\packages\PDFsharp.1.50.4000-beta3b\lib\net20\PdfSharp.Charting.dll</HintPath>
72+
<Private>True</Private>
7173
</Reference>
7274
<Reference Include="System" />
7375
<Reference Include="System.Data" />

Source/Demo/WinForms/HtmlRenderingHelper.cs

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@
1010
// - Sun Tsu,
1111
// "The Art of War"
1212

13+
using PdfSharp.Drawing;
1314
using System;
1415
using System.Collections.Generic;
1516
using System.Drawing;
17+
using System.IO;
1618
using System.Threading;
1719
using TheArtOfDev.HtmlRenderer.Core.Entities;
1820
using TheArtOfDev.HtmlRenderer.Demo.Common;
19-
using PdfSharp.Drawing;
2021

2122
namespace TheArtOfDev.HtmlRenderer.Demo.WinForms
2223
{
@@ -79,7 +80,18 @@ public static Image TryLoadResourceImage(string src)
7980
public static XImage TryLoadResourceXImage(string src)
8081
{
8182
var img = TryLoadResourceImage(src);
82-
return img != null ? XImage.FromGdiPlusImage(img) : null;
83+
XImage xImg;
84+
85+
if (img == null)
86+
return null;
87+
88+
using (var ms = new MemoryStream())
89+
{
90+
img.Save(ms, img.RawFormat);
91+
xImg = img != null ? XImage.FromStream(ms) : null;
92+
}
93+
94+
return xImg;
8395
}
8496

8597
/// <summary>
@@ -104,7 +116,17 @@ public static void OnImageLoadPdfSharp(object sender, HtmlImageLoadEventArgs e)
104116
public static void ImageLoad(HtmlImageLoadEventArgs e, bool pdfSharp)
105117
{
106118
var img = TryLoadResourceImage(e.Src);
107-
var xImg = img != null ? XImage.FromGdiPlusImage(img) : null;
119+
XImage xImg = null;
120+
121+
if (img != null)
122+
{
123+
using (var ms = new MemoryStream())
124+
{
125+
img.Save(ms, img.RawFormat);
126+
xImg = img != null ? XImage.FromStream(ms) : null;
127+
}
128+
}
129+
108130
object imgObj;
109131
if (pdfSharp)
110132
imgObj = xImg;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="PDFsharp" version="1.32.3057.0" targetFramework="net40-Client" />
3+
<package id="PDFsharp" version="1.50.4000-beta3b" targetFramework="net20" />
44
</packages>

Source/HtmlRenderer.PdfSharp/Adapters/GraphicsAdapter.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
// - Sun Tsu,
1111
// "The Art of War"
1212

13+
using PdfSharp.Drawing;
1314
using System;
1415
using TheArtOfDev.HtmlRenderer.Adapters;
1516
using TheArtOfDev.HtmlRenderer.Adapters.Entities;
1617
using TheArtOfDev.HtmlRenderer.Core.Utils;
1718
using TheArtOfDev.HtmlRenderer.PdfSharp.Utilities;
18-
using PdfSharp.Drawing;
1919

2020
namespace TheArtOfDev.HtmlRenderer.PdfSharp.Adapters
2121
{
@@ -49,7 +49,6 @@ static GraphicsAdapter()
4949
_stringFormat = new XStringFormat();
5050
_stringFormat.Alignment = XStringAlignment.Near;
5151
_stringFormat.LineAlignment = XLineAlignment.Near;
52-
_stringFormat.FormatFlags = XStringFormatFlags.MeasureTrailingSpaces;
5352
}
5453

5554
/// <summary>

Source/HtmlRenderer.PdfSharp/Adapters/PdfSharpAdapter.cs

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@
1010
// - Sun Tsu,
1111
// "The Art of War"
1212

13+
using PdfSharp.Drawing;
14+
using PdfSharp.Pdf;
1315
using System.Drawing;
16+
using System.Drawing.Text;
1417
using System.IO;
1518
using TheArtOfDev.HtmlRenderer.Adapters;
1619
using TheArtOfDev.HtmlRenderer.Adapters.Entities;
1720
using TheArtOfDev.HtmlRenderer.PdfSharp.Utilities;
18-
using PdfSharp.Drawing;
19-
using PdfSharp.Pdf;
2021

2122
namespace TheArtOfDev.HtmlRenderer.PdfSharp.Adapters
2223
{
@@ -43,9 +44,11 @@ private PdfSharpAdapter()
4344
AddFontFamilyMapping("monospace", "Courier New");
4445
AddFontFamilyMapping("Helvetica", "Arial");
4546

46-
foreach (var family in XFontFamily.Families)
47+
var families = new InstalledFontCollection();
48+
49+
foreach (var family in families.Families)
4750
{
48-
AddFontFamily(new FontFamilyAdapter(family));
51+
AddFontFamily(new FontFamilyAdapter(new XFontFamily(family.Name)));
4952
}
5053
}
5154

@@ -59,7 +62,15 @@ public static PdfSharpAdapter Instance
5962

6063
protected override RColor GetColorInt(string colorName)
6164
{
62-
return Utils.Convert(XColor.FromName(colorName));
65+
try
66+
{
67+
var color = Color.FromKnownColor((KnownColor)System.Enum.Parse(typeof(KnownColor), colorName, true));
68+
return Utils.Convert(color);
69+
}
70+
catch
71+
{
72+
return RColor.Empty;
73+
}
6374
}
6475

6576
protected override RPen CreatePen(RColor color)
@@ -103,7 +114,7 @@ protected override RImage ConvertImageInt(object image)
103114

104115
protected override RImage ImageFromStreamInt(Stream memoryStream)
105116
{
106-
return new ImageAdapter(XImage.FromGdiPlusImage(Image.FromStream(memoryStream)));
117+
return new ImageAdapter(XImage.FromStream(memoryStream));
107118
}
108119

109120
protected override RFont CreateFontInt(string family, double size, RFontStyle style)

0 commit comments

Comments
 (0)