// 安装JsReport NuGet包
// 在.NET项目中使用JsReport生成PDF
// 引入必要的命名空间
using jsreport.AspNetCore;
using jsreport.Binary;
using jsreport.Local;
using jsreport.Types;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
public class PdfController : Controller
{
private readonly IJsReportMigration _jsReportMigration;
public PdfController(IJsReportMigration jsReportMigration)
{
_jsReportMigration = jsReportMigration;
}
[HttpGet("html-to-pdf")]
public async Task<IActionResult> HtmlToPdf(string htmlContent)
{
// 使用JsReport生成PDF
using (var jsReport = _jsReportMigration.CreateJsReport())
{
var report = await jsReport.RenderAsync(new RenderRequest
{
Template = new Template
{
Content = htmlContent,
Recipe = Recipe.ChromePdf,
Engine = Engine.None,
Chrome = new Chrome
{
Format = "A4",
MarginTop = "1cm",
MarginLeft = "1cm",
MarginBottom = "1cm",
MarginRight = "1cm",
}
}
});
return File(report.Content, "application/pdf", "report.pdf");
}
}
}
这段代码展示了如何在ASP.NET Core应用程序中使用JsReport将HTML内容转换成PDF。首先,我们创建了一个PdfController
,并在其中定义了一个HtmlToPdf
的GET动作方法。这个方法接收一个HTML内容的字符串参数,并使用JsReport的RenderAsync
方法来渲染PDF。最终,我们以文件的形式返回PDF内容,并设置了响应的MIME类型和文件名。