如何通过 iText7 在 calibri 上设置我的字体?

How can I set my font on calibri via iText7?

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

如前所述,有一个完整的 chapter on fonts 包含更多关于您可以做什么、有什么区别等的信息。

简而言之,您使用 CreateFont 加载您的字体文件。

像这样可以让您为每个 Paragraph 元素设置字体:

    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.Add(new Paragraph("Hello World!").SetFont(calibri));
    }

但你也可以对整个 Document:

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