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

embedded/2025/2/13 9:43:02/

文本内容自动排布

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

http://www.ppmy.cn/embedded/161841.html

相关文章

MATLAB电机四阶轨迹规划考虑jerk、Djerk

1、内容简介 略 126-可以交流、咨询、答疑 2、内容说明 略 在电机控制中&#xff0c;轨迹规划是一个重要的环节&#xff0c;它决定了电机如何从一个状态平滑地过渡到另一个状态。四阶轨迹规划考虑了位置、速度、加速度和加加速度&#xff08;jerk&#xff09;&#xff0c;有…

Leetcode - 周赛435

目录 一、3442. 奇偶频次间的最大差值 I二、3443. K 次修改后的最大曼哈顿距离三、3444. 使数组包含目标值倍数的最少增量四、3445. 奇偶频次间的最大差值 II 一、3442. 奇偶频次间的最大差值 I 题目链接 本题使用数组统计字符串 s s s 中每个字符的出现次数&#xff0c;然后…

git 提示 fatal: The remote end hung up unexpectedly

我在 git push 的时候遇到报错 fatal: The remote end hung up unexpectedly 解决方法如下&#xff1a; 1. 调整缓存限制&#xff08;大文件推送&#xff09; git config --global http.postBuffer 524288000 # 设置缓存为500MB git config --global https.postBuffer 52428…

ClickHouse的前世今生

ClickHouse是一款由Yandex开发的高性能列式存储数据库管理系统,专为在线分析处理(OLAP)设计,适用于实时数据分析、大规模数据处理和复杂查询场景。以下是关于ClickHouse的安装、使用及应用场景的详细介绍: 一、ClickHouse的安装 ClickHouse支持多种操作系统,包括Linux、…

Cables Finance 构建集成LST与外汇RWA永续合约的综合性DEX

虽然 DeFi 领域整体发展迅速&#xff0c;但仍旧缺乏交易体验。现阶段市场已拓展至 RWAs 、永续期货和外汇领域&#xff0c;但跨资产交易的实际操作仍充满阻力。交易者面临流动性碎片化、抵押品被锁定在质押合约中缺乏流动性&#xff0c;以及整个系统仍围绕美元稳定币运转等问题…

Netty如何优雅地解决TCP粘包、拆包问题

引言 在TCP/IP协议族中&#xff0c;TCP&#xff08;传输控制协议&#xff09;是一个面向连接的、可靠的、基于字节流的传输层协议。TCP协议确保了数据能够可靠地从一个端点传输到另一个端点&#xff0c;但它并没有提供消息边界的概念。这意味着&#xff0c;当数据被发送时&…

C语言操作符详解

引言 C语言作为一种强大而灵活的编程语言&#xff0c;操作符是其重要组成部分。操作符用于执行各种运算&#xff0c;如算术运算、逻辑运算、比较运算等。深入理解C语言操作符&#xff0c;能帮助开发者编写出高效、准确的代码。 算术操作符 基本算术操作符 - &#xff08;加法…

社区版IDEA中配置TomCat(详细版)

文章目录 1、下载Smart TomCat2、配置TomCat3、运行代码 1、下载Smart TomCat 由于小编的是社区版&#xff0c;没有自带的tomcat server&#xff0c;所以在设置的插件里面搜索&#xff0c;安装第一个&#xff08;注意&#xff1a;安装时一定要关闭外网&#xff0c;小编因为这个…