Warm tip: This article is reproduced from serverfault.com, please click

c#-无法在 iText7 Visual Studio 中使用自定义字体

(c# - Unable to use custom font in iText7 Visual Studio)

发布于 2021-01-01 16:11:04

我正在 Visual Studio 上创建一个应用程序,并添加了一个函数,该函数使用 iText7 在按钮单击事件上创建 PDF。我正在使用我的资源中的自定义字体,并且在通过 Visual Studio 调试时使用路径“../../Resources.[FontName].ttf”可以正常工作,但是当我运行应用程序文件时出现错误说the resource or file cannot be found我认为这是因为该文件存储在 .resx 文件中,并且无法通过 Visual Studio 外部的路径(如上所示)访问。我可以使用什么路径来访问字体文件,以便它通过交付的应用程序在 Visual Studio 之外工作?

Questioner
lhunter664
Viewed
0
lhunter664 2021-01-29 21:26:33

我想我会分享我用于我自己的问题的解决方案,以防有人在同一问题上绊倒。

这很简单。我将字体 .ttf 文件添加到我的资源中。它必须存储为 byte[] 文件。因此,转到你的 Resources.Designer.cs 文件并确保它看起来像这样:

internal static byte[] BebasNeueRegular {
        get {
            object obj = ResourceManager.GetObject("BebasNeueRegular", resourceCulture);
            return ((byte[])(obj));
        }
    }

然后在你创建 PDF 的班级中,使用 iText 设置你的字体PdfFontFactory

PdfFont font = PdfFontFactory.CreateFont(Properties.Resources.BebasNeueRegular, true);
doc.SetFont(font);