2016-01-22 2 views
1

В моем приложении ASP.NET MVC 5 я пытаюсь создать простой PDF. Моя проблема заключается в том, что после развертывания моего приложения в Azure функция, которая создает файлы PDF, перестает работать. Существует исключение: «Данные шрифта не могут быть получены». Поэтому шрифт, который я использую (Times New Roman), не наблюдается сервером приложений. Мой вопрос - как это исправить? В моем проекте я добавляю папку под названием «Шрифты» с 4 типами шрифта Times New Roman. В коде используется только один шрифт:ASP.NET MVC PDFsharp создание PDF: не удается добавить шрифт

XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always); 
string Font = HostingEnvironment.MapPath(@"~/Fonts/TIMESBD.TTF"); 
XFont BasicFont = new XFont(Font, 16, XFontStyle.Regular, options); 

Проблема не существует на локальном хосте. Думаю, мне нужно каким-то образом «зарегистрировать» мой шрифт в моем приложении, но я не знаю, как это сделать.

+0

Вы используете облачные сервисы или приложения? У меня была аналогичная проблема, и это сводится к разрешениям. У вас больше контроля над облачными сервисами. Хотя, я думаю, некоторые изменения вокруг этого были сделаны в недавнем обновлении pdfsharp, но я его не тестировал. – Frans

ответ

0

Убедитесь, что шрифт Time New Roman установлен на сервере - или используйте частный шрифт (включая шрифт с вашим проектом).

Предоставить общий доступ к шрифту Time New Roman для группы пользователей и перезапустить сервер.

Посмотрите, поможет ли это.

0

Чтобы исправить это, запустите приложение в режиме полного доверия (если у вас есть полный контроль над сервером) или используйте только частные шрифты.

Чтобы использовать частные шрифты, просто реализуйте IFontResolver в собственном классе. Чтобы получить IFontResolver, обновите до последней бета-версии PDFsharp 1.50.

Пример кода на PDFsharp форуме:
http://forum.pdfsharp.net/viewtopic.php?p=8961#p8961

И пример реализации, что делает вещи проще в моем блоге:
http://developer.th-soft.com/developer/ezfontresolver-a-generic-font-resolver-for-pdfsharp-and-migradoc/

Если вы хотите придерживаться вашей старой версии PDFsharp, то посмотрите на XPrivateFontCollection. Пример кода на сайте PDFharp:
http://pdfsharp.net/wiki/PrivateFonts-sample.ashx
Я рекомендую переключиться на PDFsharp 1.50, потому что обработка шрифтов была улучшена для Cloud, а более ранняя версия 1.3x все еще может иметь проблемы с разрешением, даже если вы предоставляете частные шрифты.

Смежные вопросы