来自于:桔兮
    因为项目需求,要实现用C#创建PDF文件的功能,在这里需要引入iTextSharp库。引用方法如下:
    1、打开visual studio,打开“工具”菜单栏下的“Nu Get包管理器”下的“管理解决方案的Nu Get程序包”;
    image.png
    2、搜索“iTextSharp”并安装第一个。
    image.png3、将下载好的包移动到unity包的Assets目录下。
    4.脚本中添加引用:
    image.png
    5.编写脚本代码

    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using iTextSharp.text;
    5. using iTextSharp.text.pdf;
    6. using System.IO;
    7. public class NewBehaviourScript : MonoBehaviour {
    8. public void OnClick() {
    9. Document document = new Document();
    10. try
    11. {
    12. PdfWriter.GetInstance(document,new FileStream(@"D://生成pdf.pdf",FileMode.Create));
    13. document.Open();
    14. //标题字体
    15. BaseFont bftitle = BaseFont.CreateFont(@"c:\windows\fonts\simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
    16. iTextSharp.text.Font fonttitle = new iTextSharp.text.Font(bftitle, 20);
    17. BaseFont bf1 = BaseFont.CreateFont(@"c:\windows\fonts\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
    18. iTextSharp.text.Font font1 = new iTextSharp.text.Font(bf1, 12);
    19. iTextSharp.text.Font fonttitle10 = new iTextSharp.text.Font(bf1, 12);
    20. //写标题
    21. Paragraph title = new Paragraph("××××××考核成绩单", fonttitle);
    22. //标题居中
    23. title.Alignment = Rectangle.ALIGN_CENTER;
    24. document.Add(title);
    25. //输入一个空行,以分开标题与表格
    26. Paragraph nullp = new Paragraph(" ", fonttitle);
    27. nullp.Leading = 10;
    28. document.Add(nullp);
    29. //表格一共6列
    30. PdfPTable table = new PdfPTable(6);
    31. PdfPCell cellname = new PdfPCell(new Phrase ("姓名",fonttitle10));
    32. PdfPCell celltxtname = new PdfPCell(new Phrase ("lq", fonttitle10));
    33. PdfPCell cellno = new PdfPCell(new Phrase ("学号", fonttitle10));
    34. PdfPCell celltxtno = new PdfPCell(new Phrase ("3117393033", fonttitle10));
    35. PdfPCell celltime = new PdfPCell(new Phrase ("考核时间", fonttitle10));
    36. PdfPCell celltxttime = new PdfPCell(new Phrase ("2019-1-3", fonttitle10));
    37. PdfPCell cellgrade = new PdfPCell(new Phrase ("成绩", fonttitle10));
    38. PdfPCell celltxtgrade = new PdfPCell(new Phrase ("0",fonttitle10));
    39. PdfPCell celltotaltime = new PdfPCell(new Phrase ("时间", fonttitle10));
    40. PdfPCell celltxttotaltime = new PdfPCell(new Phrase ("1467.88s", fonttitle10));
    41. PdfPCell cellcollider = new PdfPCell(new Phrase ("非法碰撞次数", fonttitle10));
    42. PdfPCell celltxtcollider = new PdfPCell(new Phrase ("3",fonttitle10));
    43. PdfPCell celltask = new PdfPCell(new Phrase ("任务", fonttitle10));
    44. PdfPCell celleachtime = new PdfPCell(new Phrase ("时间", fonttitle10));
    45. PdfPCell celleachcollider = new PdfPCell(new Phrase ("碰撞次数", fonttitle10));
    46. PdfPCell cellerror = new PdfPCell(new Phrase ("关键点误差", fonttitle10));
    47. PdfPCell cellpic = new PdfPCell(new Phrase ("考核路径分析", fonttitle10));
    48. cellpic.Colspan = 2;
    49. table.AddCell(cellname);
    50. table.AddCell(celltxtname);
    51. table.AddCell(cellno);
    52. table.AddCell(celltxtno);
    53. table.AddCell(celltime);
    54. table.AddCell(celltxttime);
    55. table.AddCell(cellgrade);
    56. table.AddCell(celltxtgrade);
    57. table.AddCell(celltotaltime);
    58. table.AddCell(celltxttotaltime);
    59. table.AddCell(cellcollider);
    60. table.AddCell(celltxtcollider);
    61. table.AddCell(celltask);
    62. table.AddCell(celleachtime);
    63. table.AddCell(celleachcollider);
    64. table.AddCell(cellerror);
    65. table.AddCell(cellpic);
    66. for (int i = 0;i < 14;i++) {
    67. table.AddCell(new PdfPCell (new Phrase ("第"+i+"个任务节点",fonttitle10)));
    68. table.AddCell(new PdfPCell (new Phrase (0.ToString(), fonttitle10)));
    69. table.AddCell(new PdfPCell(new Phrase(0.ToString(), fonttitle10)));
    70. table.AddCell(new PdfPCell(new Phrase(0.ToString(), fonttitle10)));
    71. PdfPCell pic = new PdfPCell(new Phrase ("第"+i+"个任务节点的截图", fonttitle10));
    72. pic.Colspan = 2;
    73. table.AddCell(pic);
    74. }
    75. document.Add(table);
    76. document.Close();
    77. Debug.Log("pdf文件写入成功");
    78. }
    79. catch (DocumentException de) { Debug.Log(de.Message); }
    80. catch (IOException io) { Debug.Log(io.Message); }
    81. }
    82. }

    6、存储的文件
    image.png