# JESAI.HtmlTemplate.Pdf **Repository Path**: KingRain.NET/JESAI.HtmlTemplate.Pdf ## Basic Information - **Project Name**: JESAI.HtmlTemplate.Pdf - **Description**: JESAI.HtmlTemplate.Pdf是一个把Html模版转换PDF 或者把Razor渲染PDF,也可以把Razor生成动态html的插件 - **Primary Language**: C# - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 31 - **Created**: 2020-07-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JESAI.HtmlTemplate.Pdf [![Latest version](https://img.shields.io/nuget/v/JESAI.HtmlTemplate.Pdf.net45.svg)](https://www.nuget.org/packages/JESAI.HtmlTemplate.Pdf.net45/) [![Latest version](https://img.shields.io/nuget/v/JESAI.HtmlTemplate.Pdf.Core.svg)](https://www.nuget.org/packages/JESAI.HtmlTemplate.Pdf.Core/) #### 介绍 JESAI.HtmlTemplate.Pdf是一个把Html模版转换PDF 或者把Razor渲染PDF,也可以把Razor生成动态html的插件。 #### 使用说明 直接nuget 安装JESAI.HtmlTemplate.Pdf.net45或者JESAI.HtmlTemplate.Pdf.Core包 1.新建一个数据Model。 ``` namespace JESAI.Demo.Models { [PdfExport(PaperKind = PaperKind.A4)] public class Student { public string Name { get; set; } public string Class { get; set; } public int Age { get; set; } public string Address { get; set; } public string Tel { get; set; } public string Sex { get; set; } public string Des { get; set; } } } ``` 2.集成BaseController,并修改ActionResult返回 ``` public class HomeController : BaseComtroller { private readonly ILogger _logger; private readonly ICacheService _cache; public HomeController(ILogger logger, ICacheService cache) { _logger = logger; _cache = cache; } public IActionResult GetPDF() { var m = new Student() { Name = "111111", Address = "3333333", Age = 22, Sex = "男", Tel = "19927352816", Des = "2222222222222222222" }; return PDFResult(m); } } ``` 3.Strup启用插件 ``` public void ConfigureServices(IServiceCollection services) { services.AddHtmlTemplateExportPdf(); services.AddControllersWithViews(); } ``` 4.PDF的一些属性配置,包括页面大小,横竖排版等 ``` public class PdfExportAttribute:Attribute { #if !NET461 &&!NET45 /// /// 方向 /// public Orientation Orientation { get; set; } = Orientation.Landscape; #else /// /// 方向 /// public PaperOrientation Orientation { get; set; } = PaperOrientation.Portrait; #endif /// /// 纸张类型(默认A4,必须) /// public PaperKind PaperKind { get; set; } = PaperKind.A4; /// /// 是否启用分页数 /// public bool IsEnablePagesCount { get; set; } /// /// 头部设置 /// public HeaderSettings HeaderSettings { get; set; } /// /// 底部设置 /// public FooterSettings FooterSettings { get; set; } /// /// 名称 /// public string Name { get; set; } /// /// 服务器是否保存一份 /// public bool IsEnableSaveFile { get; set; } = false; /// /// 保存路径 /// public string SaveFileRootPath { get; set; } = "D:\\PdfFile"; /// /// 是否缓存 /// public bool IsEnableCache { get; set; } = false; /// /// 缓存有效时间 /// public TimeSpan CacheTimeSpan { get; set; } = TimeSpan.FromMinutes(30); } ``` 5.Razor 模版 ```
姓名 @Model.Name 性别 @Model.Sex
年龄 @Model.Age 班级 @Model.Class
住址 @Model.Address 电话 @Model.Tel
住址 @Model.Des
``` #### 效果 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0519/104636_1165c7fe_370556.png "751976-20200519101619278-1876043300.png") #### 更新 * 2020.6.11 * netcore3.X模版生成html报错问题解决 * RazorEngine.NetCore=>RazorEngineCore