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();
相关推荐
平行云1 小时前
实时云渲染平台数据通道,支持3D应用文件上传下载分享无缝交互
linux·unity·云原生·ue5·gpu算力·实时云渲染·像素流送
shuaiqinke1 小时前
【分享】Master PDF Editor v5.9.98便携版 多功能PDF编辑工具
智能手机·pdf
jianwuhuang822 小时前
Kimi怎么导出pdf
人工智能·chatgpt·pdf·deepseek·ai导出鸭
daanpdf3 小时前
四六级翻译《中国文化概况》双语批注版pdf百度网盘
pdf
Sator13 小时前
unity仅用粒子系统实现拖尾
unity·游戏引擎
游乐码3 小时前
Unity基础(五)四元数相关
unity·游戏引擎
想做后端的前端3 小时前
Unity热更新 - HybridCLR & YooAsset
unity·游戏引擎
daanpdf4 小时前
古籍原文周易(易经)全文完整版PDF
pdf
daanpdf4 小时前
大学英语四级试卷历年真题及答案PDF电子版百度网盘
pdf
鹿野素材屋4 小时前
Unity预加载:减少游戏中首次加载资源时的卡顿
windows·游戏·unity