C# QuestPDF生成PDF

string filename = "顾客消费账单";
string[] heaer = new string[] { "商店", "商品", "原价", "数量", "实付" };
//调试须加指明非商业应用
QuestPDF.Settings.License = LicenseType.Community;
var bytes = QuestPDF.Fluent.Document.Create(container =>
{
    container.Page(page =>
    {
        page.Size(PageSizes.A4);
        page.Margin(0.3f, QuestPDF.Infrastructure.Unit.Inch);

        page.Header().PaddingBottom(10)
            .Text(@$"{_dbContext.BaseSetting.FirstOrDefault().CourseName}")
            .FontSize(10)
            .Bold()
            .FontColor(Colors.Black);

        page.Content().Column(column =>
        {
            // 标题
            column.Item().BorderBottom(1).PaddingBottom(10).Text(filename).FontSize(16).Bold().FontColor(Colors.Black).AlignCenter();
            // 基本信息
            column.Item().PaddingBottom(5).PaddingTop(5).Text($"客人信息 {gdl.GuestInfo.Date.Value.ToString("yyyy-MM-dd")}").Bold();
            column.Item().PaddingBottom(5).Text($"姓名:{gdl.GuestInfo.GuestName} 身份类型:{gdl.GuestInfo.GeustType}").Bold();
            column.Item().PaddingBottom(5).Text($"商品消费({gdl.ConsumeMdses.LastOrDefault().PrePrice + battingFee + drFee})").Bold();
            column.Item().Table(table =>
            {
                table.ColumnsDefinition(columns =>
                {
                    columns.RelativeColumn(2);
                    columns.RelativeColumn(3);
                    columns.RelativeColumn(1.5f);
                    columns.RelativeColumn(1);
                    columns.RelativeColumn(1.5f);
                });
                table.Header(header =>
                {
                    foreach (var item in heaer)
                    {
                        header.Cell().Border(0.5f).Text(item).Bold().AlignCenter();
                    }
                });
                //击球费
                if (battingFee > 0)
                {
                    table.Cell().Border(0.5f).Text(shopName).AlignCenter();
                    table.Cell().Border(0.5f).Text("击球消费").AlignCenter();
                    table.Cell().Border(0.5f).Text(battingFee.ToString()).AlignCenter();
                    table.Cell().Border(0.5f).Text(1.ToString()).AlignCenter();
                    table.Cell().Border(0.5f).Text(battingFee.ToString()).AlignCenter();
                }
                //练习场
                if (drFee > 0)
                {
                    foreach (var item in gdl.DrPlayConsumes)
                    {
                        table.Cell().Border(0.5f).Text(shops.FirstOrDefault(t => t.Id == item.ShopId).Name).AlignCenter();
                        table.Cell().Border(0.5f).Text(item.PlayName + "-" + item.PlayTypeName).AlignCenter();
                        table.Cell().Border(0.5f).Text(item.OriPrice.ToString()).AlignCenter();
                        table.Cell().Border(0.5f).Text(item.Count.ToString()).AlignCenter();
                        table.Cell().Border(0.5f).Text(item.Money.ToString()).AlignCenter();
                    }
                }
                                    
            //付款信息
            column.Item().PaddingBottom(5).PaddingTop(5).Text($"付款信息").Bold();
            foreach (var item in gdl.PayInfoBirefness)
            {
                column.Item().Text($"{item.PaymentName}").Bold();
            }
        });
        page.Footer().PaddingTop(10).Row(row =>
        {
            row.RelativeItem(20).AlignLeft().Text($@"制表人:{name}");
            row.RelativeItem(40).AlignCenter().Text($@"制表时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm")}");
            row.RelativeItem(20).AlignRight().Text(x =>
            {
                x.Span("第");
                x.CurrentPageNumber();
                x.Span("页,总共");
                x.TotalPages();
                x.Span("页");
            });
        });                
    });
}).GeneratePdf();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值