Título: Ayuda con tipo de letra al exportar un datagrid a pdf
Publicado por: joalbela en 8 Marzo 2011, 21:46 pm
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
Título: Re: Ayuda con tipo de letra al exportar un datagrid a pdf
Publicado por: Shell Root en 8 Marzo 2011, 21:50 pm
Y como hicisteis para exportarlo? Alguna librería u objeto?
Título: Re: Ayuda con tipo de letra al exportar un datagrid a pdf
Publicado por: joalbela en 8 Marzo 2011, 22:25 pm
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
Título: Re: Ayuda con tipo de letra al exportar un datagrid a pdf
Publicado por: seba123neo en 8 Marzo 2011, 22:48 pm
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 iTextSharp
busca en internet que hay mucho de esta libreria, fijate esto:
iTextSharp - Working with Fonts (http://www.mikesdotnetting.com/Article/81/iTextSharp-Working-with-Fonts)
saludos.
Título: Re: Ayuda con tipo de letra al exportar un datagrid a pdf
Publicado por: joalbela en 8 Marzo 2011, 23:02 pm
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
Título: Re: Ayuda con tipo de letra al exportar un datagrid a pdf
Publicado por: seba123neo en 8 Marzo 2011, 23:04 pm
no hacia falta que hagas otro post, podes editar el otro.
el geshi para C# es [ code=csharp] [ /code]
Título: Re: Ayuda con tipo de letra al exportar un datagrid a pdf
Publicado por: [D4N93R] en 9 Marzo 2011, 20:53 pm
Bloqueo el tema porque ya tienes este que habla sobre el mismo tema.
https://foro.elhacker.net/net/insertar_en_una_nueva_hoja_de_al_pasar_de_una_letra_a_a_b_y_asi_sucesivamente_c-t321232.0.html;msg1588848#new
Un saludo
|