需要依靠 iTextSharp.dll,放入unity 内的Plugins下dll下载地址
using UnityEngine;
using System.Collections;
using iTextSharp.text.pdf;
using iTextSharp.text;
using System.IO;
public class TestPDF1 : MonoBehaviour
{
// Use this for initialization
void Start()
{
OnClick();
}
public void OnClick()
{
Document document = new Document();
try
{
//生成的位置
PdfWriter.GetInstance(document, new FileStream(@"D://生成pdf.pdf", FileMode.Create));
document.Open();
//document.SetPageSize(PageSize.A4);
//document.PageCount = 2;
//标题字体
BaseFont bftitle = BaseFont.CreateFont(@"c:\windows\fonts\simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font fonttitle = new iTextSharp.text.Font(bftitle, 20);
BaseFont bf1 = BaseFont.CreateFont(@"c:\windows\fonts\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font font1 = new iTextSharp.text.Font(bf1, 12);
iTextSharp.text.Font fonttitle10 = new iTextSharp.text.Font(bf1, 12);
//写入一个段落, Paragraph
document.Add(new Paragraph("你好, PDFhhhhh !", fonttitle));
//写标题
Paragraph title = new Paragraph("××××××考核成绩单", fonttitle);
//标题居中
title.Alignment = Rectangle.ALIGN_CENTER;
document.Add(title);
//输入一个空行,以分开标题与表格
Paragraph nullp = new Paragraph(" ", fonttitle);
nullp.Leading = 10;
document.Add(nullp);
//表格一共6列
PdfPTable table = new PdfPTable(6);
PdfPCell cellname = new PdfPCell(new Phrase("姓名", fonttitle10));
PdfPCell celltxtname = new PdfPCell(new Phrase("lq", fonttitle10));
PdfPCell cellno = new PdfPCell(new Phrase("学号", fonttitle10));
PdfPCell celltxtno = new PdfPCell(new Phrase("3117393033", fonttitle10));
PdfPCell celltime = new PdfPCell(new Phrase("考核时间", fonttitle10));
PdfPCell celltxttime = new PdfPCell(new Phrase("2019-1-3", fonttitle10));
PdfPCell cellgrade = new PdfPCell(new Phrase("成绩", fonttitle10));
PdfPCell celltxtgrade = new PdfPCell(new Phrase("0", fonttitle10));
PdfPCell celltotaltime = new PdfPCell(new Phrase("时间", fonttitle10));
PdfPCell celltxttotaltime = new PdfPCell(new Phrase("1467.88s", fonttitle10));
PdfPCell cellcollider = new PdfPCell(new Phrase("非法碰撞次数", fonttitle10));
PdfPCell celltxtcollider = new PdfPCell(new Phrase("3", fonttitle10));
PdfPCell celltask = new PdfPCell(new Phrase("任务", fonttitle10));
PdfPCell celleachtime = new PdfPCell(new Phrase("时间", fonttitle10));
PdfPCell celleachcollider = new PdfPCell(new Phrase("碰撞次数", fonttitle10));
PdfPCell cellerror = new PdfPCell(new Phrase("关键点误差", fonttitle10));
PdfPCell cellpic = new PdfPCell(new Phrase("考核路径分析", fonttitle10));
//单元格占用两格
cellpic.Colspan = 2;
//填入单元格内容
table.AddCell(cellname);
table.AddCell(celltxtname);
table.AddCell(cellno);
table.AddCell(celltxtno);
table.AddCell(celltime);
table.AddCell(celltxttime);
table.AddCell(cellgrade);
table.AddCell(celltxtgrade);
table.AddCell(celltotaltime);
table.AddCell(celltxttotaltime);
table.AddCell(cellcollider);
table.AddCell(celltxtcollider);
table.AddCell(celltask);
table.AddCell(celleachtime);
table.AddCell(celleachcollider);
table.AddCell(cellerror);
table.AddCell(cellpic);
//同格式拓展添加
for (int i = 0; i < 14; i++)
{
table.AddCell(new PdfPCell(new Phrase("第" + i + "个任务节点", fonttitle10)));
table.AddCell(new PdfPCell(new Phrase(0.ToString(), fonttitle10)));
table.AddCell(new PdfPCell(new Phrase(0.ToString(), fonttitle10)));
table.AddCell(new PdfPCell(new Phrase(0.ToString(), fonttitle10)));
PdfPCell pic = new PdfPCell(new Phrase("第" + i + "个任务节点的截图", fonttitle10));
pic.Colspan = 2;
table.AddCell(pic);
}
for (int i = 0; i < 14; i++)
{
table.AddCell(new PdfPCell(new Phrase("第" + i + "个任务节点", fonttitle10)));
table.AddCell(new PdfPCell(new Phrase(0.ToString(), fonttitle10)));
table.AddCell(new PdfPCell(new Phrase(0.ToString(), fonttitle10)));
table.AddCell(new PdfPCell(new Phrase(0.ToString(), fonttitle10)));
PdfPCell pic = new PdfPCell(new Phrase("第" + i + "个任务节点的截图", fonttitle10));
pic.Colspan = 2;
table.AddCell(pic);
}
document.Add(table);
document.Close();
Debug.Log("pdf文件写入成功");
//Debug.Log(document.PageNumber);
//Debug.Log(document.PageSize);
//document.OpenDocument();
}
catch (DocumentException de)
{
Debug.Log(de.Message);
}
catch (IOException io)
{
Debug.Log(io.Message);
}
}
void Update()
{
}
}