我目前正在编写一小块代码,它生成一个PDF文件。为了遵循设计规范,我需要使用“Helvetica Neue Condensed”字体。由于程序将运行,没有字体安装,我需要使用它作为一个私人字体。
它不起作用。我试过不同的姓氏之类的,但我一次又一次的失败.
byte[] data = File.ReadAllBytes(fontUri);
XPrivateFontCollection.Global.AddFont(data, "#Helvetica Neue Condensed Bold");
当我想用字体的时候。
XFont big = new XFont("Helvetica Neue Condensed Bold", 36, XFontStyle.Regular);
但这件事一次又一次地失败。我已经将该文件导入到我的项目中,它是一个.ttf文件。我搞不懂。
有没有人知道我的问题,也许知道我做错了什么?
发布于 2015-07-13 09:35:44
当您下载PDFsharp源代码包时,您将发现一个使用私有字体的工作示例。
用这个开始吧。
解压缩后参见文件夹"PDFSharp-MigraDocFoundation-1_32\PDFsharp\samples\Samples C#\Based on GDI+\PrivateFonts。
如果您无法使它与您的字体工作,您将至少有一个SSCCE,您可以提交供测试。
源代码可以在这里找到:
http://pdfsharp.codeplex.com/releases
或者使用来自NuGet的PDFsharp 1.50测试版,在这里您可以使用FontResolver来处理私有字体。
参见这里的示例解析器:
发布于 2015-07-13 12:34:11
我已经成功地解决了这个问题。
我使用的是WPF构建,而不是GDI构建。除此之外,Uri是错误的,姓氏被错误地输入。
https://stackoverflow.com/questions/31379359
复制相似问题