|
@@ -1,5 +1,7 @@
|
|
|
using Hotline.Application.ExportWord;
|
|
|
+using Hotline.Pdf;
|
|
|
using Hotline.Share.Enums.Article;
|
|
|
+using XF.Domain.Exceptions;
|
|
|
|
|
|
namespace Hotline.Application.Tools;
|
|
|
public static class StringExtensions
|
|
@@ -14,9 +16,28 @@ public static class StringExtensions
|
|
|
return WordHelper.ConvertHtmlToPdf(value);
|
|
|
}
|
|
|
|
|
|
- public static Stream HtmlToStream(this string value, EFileType fileType)
|
|
|
+ public static Stream HtmlToPDF(this string value, string? title, IPdfManager? pdfManager)
|
|
|
{
|
|
|
- if (fileType == EFileType.pdf) return value.HtmlToPDF();
|
|
|
+ if (pdfManager is null)
|
|
|
+ throw new UserFriendlyException($"非法参数: {nameof(pdfManager)}");
|
|
|
+ var content = value
|
|
|
+ .Replace(" ", " ")
|
|
|
+ .Replace("&", "&")
|
|
|
+ .Replace(""", "\"")
|
|
|
+ .Replace(">", ">")
|
|
|
+ .Replace("<", "<")
|
|
|
+ ;
|
|
|
+
|
|
|
+ var stream = new MemoryStream();
|
|
|
+ pdfManager.GeneratePdf(title, content, stream);
|
|
|
+ stream.Seek(0, SeekOrigin.Begin);
|
|
|
+ return stream;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static Stream HtmlToStream(this string value, EFileType fileType, string? title = null, IPdfManager? pdfManager = null)
|
|
|
+ {
|
|
|
+ //if (fileType == EFileType.pdf) return value.HtmlToPDF();
|
|
|
+ if (fileType == EFileType.pdf) return value.HtmlToPDF(title, pdfManager);
|
|
|
if (fileType == EFileType.word) return value.HtmlToWord();
|
|
|
throw new NotImplementedException($"无效的 fileType 入参: {fileType}");
|
|
|
}
|