Skip to content

Commit 125cbb6

Browse files
committed
Add MigraDocCoreLib
1 parent 56bba15 commit 125cbb6

File tree

11 files changed

+115
-1
lines changed

11 files changed

+115
-1
lines changed

App/App.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<ProjectReference Include="..\Libs\DinkToPdfLib\DinkToPdfLib.csproj" />
1010
<ProjectReference Include="..\Libs\IronPdfLib\IronPdfLib.csproj" />
1111
<ProjectReference Include="..\Libs\ITextSharpPdfLib\ITextSharpPdfLib.csproj" />
12+
<ProjectReference Include="..\Libs\MigraDocCoreLib\MigraDocCoreLib.csproj" />
1213
<ProjectReference Include="..\Libs\PdfSharpLib\PdfSharpLib.csproj" />
1314
<ProjectReference Include="..\Libs\PugPdfLib\PugPdfLib.csproj" />
1415
<ProjectReference Include="..\Libs\PuppeteerPdfLib\PuppeteerPdfLib.csproj" />

App/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using IronPdfLib;
66
using ITextSharpPdfLib;
77
using Microsoft.Extensions.DependencyInjection;
8+
using MigraDocCoreLib;
89
using PdfSharpLib;
910
using PugPdfLib;
1011
using PuppeteerPdfLib;
@@ -20,7 +21,7 @@
2021
.AddIronPdfLib()
2122
.AddITextSharpPdfLib()
2223
.AddPdfSharpLib()
23-
.AddPdfSharpLib()
24+
.AddMigraDocCoreLib()
2425
.AddPugPdfLib()
2526
.AddPuppeteerPdfLib()
2627
.AddQuestPdfLib()

Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.8" />
2020
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.8" />
2121
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
22+
<PackageVersion Include="MigraDocCore.Rendering" Version="1.3.67" />
2223
<PackageVersion Include="PdfSharpCore" Version="1.3.67" />
2324
<PackageVersion Include="PugPDF.Core" Version="1.0.9" />
2425
<PackageVersion Include="PuppeteerSharp" Version="20.2.2" />
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Contracts;
2+
using Microsoft.Extensions.DependencyInjection;
3+
4+
namespace MigraDocCoreLib;
5+
6+
public static class DependencyInjection
7+
{
8+
public static IServiceCollection AddMigraDocCoreLib(this IServiceCollection services)
9+
{
10+
services.AddTransient<IPdfGenerator, PdfGenerator>();
11+
return services;
12+
}
13+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<ItemGroup>
4+
<PackageReference Include="MigraDocCore.Rendering" />
5+
</ItemGroup>
6+
7+
<ItemGroup>
8+
<ProjectReference Include="..\..\Contracts\Contracts.csproj" />
9+
</ItemGroup>
10+
11+
</Project>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using Contracts;
2+
using MigraDocCore.DocumentObjectModel;
3+
using MigraDocCore.Rendering;
4+
5+
namespace MigraDocCoreLib;
6+
7+
public sealed class PdfGenerator : IPdfGenerator
8+
{
9+
public Task GenerateAsync(string text, string filename, CancellationToken cancellationToken)
10+
{
11+
var document = new Document();
12+
document
13+
.AddSection()
14+
.AddParagraph(text);
15+
var renderer = new PdfDocumentRenderer
16+
{
17+
Document = document
18+
};
19+
renderer.RenderDocument();
20+
renderer.PdfDocument.Save(filename);
21+
return Task.CompletedTask;
22+
}
23+
}

PdfGeneratorDemo.sln

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WkHtmlToPdfLib", "Libs\WkHt
6565
EndProject
6666
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WkHtmlToPdfLibTests", "Tests\WkHtmlToPdfLibTests\WkHtmlToPdfLibTests.csproj", "{7FF6B45B-E376-4CA2-AA1F-7A41EF6C0AE7}"
6767
EndProject
68+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MigraDocCoreLib", "Libs\MigraDocCoreLib\MigraDocCoreLib.csproj", "{45ADA4FA-7ED0-4942-A2EE-887C5B1D226C}"
69+
EndProject
70+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MigraDocCoreLibTests", "Tests\MigraDocCoreLibTests\MigraDocCoreLibTests.csproj", "{5164B7F5-C338-4693-9E38-59AD2FF54CF7}"
71+
EndProject
6872
Global
6973
GlobalSection(SolutionConfigurationPlatforms) = preSolution
7074
Debug|Any CPU = Debug|Any CPU
@@ -167,6 +171,14 @@ Global
167171
{7FF6B45B-E376-4CA2-AA1F-7A41EF6C0AE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
168172
{7FF6B45B-E376-4CA2-AA1F-7A41EF6C0AE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
169173
{7FF6B45B-E376-4CA2-AA1F-7A41EF6C0AE7}.Release|Any CPU.Build.0 = Release|Any CPU
174+
{45ADA4FA-7ED0-4942-A2EE-887C5B1D226C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
175+
{45ADA4FA-7ED0-4942-A2EE-887C5B1D226C}.Debug|Any CPU.Build.0 = Debug|Any CPU
176+
{45ADA4FA-7ED0-4942-A2EE-887C5B1D226C}.Release|Any CPU.ActiveCfg = Release|Any CPU
177+
{45ADA4FA-7ED0-4942-A2EE-887C5B1D226C}.Release|Any CPU.Build.0 = Release|Any CPU
178+
{5164B7F5-C338-4693-9E38-59AD2FF54CF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
179+
{5164B7F5-C338-4693-9E38-59AD2FF54CF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
180+
{5164B7F5-C338-4693-9E38-59AD2FF54CF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
181+
{5164B7F5-C338-4693-9E38-59AD2FF54CF7}.Release|Any CPU.Build.0 = Release|Any CPU
170182
EndGlobalSection
171183
GlobalSection(SolutionProperties) = preSolution
172184
HideSolutionNode = FALSE
@@ -194,6 +206,8 @@ Global
194206
{B8746D6A-1C3E-42CF-8590-E1D2C6BD73B6} = {A852D5D4-4528-424B-978C-B04CA6D9A4F2}
195207
{59092653-23FE-4429-B26E-7DA96CEC428D} = {87F3D6C7-3C6B-41AD-94C0-A26C4D076CCF}
196208
{7FF6B45B-E376-4CA2-AA1F-7A41EF6C0AE7} = {A852D5D4-4528-424B-978C-B04CA6D9A4F2}
209+
{45ADA4FA-7ED0-4942-A2EE-887C5B1D226C} = {87F3D6C7-3C6B-41AD-94C0-A26C4D076CCF}
210+
{5164B7F5-C338-4693-9E38-59AD2FF54CF7} = {A852D5D4-4528-424B-978C-B04CA6D9A4F2}
197211
EndGlobalSection
198212
GlobalSection(ExtensibilityGlobals) = postSolution
199213
SolutionGuid = {B89CF2D0-E7E3-45A6-A487-1E4E2875AF75}

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ In this demo, i m generating a pdf file using various libraries :
99
- [IronPdf](https://ironpdf.com)
1010
- [QuestPdf](https://www.questpdf.com)
1111
- [PdfSharp](https://github.com/ststeiger/PdfSharpCore)
12+
- [MigraDoc](https://github.com/ststeiger/PdfSharpCore/blob/master/docs/MigraDocCore/index.md)
1213
- [SpirePdf](https://www.e-iceblue.com/Introduce/pdf-for-net-introduce.html)
1314
- [SelectPdf](https://selectpdf.com/community-edition)
1415
- [AsposePdf](https://products.aspose.com/pdf/net)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<IsPackable>false</IsPackable>
5+
<IsTestProject>true</IsTestProject>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<PackageReference Include="AwesomeAssertions" />
10+
<PackageReference Include="Microsoft.NET.Test.Sdk" />
11+
<PackageReference Include="xunit" />
12+
<PackageReference Include="xunit.runner.visualstudio">
13+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
14+
<PrivateAssets>all</PrivateAssets>
15+
</PackageReference>
16+
<PackageReference Include="coverlet.collector">
17+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
18+
<PrivateAssets>all</PrivateAssets>
19+
</PackageReference>
20+
</ItemGroup>
21+
22+
<ItemGroup>
23+
<ProjectReference Include="..\..\Libs\MigraDocCoreLib\MigraDocCoreLib.csproj" />
24+
</ItemGroup>
25+
26+
</Project>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using AwesomeAssertions;
2+
using MigraDocCoreLib;
3+
4+
namespace MigraDocCoreLibTests;
5+
6+
public class PdfGeneratorTests
7+
{
8+
[Fact]
9+
public async Task Should_Generate_Pdf_File()
10+
{
11+
// arrange
12+
var cancellationToken = CancellationToken.None;
13+
var filename = $"MigraDocCoreLibTests-{DateTime.Now:yyMMddHHmmss}.pdf";
14+
var generator = new PdfGenerator();
15+
16+
// act
17+
await generator.GenerateAsync("Hello World", filename, cancellationToken);
18+
19+
// assert
20+
File.Exists(filename).Should().BeTrue();
21+
}
22+
}

0 commit comments

Comments
 (0)