C# 如何通过iText7在calibri上设置字体?

C# 如何通过iText7在calibri上设置字体?,c#,pdf,itext7,C#,Pdf,Itext7,我试图在Pdf文档中的Calibri上设置我的文本,但这不起作用。如何通过iText7在calibri上设置字体?Fontconstant类只有有限的字体。如前所述,有一个整体,包含关于您可以做什么、有什么区别等更多信息 简而言之,您可以使用加载字体文件 类似这样的操作将允许您设置每个元素的字体: 但你也可以从整体上做到: 把这个放在这里,以防像我这样的人遇到这个问题,并且提供的解决方案不起作用 我使用的方法的重载版本如下所示 PdfFont calibri = PdfFontFactory.C

我试图在Pdf文档中的Calibri上设置我的文本,但这不起作用。如何通过iText7在calibri上设置字体?Fontconstant类只有有限的字体。

如前所述,有一个整体,包含关于您可以做什么、有什么区别等更多信息

简而言之,您可以使用加载字体文件

类似这样的操作将允许您设置每个元素的字体:

但你也可以从整体上做到:


把这个放在这里,以防像我这样的人遇到这个问题,并且提供的解决方案不起作用

我使用的方法的重载版本如下所示

PdfFont calibri = PdfFontFactory.CreateFont(fontProgram, PdfEncodings.WINANSI, true);

关于iText 7构建块(称为字体)的第一章对其进行了解释:您说提供的解决方案不起作用。这怎么会让你失望?@mkl很抱歉,没有具体说明,但原因是-没有具体的事情发生。字体只是没有应用。“字体只是没有应用”已经比“解决方案不起作用”具体得多,这也可能意味着引发任何类型的异常,或者结果PDF包含任意符号或完全不同的内容。
    FontProgram fontProgram =
        FontProgramFactory.CreateFont(@"C:\temp\calibri.ttf");
    PdfFont calibri = PdfFontFactory.CreateFont(fontProgram, PdfEncodings.WINANSI);
    using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(DEST)))
    {
        Document document = new Document(pdfDocument);
        document.SetFont(calibri);
        document.Add(new Paragraph("Hello World!"));
    }
PdfFont calibri = PdfFontFactory.CreateFont(fontProgram, PdfEncodings.WINANSI, true);