# 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
[](https://www.nuget.org/packages/JESAI.HtmlTemplate.Pdf.net45/)
[](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 |
```
#### 效果

#### 更新
* 2020.6.11
* netcore3.X模版生成html报错问题解决
* RazorEngine.NetCore=>RazorEngineCore