como generar un pdf con c#

tema enviado por viewadri en C#
tema iniciado el 03/12/2007

Hola, me dejaròn a hacer un proyecto en donde tengo que generar un pdf con itextsharp, osea, en mi formulario tengo 2 datagridview, pero los datos no son estaticos, son variables, osea, como pueden ser 2 datos en la tabla como pueden ser "n"datos, los datos que aparecen en las tablas los cargo de un archivo xml, mi duda es como lo puedo hacer, o si saben de algun tutorial o ejemplos, de verdad que se los agradecería mucho. o si alguien me podría dar el codigo, la verdad me urge y ya tengo como una semana q no lo puedo acabar. :(. Necesito que al generar el pdf los cargue con las tablas y datos que jalo del xml. Me han dicho que tengo que hacer una tabla dinamica pero la verdad no sé, y ya stoy desesperada.

Este es mi codigo:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.IO;

using System.Xml;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Collections;

//importamos

using iTextSharp.text.pdf;

using iTextSharp.text;

 

namespace xmlParser

{

/// <summary>

/// Summary description for Form1.

/// </summary>

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void btnGenerar_Click(object sender, EventArgs e)

{

OpenFileDialog dlgAbrir = new OpenFileDialog();

dlgAbrir.Filter = "Archivos XML|*.xml|Archivos de texto|*.txt|Todos los archivos|*.*";

dlgAbrir.Title = "Abrir archivo XML";

if (dlgAbrir.ShowDialog() == DialogResult.OK)

{

txtArchivo.Text = dlgAbrir.FileName.ToString();

try

{

XmlDocument doc = new XmlDocument();

doc.Load(txtArchivo.Text);

XmlNodeList inconsistencias = doc.GetElementsByTagName("inconsistencias");

foreach (XmlNode nodo in inconsistencias)

{

XmlElement documento = (XmlElement)nodo;

string numeroPrestamo = documento.GetElementsByTagName("numeroPrestamo")[0].InnerText;

XmlNodeList inconsistencia = documento.GetElementsByTagName("inconsistencia");

foreach (XmlNode nodo2 in inconsistencia)

{

XmlElement nodoTipo = (XmlElement)nodo2;

if (nodoTipo.InnerXml.Contains("errorIntegridad"))

{

string nombreDocumento1 = nodoTipo.GetElementsByTagName("nombre")[0].InnerText;

string nombreDocumento2 = nodoTipo.GetElementsByTagName("nombre")[1].InnerText;

string metadato1 = nodoTipo.GetElementsByTagName("metadato1")[0].InnerText;

string metadato2 = nodoTipo.GetElementsByTagName("metadato2")[0].InnerText;

string valorMetadato1 = nodoTipo.GetElementsByTagName("valorMetadato1")[0].InnerText;

string valorMetadato2 = nodoTipo.GetElementsByTagName("valorMetadato2")[0].InnerText;

string error = nodoTipo.GetElementsByTagName("error")[0].InnerText;

System.Console.WriteLine("Documento 1:" + nombreDocumento1 + " Documento 2:" + nombreDocumento2);

System.Console.WriteLine("Documento 1:" + metadato1 + " Documento 2:" + metadato2);

System.Console.WriteLine("Documento 1:" + valorMetadato1 + " Documento 2:" + valorMetadato2);

string[] fila ={ numeroPrestamo, nombreDocumento1, metadato1, valorMetadato1, nombreDocumento2, metadato2, valorMetadato2, error };

dgvERROR_INT.Rows.Add(fila);

}

else

{

if (nodoTipo.InnerXml.Contains("errorNegocio"))

{

string nombre = nodoTipo.GetElementsByTagName("nombre")[0].InnerText;

string metadato1 = nodoTipo.GetElementsByTagName("metadato1")[0].InnerText;

string valorMetadato1 = nodoTipo.GetElementsByTagName("valorMetadato1")[0].InnerText;

System.Console.WriteLine("Documento 1:" + nombre);

System.Console.WriteLine("Documento 1:" + metadato1);

System.Console.WriteLine("Documento 1:" + valorMetadato1);

string[] fila3 = { nombre, metadato1, valorMetadato1 };

dgvERROR_NEG.Rows.Add(fila3);

}

else

{

}

{

if (nodoTipo.InnerXml.Contains("errorIntegridad"))

{

 

}

System.Console.WriteLine(numeroPrestamo);

}

}

}

}

}

catch (Exception ex)

{

System.Console.WriteLine("Error en XML:" + ex.Message.ToString());

}

}