Skip to content

Commit 8119483

Browse files
committed
Migrate HtmlRenderer.PdfSharp to PDFsharp-GDI v6.2.4
- XFontStyle -> XFontStyleEx via Utils.Convert(RFontStyle) - Remove XPdfFontOptions (v6 defaults to Unicode) - Target net472 + PDFsharp-GDI 6.2.4 NuGet - HtmlRenderer core targets netstandard2.0 - Skip FontResolver dependency (GDI build on Windows) Based on PR ArthurHub#238 approach by eXpl0it3r.
1 parent c4257c4 commit 8119483

File tree

4 files changed

+35
-53
lines changed

4 files changed

+35
-53
lines changed

Source/HtmlRenderer.PdfSharp/Adapters/PdfSharpAdapter.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,15 @@ protected override RImage ImageFromStreamInt(Stream memoryStream)
119119

120120
protected override RFont CreateFontInt(string family, double size, RFontStyle style)
121121
{
122-
var fontStyle = (XFontStyle)((int)style);
123-
var xFont = new XFont(family, size, fontStyle, new XPdfFontOptions(PdfFontEncoding.Unicode));
122+
var fontStyle = Utils.Convert(style);
123+
var xFont = new XFont(family, size, fontStyle);
124124
return new FontAdapter(xFont);
125125
}
126126

127127
protected override RFont CreateFontInt(RFontFamily family, double size, RFontStyle style)
128128
{
129-
var fontStyle = (XFontStyle)((int)style);
130-
var xFont = new XFont(((FontFamilyAdapter)family).FontFamily.Name, size, fontStyle, new XPdfFontOptions(PdfFontEncoding.Unicode));
129+
var fontStyle = Utils.Convert(style);
130+
var xFont = new XFont(((FontFamilyAdapter)family).FontFamily.Name, size, fontStyle);
131131
return new FontAdapter(xFont);
132132
}
133133
}
Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,18 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net8.0-windows</TargetFramework>
3+
<TargetFramework>net472</TargetFramework>
44
<OutputType>Library</OutputType>
55
<RootNamespace>TheArtOfDev.HtmlRenderer.PdfSharp</RootNamespace>
6-
<UseWinForms>true</UseWinForms>
7-
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
8-
<EnableWindowsTargeting>true</EnableWindowsTargeting>
9-
</PropertyGroup>
10-
<!-- NuGet Package Properties -->
11-
<PropertyGroup>
12-
<PackageId>HtmlRenderer.PdfSharp</PackageId>
13-
<Title>HTML Renderer for PDF using PdfSharp</Title>
14-
<PackageTags>html render renderer draw pdfsharp</PackageTags>
15-
<Description>PDF document generator from HTML snippet, 100% managed (C#), High performance library using PdfSharp.
16-
17-
Features and Benefits:
18-
---
19-
* 100% managed code depends only on PdfSharp library, no ActiveX, no MSHTML.
20-
* Extensive HTML 4.01 and CSS level 2 specifications support.
21-
* Support separating CSS from HTML by loading stylesheet code separately.
22-
* Handles "real world" malformed HTML, it doesn't have to be XHTML.
23-
* Lightweight, only two DLLs (~300K).
24-
* High performance and low memory footprint.
25-
* Extendable and configurable.</Description>
26-
<Summary>PDF document generator from HTML snippet, 100% managed (C#), High performance library using PdfSharp.</Summary>
6+
<AssemblyName>HtmlRenderer.PdfSharp</AssemblyName>
7+
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
278
</PropertyGroup>
289
<ItemGroup>
29-
<None Include="README.md" Pack="true" PackagePath="\" />
10+
<ProjectReference Include="..\HtmlRenderer\HtmlRenderer.csproj" />
3011
</ItemGroup>
3112
<ItemGroup>
32-
<ProjectReference Include="..\HtmlRenderer\HtmlRenderer.csproj" />
13+
<PackageReference Include="PDFsharp-GDI" Version="6.2.4" />
3314
</ItemGroup>
3415
<ItemGroup>
35-
<PackageReference Include="PDFsharp" Version="1.50.5147" />
36-
<PackageReference Include="System.Drawing.Common" Version="10.0.1" />
16+
<Reference Include="System.Drawing" />
3717
</ItemGroup>
38-
</Project>
18+
</Project>

Source/HtmlRenderer.PdfSharp/Utilities/Utils.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,5 +96,22 @@ public static RColor Convert(Color c)
9696
return RColor.FromArgb(c.A, c.R, c.G, c.B);
9797
}
9898

99+
/// <summary>
100+
/// Convert from HtmlRenderer font style to PdfSharp v6 XFontStyleEx.
101+
/// </summary>
102+
public static XFontStyleEx Convert(RFontStyle style)
103+
{
104+
XFontStyleEx result = XFontStyleEx.Regular;
105+
if ((style & RFontStyle.Bold) == RFontStyle.Bold)
106+
result |= XFontStyleEx.Bold;
107+
if ((style & RFontStyle.Italic) == RFontStyle.Italic)
108+
result |= XFontStyleEx.Italic;
109+
if ((style & RFontStyle.Underline) == RFontStyle.Underline)
110+
result |= XFontStyleEx.Underline;
111+
if ((style & RFontStyle.Strikeout) == RFontStyle.Strikeout)
112+
result |= XFontStyleEx.Strikeout;
113+
return result;
114+
}
115+
99116
}
100117
}
Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,16 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>netstandard2.0;net8.0</TargetFrameworks>
3+
<TargetFramework>netstandard2.0</TargetFramework>
44
<OutputType>Library</OutputType>
55
<RootNamespace>TheArtOfDev.HtmlRenderer</RootNamespace>
6-
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
7-
<EnableWindowsTargeting>true</EnableWindowsTargeting>
8-
</PropertyGroup>
9-
<!-- NuGet Package Properties -->
10-
<PropertyGroup>
11-
<PackageId>HtmlRenderer.Core</PackageId>
12-
<Title>HTML Renderer Core</Title>
13-
<PackageTags>html render renderer draw core</PackageTags>
14-
<Description>Cross framework (WinForms/WPF/PDF/Metro/etc.), Multipurpose (UI Controls / Image generation / PDF generation / etc.), 100% managed (C#), High performance HTML Rendering library.
15-
16-
The Core assembly of HTML Renderer does not bound to any rendering framework (WinForms/WPF/PDF/etc.).
17-
Can be used to create framework specific renderer using adapter extensibility object model.
18-
For existing implementations see: HtmlRenderer.WinForms, HtmlRenderer.WPF and HtmlRenderer.PdfSharp.</Description>
19-
<Summary>Cross framework (WinForms/WPF/PDF/Metro/etc.), Multipurpose (UI Controls / Image generation / PDF generation / etc.), 100% managed (C#), High performance HTML Rendering library.</Summary>
6+
<AssemblyName>HtmlRenderer</AssemblyName>
7+
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
208
</PropertyGroup>
219
<ItemGroup>
2210
<EmbeddedResource Include="Core\Utils\ImageError.png" />
2311
<EmbeddedResource Include="Core\Utils\ImageLoad.png" />
2412
</ItemGroup>
2513
<ItemGroup>
26-
<None Include="..\..\README.md" Pack="true" PackagePath="\" />
27-
</ItemGroup>
28-
<ItemGroup>
29-
<PackageReference Include="System.Resources.Extensions" Version="10.0.1" />
14+
<PackageReference Include="System.Resources.Extensions" Version="4.6.0" />
3015
</ItemGroup>
31-
</Project>
16+
</Project>

0 commit comments

Comments
 (0)