Erro exportação Report Viewer

28/01/2010

0

Fala galera....

Não sei se é um problema bobo, mas até agora estou quebrando a cabeça pra fazer funcionar.

Criei um relatório no Report Viewer que utiliza a fonte 3 of 9 barcode, (para código de barra), coloquei a fonte na pasta Fonts do Windows. Porém ao exportar para PDF a fonte não aparece, mas já quando exporto para excel fica perfeito.

Alguém tem idéia do que pode ser ?

Obrigado,


Anonymous

Anonymous

Responder

Posts

01/06/2010

Dyego Furletti

Cara se sua App for web tem que fazer uma gambi. No meu caso fiz assim segue um exemplo.  Tem que ter essa assemblys abaixo no caso da web codigo de barra tem que gera um imagem e depois importar para o relatorio.   Mais informações.   dyego_scofield@hotmail.com using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.IO; using System.Drawing; using System.Drawing.Text; using System.Drawing.Imaging; using System.Drawing.Drawing2D; namespace Sistemas { public partial class boleto : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { byte[] x = GeraCodBarras("39996499854126741425209717040019642840000033560", ImageFormat.Bmp); using (Stream s = File.Create(@"c:\cb\teste.bmp")) { s.Write(x, 0, x.Length); } } protected byte[] GeraCodBarras(string data) { return GeraCodBarras(data, ImageFormat.Jpeg); } protected byte[] GeraCodBarras(string data, ImageFormat format) { data = ConverteCodBarras(data); Bitmap codBarra; Graphics gfx; Brush blackBrush; MemoryStream ms; int x = 0; foreach (char c in data) { if (c == 'F' || c == 'f') x++; if (c == 'G' || c == 'g') x += 3; ; } codBarra = new Bitmap(x, 50); gfx = Graphics.FromImage(codBarra); blackBrush = new SolidBrush(Color.Black); ms = new MemoryStream(); gfx.Clear(Color.White); x = 0; foreach (char c in data) { switch (c) { case 'F': { gfx.FillRectangle(blackBrush, x, 0, 1, 50); x++; break; } case 'f': { x++; break; } case 'G': { gfx.FillRectangle(blackBrush, x, 0, 3, 50); x += 3; break; } case 'g': { x += 3; break; } default: break; } } codBarra.Save(ms, format); return ms.ToArray(); } protected string ConverteCodBarras(string codBarras) { string retorno, barra, espaco; string[] barras = { "00110", "10001", "01001", "11000", "00101", "10100", "01100", "00011", "10010", "01010" }; retorno = "FfFf"; if (codBarras.Length % 2 != 0) codBarras = "0" + codBarras; for (int i = 0; i < codBarras.Length; i+=2) { barra = barras[int.Parse(codBarras.Substring(i, 1).ToString())]; espaco = barras[int.Parse(codBarras.Substring(i + 1, 1).ToString())]; for (int j = 0; j < 5; j++) { if (barra.Substring(j, 1).ToString() == "0") retorno += "F"; else retorno += "G"; if (espaco.Substring(j, 1).ToString() == "0") retorno += "f"; else retorno += "g"; } } retorno += "GfFf"; return retorno; } } }
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar