use*_*566 5 c# blazor blazor-server-side
我正在尝试在服务器端Blazor中生成pdf。我将DinkToPdf用作将HTML字符串转换为pdf的外部库。但是我无法将blazor组件转换为HTML字符串。
有一种方法可以使用Razor ViewEngine将Razor模板呈现为字符串。从此网站http://fizzylogic.nl/2017/08/03/how-to-generate-pdf-documents-in-asp-net-core/
[HttpGet]
public async Task<IActionResult> CreatePDF()
{
var globalSettings = new GlobalSettings
{
ColorMode = ColorMode.Color,
Orientation = Orientation.Portrait,
PaperSize = PaperKind.A4,
Margins = new MarginSettings { Top = 10 },
DocumentTitle = "PDF Report",
};
var objectSettings = new ObjectSettings
{
PagesCount = true,
HtmlContent = "<h>Hello World</h>",
WebSettings = { DefaultEncoding = "utf-8"},
HeaderSettings = { FontName = "Arial", FontSize = 9, Right = "Page [page] of [toPage]", Line = true },
FooterSettings = { FontName = "Arial", FontSize = 9, Line = true, Center = "Report Footer" }
};
var pdf = new HtmlToPdfDocument()
{
GlobalSettings = globalSettings,
Objects = { objectSettings }
};
var file = _converter.Convert(pdf);
return File(file,"application/pdf");
}
Run Code Online (Sandbox Code Playgroud)
我需要将ObjectSettings.HtmlContent修改为blazor组件html字符串。
小智 0
这对我有用:
...... HtmlContent = TemplateGenerator.GetHTMLString(), ......
public static string GetHTMLString()
{
IRaumNodeProvider RaumNodeProvider = new
RaumNodeProvider(Globals.Connectionstring);
var reservierungen = RaumNodeProvider.GetReservierungen();
var sb = new StringBuilder();
sb.Append(@"
<html>
<head>
</head>
<body>
<div class='header'><h1>Reservierungsliste</h1></div>
<table align='center'>
<tr>
<th>Id </th>
<th>Raum </th>
<th>Datum </th>
<th>Zeit </th>
<th>Beleger </th>
<th>Belegung</th>
<th>EmailMsg</th>
</tr>");
foreach (var res in reservierungen)
{
sb.AppendFormat(@"<tr>
<td>{0}</td>
<td>{1}</td>
<td>{2}</td>
<td>{3}</td>
<td>{4}</td>
<td>{5}</td>
<td>{6}</td>
</tr>",
res.Res_Id
, res.RaumName
, res.BelegungsDatumTxt
, res.Zeit
, res.Belegung_durch
, res.Belegung
, res.EmailMsg
);
}
sb.Append(@"
</table>
</body>
</html>");
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
470 次 |
| 最近记录: |