c# - 无法在 iText7 Visual Studio 中使用自定义字体
问题描述
我正在 Visual Studio 上创建一个应用程序,并添加了一个使用 iText7 在按钮单击事件上创建 PDF 的函数。我正在使用我的资源中的自定义字体,并且在通过 Visual Studio 调试时使用路径“../../Resources.[FontName].ttf”可以正常工作,但是当我运行应用程序文件时出现错误这么说the resource or file cannot be found
。我认为这是因为该文件存储在 .resx 文件中,并且无法通过 Visual Studio 外部的路径(如上所示)访问。我可以使用什么路径来访问字体文件,以便它通过交付的应用程序在 Visual Studio 之外工作?
解决方案
我想我会分享我用来解决我自己问题的解决方案,以防有人遇到同样的问题。
这很简单。我将字体 .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);
推荐阅读
- laravel - 更新期间的 Laravel 错误 - 未定义的变量:id
- typescript - 如何将任何字符串选项添加到打字稿文字字符串枚举?
- python - 根据 Pandas 中的 3 个常见列值连接 3 个单独的 DataFrame
- javascript - 没有导出成员 OpaqueToken
- c# - 反序列化同一字段的字符串和字符串数组
- javascript - Node.js、POST 和 DELETE 请求
- python-3.x - 调用 CF API 登录一次性密码时出错
- stripe-payments - 这是接受一次性付款的可接受方式吗?
- paraview - Paraview:将轴添加到与方向轴不对齐的平面
- python - Django - 如何将自定义对象分配为模型属性并在该对象中获取该模型实例?