bug fixed
parent
3943a20605
commit
fdf8520961
|
|
@ -1,4 +1,13 @@
|
|||
using Microsoft.AspNetCore.Http;
|
||||
using iText.IO.Font;
|
||||
using iText.IO.Image;
|
||||
using iText.Kernel.Colors;
|
||||
using iText.Kernel.Font;
|
||||
using iText.Kernel.Geom;
|
||||
using iText.Kernel.Pdf;
|
||||
using iText.Layout;
|
||||
using iText.Layout.Element;
|
||||
using iText.Layout.Properties;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace PDFGenerateApi
|
||||
|
|
@ -9,6 +18,139 @@ namespace PDFGenerateApi
|
|||
{
|
||||
|
||||
|
||||
//[HttpGet("generate")]
|
||||
//public IActionResult GeneratePdf()
|
||||
//{
|
||||
// // 创建内存流
|
||||
// using (var stream = new MemoryStream())
|
||||
// {
|
||||
// // 创建 PDF Writer
|
||||
// PdfWriter writer = new PdfWriter(stream);
|
||||
|
||||
// PdfDocument pdf = new PdfDocument(writer);
|
||||
|
||||
// // 设置页面大小为横向 A4
|
||||
// PageSize pageSize = PageSize.A4.Rotate();
|
||||
// // 设置页面大小为 A4
|
||||
// pdf.SetDefaultPageSize(pageSize);
|
||||
|
||||
// Document document = new Document(pdf);
|
||||
|
||||
// // 加载中文字体
|
||||
// string fontsPath = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "fonts", "AlimamaDongFangDaKai-Regular.otf");
|
||||
// if (!System.IO.File.Exists(fontsPath))
|
||||
// {
|
||||
// // _logger.LogError($"Font file not found at path: {fontsPath}");
|
||||
// return NotFound("Font file not found.");
|
||||
// }
|
||||
|
||||
// PdfFont font = PdfFontFactory.CreateFont(fontsPath, PdfEncodings.IDENTITY_H, PdfFontFactory.EmbeddingStrategy.PREFER_EMBEDDED);
|
||||
|
||||
// // 加载 logo 图像
|
||||
// string logoPath = "https://i5.youzy.cn/util4y/media/files/20231026/7840b6f1f30c413eade15babc70be26e_%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230811154443.png"; // 确保 logo.png 放在 wwwroot 目录下
|
||||
// ImageData imageData = ImageDataFactory.Create(logoPath);
|
||||
// Image logo = new Image(imageData);
|
||||
|
||||
// logo.SetWidth(124);
|
||||
// logo.SetHeight(40);
|
||||
// // 将 logo 添加到文档中
|
||||
// document.Add(logo);
|
||||
|
||||
// // 添加标题
|
||||
// Paragraph title = new Paragraph("志愿表2 山东 张三 1段 560分 -位 物/化/生")
|
||||
// .SetTextAlignment(TextAlignment.CENTER)
|
||||
// .SetFont(font)
|
||||
// .SetBold()
|
||||
// .SetFontSize(16)
|
||||
// .SetMarginTop(20)
|
||||
// .SetMarginBottom(5);
|
||||
// document.Add(title);
|
||||
// // 添加标题下方内容
|
||||
// Paragraph subtitle = new Paragraph(string.Format("最后修改时间:{0}", DateTime.Now.ToString("yyyy-MM-dd HH:mm")))
|
||||
// .SetTextAlignment(TextAlignment.CENTER)
|
||||
// .SetFont(font)
|
||||
// .SetFontColor(ColorConstants.GRAY) // 设置字体颜色为灰色
|
||||
// .SetFontSize(12)
|
||||
// .SetMarginBottom(20);
|
||||
// document.Add(subtitle);
|
||||
|
||||
// // 创建一个 8列的表格,设置表格宽度为 100% 以适应页面宽度
|
||||
// // 创建一个包含九列的表格,并设置每列的宽度
|
||||
// // float[] columnWidths = { 0.5f, 0.5f, 1, 2, 1, 1, 1, 1, 1 };
|
||||
|
||||
// Table universitytable = new Table(9);
|
||||
// universitytable.SetWidth(UnitValue.CreatePercentValue(100));
|
||||
|
||||
// // 添加表头
|
||||
// string[] unversityheaders = { "志愿", "概率", "院校代码", "院校名称", "24招生计划", "历年", "2023", "2022", "2021" };
|
||||
// int h = 0;
|
||||
// foreach (var header in unversityheaders)
|
||||
// {
|
||||
// h++;
|
||||
// if (h == 4)
|
||||
// {
|
||||
// universitytable.AddHeaderCell(new Cell().Add(new Paragraph(header).SetWidth(85).SetFont(font).SetBold().SetTextAlignment(TextAlignment.CENTER)));
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// universitytable.AddHeaderCell(new Cell().Add(new Paragraph(header).SetFont(font).SetBold().SetTextAlignment(TextAlignment.CENTER)));
|
||||
// }
|
||||
// }
|
||||
|
||||
// // 可选:添加表格数据,这里仅作为示例
|
||||
// for (int i = 1; i <= 1; i++)
|
||||
// {
|
||||
// universitytable.AddCell(new Cell().Add(new Paragraph(i.ToString()).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// universitytable.AddCell(new Cell().Add(new Paragraph("0.9").SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// universitytable.AddCell(new Cell().Add(new Paragraph("A999").SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// universitytable.AddCell(new Cell().Add(new Paragraph("山东师范大学(本科)(山东公办)省重点 保研 研究生院 省部共建山东 济南市/综合/公办/排名190" + i).SetWidth(85).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// universitytable.AddCell(new Cell().Add(new Paragraph("100").SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
|
||||
// universitytable.AddCell(new Cell().Add(new Paragraph("历史数据" + i).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// universitytable.AddCell(new Cell().Add(new Paragraph("2023数据" + i).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// universitytable.AddCell(new Cell().Add(new Paragraph("2022数据" + i).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// universitytable.AddCell(new Cell().Add(new Paragraph("2021数据" + i).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
|
||||
// }
|
||||
// document.Add(universitytable);
|
||||
// // float[] columnWidths = { 0.5f, 0.5f, 1, 2, 1, 1, 1, 1, 1 };
|
||||
// Table majortable = new Table(9);
|
||||
// majortable.SetWidth(UnitValue.CreatePercentValue(100));
|
||||
// // 添加表头
|
||||
// string[] majorlistheaders = { "序号", "概率", "专业代码", "专业名称", "24招生计划", "历年", "2023", "2022", "2021" };
|
||||
// foreach (var header in majorlistheaders)
|
||||
// {
|
||||
// majortable.AddHeaderCell(new Cell().Add(new Paragraph(header).SetFont(font).SetBold().SetTextAlignment(TextAlignment.CENTER)));
|
||||
// }
|
||||
|
||||
|
||||
// for (int i = 1; i <= 5; i++)
|
||||
// {
|
||||
// majortable.AddCell(new Cell().Add(new Paragraph(i.ToString()).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// majortable.AddCell(new Cell().Add(new Paragraph("0.9").SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// majortable.AddCell(new Cell().Add(new Paragraph("QL").SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// majortable.AddCell(new Cell().Add(new Paragraph("垫子信息技术" + i).SetWidth(85).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// majortable.AddCell(new Cell().Add(new Paragraph("20").SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
|
||||
// majortable.AddCell(new Cell().Add(new Paragraph("录取人数\n计划人数\n最低分\n最低位次\n效位差" + i).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// majortable.AddCell(new Cell().Add(new Paragraph("2023数据" + i).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// majortable.AddCell(new Cell().Add(new Paragraph("2022数据" + i).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
// majortable.AddCell(new Cell().Add(new Paragraph("2021数据" + i).SetFont(font).SetTextAlignment(TextAlignment.CENTER)));
|
||||
|
||||
// }
|
||||
// document.Add(majortable);
|
||||
|
||||
// // 将表格添加到文档中
|
||||
|
||||
|
||||
// // 关闭文档
|
||||
// document.Close();
|
||||
|
||||
// // 返回 PDF 文件
|
||||
// return File(stream.ToArray(), "application/pdf", "table_example_with_logo_and_title.pdf");
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
|
|
@ -19,7 +161,7 @@ namespace PDFGenerateApi
|
|||
public IActionResult Generate()
|
||||
{
|
||||
// 加载中文字体
|
||||
string fontsPath = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "fonts", "AlimamaDongFangDaKai-Regular.otf");
|
||||
string fontsPath = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "fonts", "NotoSansCJKsc-Regular.otf");
|
||||
string[] unversityheaders = { "志愿", "概率", "院校代码", "院校名称", "24招生计划", "历年", "2023", "2022", "2021" };
|
||||
var stream = PdfOptHelper.CreatePdf(fontsPath, "test", unversityheaders.ToList(), new List<PdfOptHelper.dataModel>() {
|
||||
new PdfOptHelper.dataModel()
|
||||
|
|
|
|||
|
|
@ -161,10 +161,9 @@ namespace PDFGenerateApi
|
|||
Paragraph title = new Paragraph(titletext)
|
||||
.SetTextAlignment(TextAlignment.CENTER)
|
||||
.SetFont(font)
|
||||
.SetBold()
|
||||
.SetFontSize(16)
|
||||
.SetMarginTop(20)
|
||||
.SetMarginBottom(5);
|
||||
.SetFontColor(ColorConstants.GRAY) // 设置字体颜色为灰色
|
||||
.SetFontSize(12)
|
||||
.SetMarginBottom(20);
|
||||
return title;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue