Unity生成pdf表格
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using iTextSharp.text.pdf;
using iTextSharp.text;
using Font = iTextSharp.text.Font;
public class PdfInformation
{
public string mID;
public string mName;
public string mReserve;
}
public class Pdf
{
private static Pdf _instance;
public static Pdf Instance => _instance ??= new Pdf();
public void Generate()
{
FontFactory.RegisterDirectories();
Font font = FontFactory.GetFont("simhei", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED, 18);
Generate(font);
}
public void Generate(Font font)
{
List<PdfInformation> dataList = new List<PdfInformation>();
for (int i = 0; i < 10; i++)
{
dataList.Add(new PdfInformation()
{
mID = $"{i}",
mName = $"name-{i}",
mReserve = $"reserve-{i}"
});
}
string pdfFilePath = Application.streamingAssetsPath + "/info.pdf";
Document doc = new Document();
PdfWriter.GetInstance(doc, new FileStream(pdfFilePath, FileMode.Create));
doc.Open();
Paragraph title = new Paragraph("测试标题", font);
title.Alignment = Element.ALIGN_CENTER;
doc.Add(title);
doc.Add(new Paragraph("\n"));
PdfPTable table = new PdfPTable(3);
table.AddCell("ID");
table.AddCell("mName");
table.AddCell("mReserve");
foreach (var data in dataList)
{
table.AddCell(data.mID);
table.AddCell(data.mName);
table.AddCell(data.mReserve);
}
doc.Add(table);
doc.Close();
Debug.Log("PDF 文件已生成。");
}
}