From 3c6707cc84f50fd1f8523f153028d19943414889 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Mon, 5 May 2025 20:49:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E4=B8=AD?= =?UTF-8?q?=E6=96=87=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/DefaultPdfService.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/components/BootstrapBlazor.Html2Pdf.iText/Services/DefaultPdfService.cs b/src/components/BootstrapBlazor.Html2Pdf.iText/Services/DefaultPdfService.cs index bdd13688..2b0157c3 100644 --- a/src/components/BootstrapBlazor.Html2Pdf.iText/Services/DefaultPdfService.cs +++ b/src/components/BootstrapBlazor.Html2Pdf.iText/Services/DefaultPdfService.cs @@ -27,19 +27,17 @@ public async Task PdfStreamFromHtmlAsync(string html, IEnumerable GeneratePdfFromHtmlAsync(string html, List? fonts = null) => Task.Run(() => { - ConverterProperties? converterProperties = null; + var converterProperties = new ConverterProperties(); + var fontProvider = new DefaultFontProvider(registerStandardPdfFonts: true, registerShippedFonts: true, registerSystemFonts: true); if (fonts != null) { - var fontProvider = new DefaultFontProvider(registerStandardPdfFonts: false, registerShippedFonts: false, registerSystemFonts: false); foreach (var font in fonts) { var fontProgram = FontProgramFactory.CreateFont(font); fontProvider.AddFont(fontProgram); } - - converterProperties = new ConverterProperties(); - converterProperties.SetFontProvider(fontProvider); } + converterProperties.SetFontProvider(fontProvider); var stream = new MemoryStream(); HtmlConverter.ConvertToPdf(html, stream, converterProperties); From 1bed056e158cf187770237dce19762c5072b0933 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 6 May 2025 10:02:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4=20iText=20?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 由于是 AGPL 协议无法使用 --- BootstrapBlazor.Extensions.sln | 7 --- .../BootstrapBlazor.Html2Pdf.iText.csproj | 19 -------- .../Extensions/ServiceCollectionExtensions.cs | 26 ----------- .../Services/DefaultPdfService.cs | 46 ------------------- 4 files changed, 98 deletions(-) delete mode 100644 src/components/BootstrapBlazor.Html2Pdf.iText/BootstrapBlazor.Html2Pdf.iText.csproj delete mode 100644 src/components/BootstrapBlazor.Html2Pdf.iText/Extensions/ServiceCollectionExtensions.cs delete mode 100644 src/components/BootstrapBlazor.Html2Pdf.iText/Services/DefaultPdfService.cs diff --git a/BootstrapBlazor.Extensions.sln b/BootstrapBlazor.Extensions.sln index 1296917b..10fb4f20 100644 --- a/BootstrapBlazor.Extensions.sln +++ b/BootstrapBlazor.Extensions.sln @@ -83,8 +83,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Holiday", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Html2Pdf", "src\components\BootstrapBlazor.Html2Pdf\BootstrapBlazor.Html2Pdf.csproj", "{E386EBD8-0028-42B7-8473-F26014C0E326}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Html2Pdf.iText", "src\components\BootstrapBlazor.Html2Pdf.iText\BootstrapBlazor.Html2Pdf.iText.csproj", "{26452C1D-8FBB-419A-9667-01C34B7C6AC4}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.IconPark", "src\components\BootstrapBlazor.IconPark\BootstrapBlazor.IconPark.csproj", "{8B374E31-BBC3-4765-82C7-E124C4E1E731}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Live2DDisplay", "src\components\BootstrapBlazor.Live2DDisplay\BootstrapBlazor.Live2DDisplay.csproj", "{496554A7-52B0-4E01-9CF3-08F0A2B2FCD8}" @@ -346,10 +344,6 @@ Global {E386EBD8-0028-42B7-8473-F26014C0E326}.Debug|Any CPU.Build.0 = Debug|Any CPU {E386EBD8-0028-42B7-8473-F26014C0E326}.Release|Any CPU.ActiveCfg = Release|Any CPU {E386EBD8-0028-42B7-8473-F26014C0E326}.Release|Any CPU.Build.0 = Release|Any CPU - {26452C1D-8FBB-419A-9667-01C34B7C6AC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {26452C1D-8FBB-419A-9667-01C34B7C6AC4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {26452C1D-8FBB-419A-9667-01C34B7C6AC4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {26452C1D-8FBB-419A-9667-01C34B7C6AC4}.Release|Any CPU.Build.0 = Release|Any CPU {8B374E31-BBC3-4765-82C7-E124C4E1E731}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8B374E31-BBC3-4765-82C7-E124C4E1E731}.Debug|Any CPU.Build.0 = Debug|Any CPU {8B374E31-BBC3-4765-82C7-E124C4E1E731}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -543,7 +537,6 @@ Global {BB7FBAC6-0F98-4443-B3A0-B7D0F4164D20} = {FF1089BE-C704-4374-B629-C57C08E1798F} {162A2C8E-767C-41A7-9020-729E79C4F1F9} = {FF1089BE-C704-4374-B629-C57C08E1798F} {E386EBD8-0028-42B7-8473-F26014C0E326} = {FF1089BE-C704-4374-B629-C57C08E1798F} - {26452C1D-8FBB-419A-9667-01C34B7C6AC4} = {FF1089BE-C704-4374-B629-C57C08E1798F} {8B374E31-BBC3-4765-82C7-E124C4E1E731} = {FF1089BE-C704-4374-B629-C57C08E1798F} {496554A7-52B0-4E01-9CF3-08F0A2B2FCD8} = {FF1089BE-C704-4374-B629-C57C08E1798F} {7C875492-41A2-401D-90B1-161BCD5103DC} = {FF1089BE-C704-4374-B629-C57C08E1798F} diff --git a/src/components/BootstrapBlazor.Html2Pdf.iText/BootstrapBlazor.Html2Pdf.iText.csproj b/src/components/BootstrapBlazor.Html2Pdf.iText/BootstrapBlazor.Html2Pdf.iText.csproj deleted file mode 100644 index 13ec6246..00000000 --- a/src/components/BootstrapBlazor.Html2Pdf.iText/BootstrapBlazor.Html2Pdf.iText.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - 9.0.0 - - - - Bootstrap Blazor WebAssembly wasm UI Components Pdf - Bootstrap UI components extensions of Html2Pdf use iText Lib - - - - - - - - - - diff --git a/src/components/BootstrapBlazor.Html2Pdf.iText/Extensions/ServiceCollectionExtensions.cs b/src/components/BootstrapBlazor.Html2Pdf.iText/Extensions/ServiceCollectionExtensions.cs deleted file mode 100644 index 43fac6ce..00000000 --- a/src/components/BootstrapBlazor.Html2Pdf.iText/Extensions/ServiceCollectionExtensions.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -// Website: https://www.blazor.zone or https://argozhang.github.io/ - -using BootstrapBlazor.Components; - -namespace Microsoft.Extensions.DependencyInjection; - -/// -/// BootstrapBlazor 服务扩展类 -/// -public static class BootstrapBlazorHtml2PdfiTextServiceExtensions -{ - /// - /// 添加 AzureOpenAIService 服务 - /// - /// - public static IServiceCollection AddBootstrapBlazorHtml2PdfiTextService(this IServiceCollection services) - { - services.AddSingleton(); -#if NET8_0_OR_GREATER - services.AddKeyedSingleton("BootstrapBlazor.Html2Pdf.iText"); -#endif - return services; - } -} diff --git a/src/components/BootstrapBlazor.Html2Pdf.iText/Services/DefaultPdfService.cs b/src/components/BootstrapBlazor.Html2Pdf.iText/Services/DefaultPdfService.cs deleted file mode 100644 index 2b0157c3..00000000 --- a/src/components/BootstrapBlazor.Html2Pdf.iText/Services/DefaultPdfService.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -// Website: https://www.blazor.zone or https://argozhang.github.io/ - -using iText.Html2pdf; -using iText.Html2pdf.Resolver.Font; -using iText.IO.Font; - -namespace BootstrapBlazor.Components; - -/// -/// 默认 Html to Pdf 实现 -/// -class DefaultPdfService : IHtml2Pdf -{ - public Task PdfDataAsync(string url) => throw new NotImplementedException(); - - public Task PdfStreamAsync(string url) => throw new NotImplementedException(); - - public Task PdfDataFromHtmlAsync(string html, IEnumerable? links = null, IEnumerable? scripts = null) => GeneratePdfFromHtmlAsync(html, null); - - public async Task PdfStreamFromHtmlAsync(string html, IEnumerable? links = null, IEnumerable? scripts = null) - { - var data = await GeneratePdfFromHtmlAsync(html, null); - return new MemoryStream(data); - } - - private static Task GeneratePdfFromHtmlAsync(string html, List? fonts = null) => Task.Run(() => - { - var converterProperties = new ConverterProperties(); - var fontProvider = new DefaultFontProvider(registerStandardPdfFonts: true, registerShippedFonts: true, registerSystemFonts: true); - if (fonts != null) - { - foreach (var font in fonts) - { - var fontProgram = FontProgramFactory.CreateFont(font); - fontProvider.AddFont(fontProgram); - } - } - converterProperties.SetFontProvider(fontProvider); - - var stream = new MemoryStream(); - HtmlConverter.ConvertToPdf(html, stream, converterProperties); - return stream.ToArray(); - }); -}