Infragistics error exporting to PDF in Windows Azure

Tras 2 meses!!! con un problema grave en el “reporting” de Infragistics en una aplicación web alojada en un Windows Azure como servicio web (no en una máquina virtual Azure), el soporte técnico ha podido darme una solución que reproduzco aquí para el que tenga el mismo problema: básicamente, cuando exportamos un informe a PDF o XPS aparece el error “An error occurred while exporting the report”, sin embargo, al exportar a Excel, funciona correctamente.

SOLUCIÓN:

It appears that  in order to be able to export to PDF in Azure, an extra configuration is needed.

Azure environments do not have access to system fonts but they’re needed in order to print to PDF ,so it is necessary to include any used fonts into the project.

 

You can find a detailed explanation on how to dynamically load a specific font from the “Font Loader” section of the following document:

http://dl.infragistics.com/community/Reporting/ReleaseNotes/SRNovember2013/Reporting_ReleaseNotes_13.1.20131.1058_EN.pdf

In the example and additional class is added: “MyFontLoader” in order to add the Verdana Font, which is used for the report.

[FontLoader]
public class MyFontLoader: IFontLoader
{
public bool TryGetExternalEmbeddedFonts(string fontFamily, ref FontWeight fontWeight, ref FontStyle fontStyle, out byte[] data)
{
const string verdana = “inubol.Web.verdana.ttf”;
const string verdanaBold = “inubol.Web.verdanab.ttf”;

if (fontFamily == “Verdana”)
{
var fontName = (fontWeight == FontWeight.Bold) ? verdanaBold : verdana;
var assembly = Assembly.GetExecutingAssembly();

using (var stream = assembly.GetManifestResourceStream(fontName))
{
var bytes = GetBytes(stream);
data = bytes;
}

return true;
}

data = new byte[0];
return false;
}

private static byte[] GetBytes(Stream stream)
{
using (var memoryStream = new MemoryStream())
{
stream.CopyTo(memoryStream);
return memoryStream.ToArray();
}
}
}

 

En el proyecto se han de añadir la fuentes (verdana.ttf y vernadab.ttf) como “embeded resource”

 

2 meses de espera para la solución!!

🙂

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s