当前位置: 首页 > news >正文

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

文本内容自动排布

类似GUILayout

Chunk

最简单的文本对象

  1. 显示文本
  2. 设置使用的字体,不设置字体,默认使用英文字体
  3. 设置下划线
  4. 设置背景色
  5. 文档中只使用Chunk,文本内容不会自动换行
    换行:Chunk.NEWLINE或者"\n"
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(固定行高,倍数行高)
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可获取页面的宽高数值
文字内容作为一个矩形,左下角作为位置点。

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();

相关文章:

  • LVS集群(DR/NAT)
  • 浅识MQ的 Kafka、ActiveMQ、RabbitMQ、RocketMQ区别
  • SIP协议支持的对接方式
  • 怎么查看电脑显存大小(查看电脑配置)
  • rpx和px混用方案
  • 红队视角出发的k8s敏感信息收集——服务发现与 DNS 探测
  • ESLint 规则解析:为什么应避免在 in 操作符左侧使用否定?
  • Mac 下使用多版本 Node
  • 用Shader glsl实现一个简单的PBR光照模型
  • Python 视频文本水印批量添加工具
  • 去中心化AGI网络架构:下一代人工智能的范式革命
  • 输入框相关,一篇文章总结所有前端文本输入的应用场景和实现方法,(包含源码,建议收藏)
  • centos 和 ubuntu 区别
  • 微流控专题 | 单细胞封装背景
  • 深入剖析推理模型:从DeepSeek R1看LLM推理能力构建与优化
  • 网络工程师 (38)流量和差错控制
  • (Neurocomputing-2024)RoFormer: 增强型 Transformer 与旋转位置编码
  • 使用verilog 实现 cordic 算法 ----- 旋转模式
  • arm 入坑笔记
  • el-table得i18国际化写法(我自己项目的大致写法)
  • 中非民间对话在赞比亚举行
  • 全国人大常委会启动食品安全法执法检查
  • 巴基斯坦称约50名印度士兵在克什米尔实控线丧生
  • 山寨“小米”智能马桶、花洒销售额过亿,被判赔3500万元
  • 丰田汽车:美国关税或导致4、5月损失1800亿日元,新财年净利润下滑三成
  • 苹果Safari浏览器上的搜索量首次下降