我正在使用MigraDoc使用提供的数据创建PDF到我在C#中的方法。对于大多数字体,PDF生成得很好,但我在系统上安装了一个名为“Dancing Script”的新字体。该字体在系统上可用,我可以将它与MS Word一起使用。我在SO上也看到了类似于我的查询的其他条目,但它们没有解决我的问题:
一个例子是: MigraDoc: Setting font for a document
我使用正确的名称,我的字体已安装并可在Word中使用。它是TTF字体。 MigraDoc识别系统中可用的字体,但在渲染PDF时,它将其呈现为san serif字体。
我在使用的字体可以在这里找到: http://www.impallari.com/dancing
我的原始代码是:
if (MigraDoc.DocumentObjectModel.Font.Exists(letter.fontName))
{
paragraph.Format.Font = new MigraDoc.DocumentObjectModel.Font(letter.fontName);
}
else
{
paragraph.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial");
}
我也试过这个:
Document document = new Document();
Section section = document.AddSection();
TextFrame tf;
Paragraph paragraph;
if (letter.fontName.ToLower().Equals("courier"))
{
letter.fontName = "Courier New";
}
MigraDoc.DocumentObjectModel.Style style = document.Styles["Normal"];
if (MigraDoc.DocumentObjectModel.Font.Exists(letter.fontName))
{
style.Font.Name = letter.fontName;
style.Font.Name = "Fineliner Script Regular";
}
但在这两种情况下,我都无法将字体渲染到PDF上。我收到了回复:
---- DEBUG ASSERTION FAILED ----
----断言短信---- 值与从字体图像检索的信息不同。 ----断言长信息----
答案 0 :(得分:1)
我设法通过重新启动服务器来解决问题。这真是奇怪,因为字体在Word Pad和其他软件上工作正常,但由于某些原因MigraDoc无法重新启动它。希望这个简单的提示可以帮助遇到同样问题的其他人。
答案 1 :(得分:0)
我尝试使用名为style.Font.Name = "Dancing Script";
的名称,MigraDoc在PDF中正确使用了它。
您没有显示任何代码。