Autor
|
Tema: Ayuda con tipo de letra al exportar un datagrid a pdf (Leído 7,790 veces)
|
joalbela
Desconectado
Mensajes: 30
|
Hola amigos, tengo un problema lo que pasa es que genere un datagrid y luego lo exporte a pdf y me gustaria poder cambiarle el estilo de la letra por una curier new ya que no he podido hacerlo.
Muchas gracias
|
|
|
En línea
|
Jorge MB
|
|
|
Shell Root
|
Y como hicisteis para exportarlo? Alguna librería u objeto?
|
|
|
En línea
|
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
|
|
|
joalbela
Desconectado
Mensajes: 30
|
private void btnExportar_Click(object sender, EventArgs e) { DateTime hora = DateTime.Now; string fcha_ttal = Convert.ToDateTime(hora).Day + "/" + Convert.ToDateTime(hora).Month + "/" + Convert.ToDateTime(hora).Year; Document doc = new Document (PageSize .A3, 9, 9, 10, 10); string filename = "C:\\Temp\\Listado Total.pdf"; iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(@"C:\Mis documentos\Biblia_productos\Biblia_productos\Images\marion.JPG"); jpg.Alignment = iTextSharp.text.Image.ALIGN_LEFT ; Chunk tamaño = new Chunk (" LISTA DE PRODUCTOS CODIFICADOS EN " + fcha_ttal + "", FontFactory .GetFont("COURIER", 12)); try { FileStream file = new FileStream (filename, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); PdfWriter.GetInstance(doc, file); doc.Open(); doc .Add(new Paragraph (tamaño )); doc.Add(jpg); GenerarDocumento(doc); Process.Start(filename); } catch (Exception ex) { MessageBox.Show(ex.Message); } doc.Close(); } //Función que genera el documento Pdf public void GenerarDocumento(Document document) { PdfPTable datatable = new PdfPTable (dataGridView1 .ColumnCount); datatable.DefaultCell.Padding = 1; float[] headerwidths = GetTamañoColumnas(dataGridView1); datatable.SetWidths(headerwidths); datatable.WidthPercentage = 100; datatable.DefaultCell.BorderWidth = 3; datatable.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT; for (int i = 0; i < dataGridView1.ColumnCount; i++) { datatable.AddCell(dataGridView1.Columns[i].HeaderText); } datatable.HeaderRows = 0; datatable.DefaultCell.BorderWidth = 1; for (int i = 0; i < dataGridView1.RowCount - 1; i++) { for (int j = 0; j < dataGridView1.ColumnCount; j++) { datatable.AddCell(dataGridView1[j, i].Value.ToString()); //string nmbre_prdcto = datatable.AddCell(dataGridView1[j, i].Value.ToString()); //string primera = nmbre_prdcto.Substring(1, 1); } datatable.CompleteRow(); } document.Add(datatable); } public float[] GetTamañoColumnas(DataGridView dg) { float[] values = new float[dg .ColumnCount]; for (int i = 0; i < dg.ColumnCount; i++) { values[i] = (float)dg.Columns[i].Width; } return values; }
ESTE FUE EL CODIGO CON EL QUE EXPORTE EL DATAGRID AL PDF
|
|
« Última modificación: 9 Marzo 2011, 14:48 pm por Novlucker »
|
En línea
|
Jorge MB
|
|
|
seba123neo
|
trata de poner el codigo fuente entre el geshi asi es mas claro de leer. no pusiste que libreria estas usando, porque cuando haces un "new Document" o "new PdfPTable" esos metodos forman parte de una libreria externa al visual studio que debes estar usando. por lo que me acabo de fijar la libreria se llama iTextSharpbusca en internet que hay mucho de esta libreria, fijate esto: iTextSharp - Working with Fontssaludos.
|
|
« Última modificación: 8 Marzo 2011, 22:50 pm por seba123neo »
|
En línea
|
|
|
|
joalbela
Desconectado
Mensajes: 30
|
public void GenerarDocumento(Document document) { PdfPTable datatable = new PdfPTable (dataGridView1 .ColumnCount); datatable.DefaultCell.Padding = 1; float[] headerwidths = GetTamañoColumnas(dataGridView1); datatable.SetWidths(headerwidths); datatable.WidthPercentage = 100; datatable.DefaultCell.BorderWidth = 3; datatable.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT; for (int i = 0; i < dataGridView1.ColumnCount; i++) { datatable.AddCell(dataGridView1.Columns[i].HeaderText); } datatable.HeaderRows = 0; datatable.DefaultCell.BorderWidth = 1; for (int i = 0; i < dataGridView1.RowCount - 1; i++) { for (int j = 0; j < dataGridView1.ColumnCount; j++) { datatable.AddCell(dataGridView1[j, i].Value.ToString()); //string nmbre_prdcto = datatable.AddCell(dataGridView1[j, i].Value.ToString()); //string primera = nmbre_prdcto.Substring(1, 1); } datatable.CompleteRow(); } document.Add(datatable); } public float[] GetTamañoColumnas(DataGridView dg) { float[] values = new float[dg .ColumnCount]; for (int i = 0; i < dg.ColumnCount; i++) { values[i] = (float)dg.Columns[i].Width; } return values; }
claro uso ITextSharp
|
|
« Última modificación: 9 Marzo 2011, 15:02 pm por Novlucker »
|
En línea
|
Jorge MB
|
|
|
seba123neo
|
no hacia falta que hagas otro post, podes editar el otro.
el geshi para C# es [ code=csharp] [ /code]
|
|
« Última modificación: 8 Marzo 2011, 23:06 pm por seba123neo »
|
En línea
|
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
fuentes de letra del tipo lcd????
Diseño Gráfico
|
Joe Black
|
0
|
2,925
|
2 Marzo 2006, 04:39 am
por Joe Black
|
|
|
Tipo de letra por defecto
Programación Visual Basic
|
lipman
|
6
|
3,765
|
1 Enero 2007, 12:56 pm
por lipman
|
|
|
Tipo de letra
Diseño Gráfico
|
MasterPunk
|
5
|
4,202
|
30 Noviembre 2009, 16:23 pm
por Azielito
|
|
|
Tipo de Letra
Dudas Generales
|
maxx93
|
3
|
11,550
|
17 Junio 2010, 22:21 pm
por maxx93
|
|
|
Decimales en datagrid y exportar a pdf c#
« 1 2 »
.NET (C#, VB.NET, ASP)
|
joalbela
|
10
|
8,498
|
15 Marzo 2011, 19:59 pm
por [D4N93R]
|
|