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();