可以使用iTextSharp库在ASP.Net Blazor服务器页面中生成PDF文件并返回到客户端。
首先,在项目中添加iTextSharp的NuGet包。
然后,在服务器页面中创建一个方法,生成PDF文件并返回给客户端。
@page "/pdf"
@code {
private byte[] CreatePdf()
{
using (MemoryStream ms = new MemoryStream())
{
Document doc = new Document(PageSize.A4, 50, 50, 60, 60);
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
doc.Open();
// 添加PDF内容
Paragraph title = new Paragraph("Hello World");
doc.Add(title);
doc.Close();
return ms.ToArray();
}
}
private async Task DownloadPdf()
{
byte[] pdfBytes = CreatePdf();
await JS.InvokeAsync
在上面的代码中,CreatePdf方法使用iTextSharp库创建PDF文件,并将生成的字节数组返回给客户端。DownloadPdf方法调用CreatePdf方法,并将生成的字节数组转换为Base64字符串,然后通过JavaScript与浏览器交互,提示下载文件。
在页面中添加一个按钮,调用DownloadPdf方法。
@code {
[Inject]
private IJSRuntime JS { get; set; }
// ...
}
最后,添加JavaScript代码,实现浏览器向客户端提示下载文件的功能。
window.saveAsFile = function (filename, bytesBase64) {
let link = document.createElement('a');
link.download = filename;
link.href = 'data:application/octet-stream;base64,' + bytesBase64;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
以上就是在ASP.Net Blazor服务器页面中返回PDF文件的方法。