Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/12/2012, 19:42
Blade1982
 
Fecha de Ingreso: marzo-2011
Ubicación: Mexico
Mensajes: 11
Antigüedad: 13 años, 1 mes
Puntos: 0
Exclamación Respuesta: pasar de XML a PDF o a un impreso web

Gracias por la respuesta, lo hemos intentado ya con iTextSharp a traves de un formulario PDF, y un documento XML. Mi duda ahora es la siguiente:

Si tengo el xml con una estructura como la siguiente:
Código:
<Codigo>
    <Cliente nombre='minombre'/>
    <Concepto>
       <Conceptos descripcion='PIEZA'>
    </Concepto>
</Codigo
¿Como puedo hacer para tomar el parametro "nombre" del cliente e insertarlo en el
PDF usando iTextSharp y C#/ASP.NET?

Nota: Mi codigo esta de la siguiente manera:
Código:
//Abrimos el XML generado en el archivo anterior
                    XmlDocument objXml = new XmlDocument();
                    objXml.Load(Server.MapPath("~/Facturas/FAC" + f_fac.ToString() + "-" + factu.ToString() + ".xml"));

                    string sFuente = objXml.SelectSingleNode(Server.MapPath("~/PlantillaPDF/amaCFDI.pdf")).InnerText;
                    string sDestino = objXml.SelectSingleNode(Server.MapPath("~/FacturaPDF/FAC" + f_fac.ToString() + "-" + factu.ToString() + ".pdf")).InnerText;

                    FileStream Archivo = new FileStream(sDestino, FileMode.OpenOrCreate);
                    PdfReader DocReader = new PdfReader(sFuente);
                    PdfStamper DocStamp = new PdfStamper(DocReader, Archivo);

                    /* ---------- Recorremos los nodos para los valores de los campos ---------- */
                    XmlNodeList ListaNodos = objXml.GetElementsByTagName("Emisor");

                    //Variables de nodo
                    string sCampo = "";
                    string sValor = "";

                    foreach (XmlNode Nodo in ListaNodos)
                    {
                        XmlNode NodoActual = (XmlNode)Nodo;
                        sCampo = NodoActual.SelectSingleNode("RazonSocialEmisor").InnerText;
                        sValor = NodoActual.SelectSingleNode("Emisor/@Nombre").InnerText;
                        DocStamp.AcroFields.SetField(sCampo, sValor);
                        NodoActual = null;
                    }

                    //Cerramos el documento PDF creado
                    DocStamp.FormFlattening = true;
                    DocStamp.Close();