Приведение System.Drawing.Font к MigraDoc.DocumentObjectModel.Font?

Мне было интересно, почему я не могу привести System.Drawing.Font к MigraDoc.DocumentObjectModel.Font. Мне нужно загрузить определенный шрифт в моем приложении. Я хочу сделать это через стили, как это:

PrivateFontCollection pfc;
FontFamily family = LoadFontFamily(@".\fonts\TitilliumWeb\TitilliumWeb-Black.ttf", out pfc);
System.Drawing.Font titilliumWeb = new System.Drawing.Font(family, 11.0f);

style.Font.ApplyFont((MigraDoc.DocumentObjectModel.Font) titilliumWeb);

Или даже лучше, я могу как-нибудь легко создать шрифт MigraDoc?

Нашел ссылку о том, как добавить шрифты в MigraDoc, но это мне не очень помогло http://www.pdfsharp.net/wiki/PrivateFonts-sample.ashx

1 ответ

Решение

Приведение работает, только если один класс был получен из другого или реализует интерфейс.

Техника, показанная в примере с частными шрифтами, работает (в настоящее время она работает только со сборкой WPF, поэтому, если вы используете сборку GDI+ из PDFsharp/MigraDoc, просто переключитесь на сборку WFP).

Вы регистрируете нужные шрифты в PrivateFontCollection. Вы просто даете имя шрифта в определениях стилей, и MigraDoc будет использовать шрифты для создания файлов PDF.

Другие вопросы по тегам