来自于:桔兮
因为项目需求,要实现用C#创建PDF文件的功能,在这里需要引入iTextSharp库。引用方法如下:
1、打开visual studio,打开“工具”菜单栏下的“Nu Get包管理器”下的“管理解决方案的Nu Get程序包”;
2、搜索“iTextSharp”并安装第一个。
3、将下载好的包移动到unity包的Assets目录下。
4.脚本中添加引用:
5.编写脚本代码
using System.Collections;using System.Collections.Generic;using UnityEngine;using iTextSharp.text;using iTextSharp.text.pdf;using System.IO;public class NewBehaviourScript : MonoBehaviour {public void OnClick() {Document document = new Document();try{PdfWriter.GetInstance(document,new FileStream(@"D://生成pdf.pdf",FileMode.Create));document.Open();//标题字体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 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);}document.Add(table);document.Close();Debug.Log("pdf文件写入成功");}catch (DocumentException de) { Debug.Log(de.Message); }catch (IOException io) { Debug.Log(io.Message); }}}
6、存储的文件
