iText 字体设置

这篇教程展示了如何在.NET环境中使用iText库创建PDF文件,并详细解释了如何注册并设置中文字体,包括字体颜色、大小、对齐方式和行间距等样式。示例代码中创建了一个包含蓝色文本的PDF,使用了宋体字体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方入门教程

教程 .Net版本

安装依赖包

NuGet输入 Install-Package itext7 下载相关依赖包

API文档

iText API (C#相关)

创建PDF

//创建文件目录
FileInfo file = new FileInfo(pdfPath);
file.Directory.Create();
//参数 pdf文件路径 
PdfWriter writer = new PdfWriter(path);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);

设置中文字体

//参数1 字体文件的路径 参数2 字体别名
FontProgramFactory.RegisterFont(fontPath, "simsun");
//使用别名创建PDF字体
PdfFont font = PdfFontFactory.CreateRegisteredFont("simsun");

字体设置

Paragraph p = new Paragraph("显示的文本");
p.SetFontColor(ColorConstants.BLUE);//颜色
p.SetFont(font);//字体
p.SetFontSize(15f);//字体大小
p.SetTextAlignment(TextAlignment.LEFT);//对齐方式
p.SetMultipliedLeading(1.5f);//行间距
//p.SetFixedLeading(30f);//固定行间距

文本加入PDF

document.Add(p);
document.Close();

实例

public class PDFCreate
{
    public const string pdfPath = "../../../results/pdf/FontSet.pdf";//PDF路径
    public string fontPath = "../../../resources/font/simsun.ttc";//宋体
    public void CreatePDF()
    {
        FileInfo file = new FileInfo(pdfPath);
        file.Directory.Create();
        
        PdfWriter writer = new PdfWriter(pdfPath);
        PdfDocument pdf = new PdfDocument(writer);
        Document document = new Document(pdf);

        FontProgramFactory.RegisterFont(fontPath, "simsun");
        PdfFont font = PdfFontFactory.CreateRegisteredFont("simsun");

        Paragraph p = new Paragraph("字体设置");
        p.SetFontColor(ColorConstants.BLUE);
        p.SetFont(font);
        p.SetTextAlignment(TextAlignment.CENTER);
        
        document.Add(p);
        document.Close();
    }
}
### 如何在iTextPDF设置中文字体 为了使iText能够正确显示中文字符,默认的字体配置并不适用,因为这些默认字体缺少对东亚语言的支持。为此,需要引入额外的库文件`iTextAsian.jar`来扩展iText的功能,从而允许使用适用于中文环境下的字体资源[^1]。 具体来说,在创建文档之前应该先定义好所需的中文字体对象: ```java // 创建基础字体实例并指定编码方式以及嵌入状态 BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); ``` 接着基于此基础字体构建更高层次的文字样式描述符——即`Font`类的对象: ```java // 定义具体的字体属性,比如字号大小和加粗程度 com.lowagie.text.Font fontChinese = new com.lowagie.text.Font(bfChinese, 12, com.lowagie.text.Font.NORMAL); ``` 最后当向页面添加文本内容时,则可以利用上述自定义好的字体参数来进行渲染操作: ```java // 使用带有特定样式的段落形式插入到文档当中去 Paragraph paragraph = new Paragraph("你好", fontChinese); document.add(paragraph); ``` 值得注意的是,如果希望将所使用的字体随同最终生成的PDF一同打包分发出去的话,那么应当把第三个参数由`NOT_EMBEDDED`改为`EMBEDDED`以便让阅读者无需安装相同版本号的字型就能正常查看文件中的汉字部分[^3]。 另外一种方法是在XML配置文件里声明所需风格名称及其关联特性,如下所示: ```xml <style name="myStyle" isDefault="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> ``` 这种方式同样能实现相似的效果,并且可能更适合那些希望通过外部资源配置简化程序逻辑的应用场景[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值