2009-04-07 52 views
6

estoy usando Microsoft.Reporting.WebForms.LocalReport para generar un poco de PDF, todo funciona como un amuleto, pero ahora el marketing malvado quiere usar una fuente personalizada (están usando una locura argumentos como "identidad corporativa" y cosas así).Cómo incrustar una fuente en un PDF con RDLC

Ya Goggled alrededor y ahora sé que

  • NECESITO ReportViewer 2008 SP1 o superior
  • la fuente tiene que ser marcado como incrustación permitido
  • la fuente tiene que ser TrueType

pero todavía no funciona. Creo que RDLC no es compatible con esta característica, ¿alguien sabe si este es el caso? desafortunadamente no puedo usar los informes del lado del servidor porque me falta un servidor de informes.

tia

+0

¿Encontró una solución? Tener el mismo problema ... – gsharp

+1

Esto nos funciona: estamos usando la versión de Microsoft Reporting incluida con Visual Studio 2010. –

Respuesta

5

Incorporación de las obras de la fuente con Microsoft Reporting 2010 o más tarde las siguientes restricciones se siguen aplicando

  • fuente debe ser marcado como incrustación permitió
  • fuente debe ser de tipo TrueType

Puede experimentar el problema de que su fuente esté incrustada pero su PDF aún muestra texto en Arial. Esto me sucedió después de que instalé algunas fuentes nuevas en Windows Server 2008 R2, el reinicio de la AppPool (ASP.NET MVC) no resolvió este problema. Se necesitaba un reinicio del servidor.

0

que he hecho una prueba sencilla utilizando la fuente Arial Narrow con Visual Studio 2008 y funcionó bien. He probado el PDF generado en la máquina virtual XP que no tiene la fuente y se muestra bien. Quizás es un problema con la fuente?

Hmm, quizás es esto: en mi prueba he usado Winforms.LocalReport not WebForms. Tal vez ese es el truco?

0

Estaba teniendo el mismo problema, pero he descubierto que no es necesario incrustar la fuente. El problema fue con el atributo Font Face en el HTML. El editor HTML que estábamos usando genera la etiqueta de fuente así:

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

que estaba bien para el Visor de informes, pero para producir un archivo PDF, es necesario tener este aspecto:

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

Agregué el código para reemplazar los valores de los atributos antes de que se vinculó con el informe:

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"); 
Cuestiones relacionadas