当前位置:首页 > Web开发 > 正文

TradeTime = DateTime.Now

2024-03-31 Web开发

标签:

根本教程之导出Pdf收据 说明

本教程主要说明如何使用Magicodes.IE.Pdf完成Pdf收据导出

要点

导出PDF数据

自界说PDF模板

导出单子

如何批量导出单子

导出特性 PdfExporterAttribute

Orientation: 标的目的(横向或纵向)

PaperKind: 纸张类型(默认A4)

IsWriteHtml: 是否输出HTML模板

ExporterHeaderAttribute

DisplayName: 显示名称

主要法式 1.安置包Magicodes.IE.Pdf Install-Package Magicodes.IE.Pdf 2.导出PDF数据

创建Dto类

public class Student { /// <summary> /// 姓名 /// </summary> public string Name { get; set; } /// <summary> /// 春秋 /// </summary> public int Age { get; set; } } public async Task ExportPdf() { var exporter = new PdfExporter(); var result = await exporter.ExportListByTemplate("test.pdf", new List<Student>() { new Student { Name = "MR.A", Age = 18 }, new Student { Name = "MR.B", Age = 19 }, new Student { Name = "MR.B", Age = 20 } }); }

导出内容如下所示:

技术图片

通过上述代码我们实现了一个简单的Pdf文件导出,也许这样无法到达我们的要求,我们需要自界说标题,那么请看如下代码

[PdfExporter(Name = "学生信息")] public class Student { /// <summary> /// 姓名 /// </summary> [ExporterHeader(DisplayName = "姓名")] [Display(Name = "Display姓名")] public string Name { get; set; } /// <summary> /// 春秋 /// </summary> [ExporterHeader(DisplayName = "春秋")] public int Age { get; set; } }

PdfExporter 通过Name属性来界说文档标题

ExporterHeader DisplayName用来界说属性名称

Display同样界说属性名称,但是优先级小于ExporterHeader

通过改削上述代码执行功效如下所示:

技术图片

3.导出PDF收据

创建导出模板

@using DocumentFormat.OpenXml.EMMA <!DOCTYPE html> <html lang="en" xmlns=""> <head> <meta charset="utf-8"/> <title></title> <style type="text/css"> body { font-family: SimSun !important; } p { margin: 0px; } footer { color: #333; font-size: 1.2rem; margin-bottom: 1.5rem; margin-right: 5%; margin-top: 1.2rem; text-align: right; } table, td { border: 1px solid #444; border-collapse: collapse; /* text-align: center; */ height: 2rem; padding: 5px; } </style> </head> <body> <p style="color: #000; font-size: 1.8rem; height: 32px; text-align: center;"> @Model.Title </p> <p style="color: #333; font-size: 1.2rem; margin-left: 5%; margin-top: 1%;"> <text>NO:@Model.Data.Code</text> <text style="padding-left: 52%; text-align: right;">交易时间:@Model.Data.TradeTime.ToString("yyyy-MM-dd HH:mm:ss")</text> </p> <table width="90%" style="margin-left: 5%; margin-top: 1%;"> <tr style="font-size: 1rem;"> <td style="text-align: center; width: 11%;">交款姓名</td> <td colspan="2">@Model.Data.Name</td> <td style="text-align: center; width: 13%;">身份证号码</td> <td colspan="3">@Model.Data.IdNo</td> </tr> <tr style="font-size: 1rem;"> <td style="text-align: center">交易金额</td> <td colspan="6"> <span>¥:@Model.Data.Amount</span> <span style="padding: 0 2% 0 2%;">人民币(大写):</span> <span>@Model.Data.UppercaseAmount</span> </td> </tr> <tr style="font-size: 1rem;"> <td style="text-align: center">收款方法</td> <td colspan="2">@Model.Data.PaymentMethod</td> <td style="text-align: center; width: 13%;">交易状态</td> <td colspan="3">@Model.Data.TradeStatus</td> </tr> <tr style="font-size: 1rem;"> <td style="text-align: center">收款事由</td> <td style="width: 22.3%;">@Model.Data.Remark</td> <td style="text-align: center; width: 11%;">入学年级</td> <td style="width: 22.3%;" colspan="2">@Model.Data.Grade</td> <td style="text-align: center; width: 11%;">专业</td> <td style="width: 22.3%;">@Model.Data.Profession</td> </tr> </table> </body> </html>

创建Dto类

[Exporter(Name = "湖南心莱信息科技有限公司电子收款凭证")] public class ReceiptInfo { /// <summary> /// 交易时间 /// </summary> public DateTime TradeTime { get; set; } /// <summary> /// 姓名 /// </summary> public string Name { get; set; } /// <summary> /// 身份证 /// </summary> public string IdNo { get; set; } /// <summary> /// 金额 /// </summary> public decimal Amount { get; set; } /// <summary> /// 付出方法 /// </summary> public string PaymentMethod { get; set; } /// <summary> /// 交易状态 /// </summary> public string TradeStatus { get; set; } /// <summary> /// 备注 /// </summary> public string Remark { get; set; } /// <summary> /// 年级 /// </summary> public string Grade { get; set; } /// <summary> /// 专业 /// </summary> public string Profession { get; set; } /// <summary> /// 收款人 /// </summary> public string Payee { get; set; } /// <summary> /// 大写金额 /// </summary> public string UppercaseAmount { get; set; } /// <summary> /// 编号 /// </summary> public string Code { get; set; } }

如上代码片段通过Exporter 特性去指定模板中的Title,固然在我们实际开发中也可以欠亨过该属性去做指定,终究我们这一块也是完全自界说的

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31210.html