Вопрос

я использую Microsoft.Reporting.WebForms.LocalReport для создания PDF-файла, все работает как шарм, но теперь злой маркетинг хочет использовать собственный шрифт (они используют такие сумасшедшие аргументы, как «фирменный стиль» и все такое).

я уже вытаращил глаза и теперь знаю это

  • мне нужен ReportViewer 2008 SP1 или более поздняя версия
  • шрифт должен быть помечен как разрешенный для встраивания
  • шрифт должен быть TrueType

но это все равно не работает.Я уверен, что RDLC не поддерживает эту функцию. Кто-нибудь знает, так ли это?к сожалению, я не могу использовать отчеты на стороне сервера, потому что мне не хватает сервера отчетов.

Тиа

Это было полезно?

Решение

Встраивание шрифтов работает с Microsoft Reporting 2010 или более поздней версии, но по-прежнему применяются следующие ограничения.

  • Шрифт должен быть помечен как разрешенный для встраивания.
  • Шрифт должен быть типа TrueType.

У вас может возникнуть проблема, заключающаяся в том, что ваш шрифт внедряется, но ваш PDF-файл по-прежнему отображает текст в формате Arial.Это случилось со мной после того, как я установил несколько новых шрифтов на Windows Server 2008 R2, перезапуск AppPool (ASP.NET MVC) не решил эту проблему, потребовался перезапуск сервера.

Другие советы

Я провел простой тест с использованием шрифта Arial Narrow в Visual Studio 2008, и он работал нормально.Я протестировал сгенерированный PDF-файл на виртуальной машине XP, на которой нет шрифта, и он отобразился нормально.Возможно, проблема в шрифте?

Хм, возможно, дело в следующем: в своем тесте я использовал Winforms.LocalReport, а не WebForms.Возможно, в этом и есть хитрость?

У меня была та же проблема, но я обнаружил, что шрифт не нужно встраивать.Проблема заключалась в атрибуте Font Face в HTML.Редактор HTML, который мы использовали, сгенерировал тег Font следующим образом:

<font face="Impact,Charcoal,sans-serif" size="6">Impact </font>

Для средства просмотра отчетов это было нормально, но для создания PDF-файла он должен был выглядеть так:

<font face="Impact" size="6">Impact </font>

Поэтому я добавил код для замены значений атрибута до его привязки к отчету:

htmlValue = htmlValue.Replace("Impact,Charcoal,sans-serif", "Impact")
               .Replace("Arial,Helvetica,sans-serif", "Arial")
               .Replace("Georgia,serif", "Georgia")
               .Replace("Verdana,Geneva,sans-serif", "Verdana")
               .Replace("'Courier New',Courier,monospace", "Courier New")
               .Replace("'Lucida Console',Monaco,monospace", "Lucida Console")
               .Replace("Tahoma,Geneva,sans-serif", "Tahoma")
               .Replace("'Times New Roman',Times,serif", "Times New Roman")
               .Replace("'Trebuchet MS',Helvetica,sans-serif", "Trebuchet MS");
  • Шрифт должен быть помечен как разрешенный для встраивания.
  • Шрифт должен быть типа TrueType.
  • Добавьте свой шрифт в шрифты сервера Windows

Если вы выполнили все вышеперечисленное, а шрифт не отображается в файле RDLC отчета в формате PDF,

Возможно, вам нужно перезагрузить сервер, у меня это работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top