示例代码定义了一个名为PdfController的API控制器,其中的GeneratePdf方法创建了一个新的PDF文档,并将内容添加到文档中。最后,将文档内容转换为字节数组,并通过File方法返回给前端。
注意,你需要在你的项目中添加对iTextSharp库的引用。可以通过在csproj文件中的ItemGroup节点中添加以下引用来实现:
<PackageReference Include="iTextSharp" Version="5.5.13.2" />
当调用/api/pdf接口时,将返回一个带有生成的PDF文件的响应。你可以将其用于前端下载或进一步处理。
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using Microsoft.AspNetCore.Mvc;[ApiController]
[Route("api/pdf")]
public class PdfController : ControllerBase
{[HttpGet]public IActionResult GeneratePdf(){// 创建新的PDF文档Document document = new Document();// 创建内存流用于存储生成的PDFMemoryStream stream = new MemoryStream();// 创建PDF写入器PdfWriter writer = PdfWriter.GetInstance(document, stream);// 打开文档document.Open();// 添加内容到文档document.Add(new Paragraph("Hello, world!", font));// 创建表格PdfPTable table = new PdfPTable(3); // 3列// 添加表头table.AddCell("列1");table.AddCell("列2");table.AddCell("列3");// 添加内容行table.AddCell("内容1");table.AddCell("内容2");table.AddCell("内容3");// 将表格添加到文档document.Add(table);// 关闭文档document.Close();// 设置响应内容类型为PDF// Response.Headers.Add("Content-Disposition", "attachment; filename=example.pdf");// 将文档内容作为字节数组返回给前端return File(stream.ToArray(), "application/pdf", "example.pdf");}
}