Unity使用iTextSharp导出PDF-03显示文本内容

文本内容自动排布

类似GUILayout

Chunk

最简单的文本对象

  1. 显示文本
  2. 设置使用的字体,不设置字体,默认使用英文字体
  3. 设置下划线
  4. 设置背景色
  5. 文档中只使用Chunk,文本内容不会自动换行
    换行:Chunk.NEWLINE或者"\n"
csharp 复制代码
doc.Add(new Chunk("Hello PDF!"));//使用英文字体 不显示中文
doc.Add(new Chunk("你好,PDF!", BoldFont));//显示中文
var chunk = new Chunk("你好,PDF!", BoldFont);
chunk.SetUnderline(0.5f, -1f);//设置下划线
chunk.SetBackground(BaseColor.RED);//设置背景色
doc.Add(chunk);//"你好,PDF!"使用BoldFont字体,背景红色,有下划线显示在pdf中
for (int i = 0; i < 12; i++)//文字重叠在一行
{
    var chunk = new Chunk("你好,PDF!", BoldFont);
    doc.Add(chunk);
}       

文字重叠效果如下

Phrase

比Chunk高级的文本对象,由多个Chunk组成。

Phrase可以存放多个不同样式的Chunk 且可以自动换行

  1. 文本长度超出文档宽度自动到下一行显示。
  2. 如果文档中加入Phrase,之前添加的Chunk会自动换行。
  3. 可设置行高,单位pt磅
    SetLeading(固定行高,倍数行高)
csharp 复制代码
for (int i = 0; i < 12; i++)
{
    var phrase = new Phrase();
    var chunk = new Chunk("你好,PDF!", BoldFont);
    phrase.Add(chunk);
    doc.Add(phrase);
}

Paragraph

继承Phrase,可添加Chunk和Phrase

  1. 自动换行,且每一个对象都在一个新行开始
  2. 可在段落上方和下方设置间距 SpcingBefore,SpacingAfter,单位像素
  3. 设置缩进,FirstLineIndent首行缩进,IndentationLeft,IndentationRight
  4. 设置对齐方式,Alignment 0左对齐,1居中,2右对齐

文本设置在绝对位置

pdf文档页面的原点(0,0)在左下角,向上为+y,向右为+x。

文档的PageSize可获取页面的宽高数值

文字内容作为一个矩形,左下角作为位置点。

csharp 复制代码
var writer = PdfWriter.GetInstance(doc, new FileStream(fileName, FileMode.Create));
doc.Open();
PdfContentByte cb = writer.DirectContent;
cb.BeginText();
cb.SetFontAndSize(BoldBaseFont, 12f);//设置字体和大小
cb.SetTextMatrix(doc.PageSize.Width / 2, doc.PageSize.Height / 2);//设置位置
cb.ShowText("你好,PDF!");//设置内容
cb.EndText();
相关推荐
魔士于安3 天前
unity 丑陋哥布林 哥布林有humannoid 动画没 带动画
unity·游戏引擎·材质·贴图·模型
huaweichenai3 天前
spring boot操作PDF
java·spring boot·pdf
开开心心就好3 天前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法
小贺儿开发4 天前
Unity 家居视频遥控(细节优化)
科技·unity·程序员·udp·视频·工具·通信
淡海水4 天前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
小小数媒成员4 天前
UGUI 性能优化(详细,全,深入)
开发语言·unity·游戏引擎
泡海椒4 天前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
林川~015 天前
Unity新输入系统使用笔记
unity·input system
泡海椒5 天前
jquick-pdf 表格实战:动态数据 PDF 报表生成
java·开发语言·pdf
小贺儿开发5 天前
Unity 结合百度AI开放平台 手写文字识别
人工智能·科技·学习·unity·云服务·文字识别·手写文字