##Servicio local de impresión y envío de CFDI ###Aviso legal El contenido de este documento describe una tecnología propiedad de Induxsoft®, políticas y procedimientos o bien ofrece información de último momento o complementaria a la documentación. En lo concerniente al software al que este documento podría hacer referencia, es propiedad de sus respectivos titulares, por lo que está sujeto a sus correspondientes licencias. Esta documentación se proporciona “tal cual”, sin garantías de ningún tipo, expresa o implícita, incluyendo pero no limitando a garantías de comercialización, idoneidad para un propósito particular y no infracción. En ningún caso el propietario [Induxsoft®] o los autores del mismo serán responsables de ninguna reclamación, daños u otras responsabilidades, ya sean en un litigio, agravio o de otro modo, que surja de o en conexión con el uso que se dé a la información que aquí se proporciona. Copyright ® Induxsoft ® México 2017 Induxsoft® es una marca registrada y concesionada a Induxsoft Data Services S de RL de CV Los demás nombres y marcas comerciales a los que se podría hacer referencia en este documento son propiedad de sus respectivos titulares. ###Contenido [Próposito](#proposito) [Reglas y plantillas](#reglas) * [Reglas](#reglas2) * [Plantillas](#plantillas) * [Macros predeterminadas](#macros) * [Addenda básica de Induxsoft](#addenda) [Herramientas](#herramientas) * [Utilidad de configuración](#utilidad) * [Cfdiprintconfig.exe](#printconfig) * [Visor de CFDI](#visor) * [cfdi.view.details.exe](#cfdi_details) * [Línea de comando](#linea_uno) * [Generación masiva de representaciones impresas](#representaciones) * [PrintCFDIs.exe](#printcfdi) * [Línea de comando](#linea_dos) * [Envío por correo electrónico](#correos) * [induxsoft.cfdimail.exe](#cfdimail) <div id='proposito' /> ####Propósito El servicio local de impresión de CFDI [SLI-CFDI] permite generar la representación impresa de archivos XML de CFDI mediante la transformación XSLT y su “renderización” a PDF de manera automatizada. Todas las aplicaciones de Induxsoft que producen o administran CFDI en México utilizan el mismo sistema, por lo que las reglas y sus conjuntos son aplicables al equipo local y no solo a un programa en particular. Use el SLI-CFDI para automatizar la producción de documentos en PDF a partir de CFDI. <div id='reglas' /> ####Reglas y plantillas <div id='reglas2'/> #####Reglas Los conjuntos de reglas para la impresión de CFDI se alojan en %ProgramData%\Induxsoft\machine\cfdi. Cada conjunto de reglas es un archivo XML con extensión .prncfdi que contiene una o varias reglas aplicables al CFDI que se intente imprimir. Una regla es la condición que debe cumplirse para que se seleccione una plantilla en particular. Por ejemplo, podría definir una regla que indique que debe usarse la plantilla de impresión “mi_factura_especial.xsfo” cuando el CFDI sea versión 3.3 con complemento de Pago, el receptor un determinado RFC y la serie del documento X. La evaluación de las reglas se realiza secuencialmente (de la primera a la última) y se aplica la primera que se cumpla. El conjunto de reglas predeterminado (que se usará en ausencia de uno especificado a la aplicación de impresión) se configura en el archivo _default_rules.cfg y es únicamente el nombre del archivo a utilizar. Desde FactuDesk V10 en Configuración/ Local/ factudesk.config/ Aplicaciones asociadas/ Argumentos para visor de CFDI/ Valor El valor: "@cfdi_file" @rfc.prncfdi define como predeterminado al conjunto de reglas “_Plantillas_Predeterminadas”. Para que la configuración local respete el conjunto de reglas personalizado debe colocarse en valor: "@cfdi_file”, de esta manera la configuración toma la regla que se coloca como predeterminada en FactuDesk V10/ Configuración/ Impresión de CFDI/ Conjunto de reglas predeterminadas. <div id='plantillas'/> #####Plantillas Por su parte, las plantillas son “hojas de estilo de transformación” (XSLT del W3C) que producen archivos XML de “Formating Objects” (XSL FO W3C) utilizadas para la producción de documentos PDF. Vea el diagrama del proceso de generación de la representación impresa en: [Enlace](https://induxsoft.net/?idpf=2da9c490eb1e460c9ad50ed0fdb2fdf6) Puede utilizar Devkron Doc para producir plantillas (xsfo) en un entorno WYSIWYG. [Enlace](https://induxsoft.net/?idpf=c8a1a6eedba5415299d4b2912cb83ff2) <div id='macros'/> #####Macros predeterminadas Para cubrir los requerimientos en cuanto a la producción de representaciones impresas de CFDI ha sido necesario extender la funcionalidad de base de XSLT y XPath sin comprometer la escalabilidad y el apego a los estándares. Por lo que algunos valores que no pueden calcularse o no se encuentran en el XML son insertados por el motor en tiempo de ejecución del servicio local de impresión y envío de CFDI a través del reemplazo de cadenas de texto [macros] en el XML de los XSLT [XSFO]. * **@marca_induxsoft_logo** Esta macro es reemplazada por la imagen codificada en Base64 del logotipo configurado. Es útil para permitir que el usuario defina el logo en una plantilla [XSLT] existente sin tener que modificarla. * **@marca_induxsoft_cfdi_total_numeros_en_letras** Esta macro es reemplazada por el texto correspondiente a la parte entera del total del CFDI en letras. * **@marca_induxsoft_cfdi_total_fraccion_en_letras** Esta macro es reemplazada por el texto correspondiente a la parte decimal del total del CFDI en la forma xx/100. <div id='addenda'/> #####Addenda básica de Induxsoft El reemplazo de cadenas en un texto (ya sea en el XSLT o en el XML FO) consume más recursos y se aparta un poco del estándar, por lo que no es la mejor estrategia para incorporar datos que no están en el esquema original de CFDI, así que a menos que la aplicación de Induxsoft emisora del CFDI incorpore una Addenda personalizada, siempre se incluye la “Addenda básica de Induxsoft” que permite incluye notas y los importes en letras. Descargue un CFDI emitido y timbrado por Induxsoft y analice los datos adicionales disponibles. <div id='herramientas' /> ####Herramientas <div id='utilidad'/> ####Utilidad de configuración <div id='printconfig' /> ######[cfdiprintconfig.exe] Ofrece una interfaz de usuario para crear, modificar y en general administrar los conjuntos de reglas del equipo. No admite argumentos de línea de comando. Puede invocarse como: %ProgramData%\Induxsoft\machine\winShell\v10\cfdiprintconfig.exe <div id='visor'/> ####Visor de CFDI <div id='cfdi_details' /> ######cfdi.view.details.exe Permite ver y regenerar la representación impresa, así como el XML subyacente a un CFDI (versión 3.2 y 3.3). Si existe un archivo PDF cuyo nombre es igual al UUID del CFDI indicado, el programa lo mostrará inmediatamente, en caso contrario intentará generarlo. Utiliza los conjuntos de reglas configurados en el equipo o la plantilla que se le especifique explícitamente. <div id='linea_uno' /> ######Línea de comando %ProgramData%\Induxsoft\machine\winShell\v10\cfdi.view.details.exe [CFDI] [Plantilla] [opt] CFDI. Es el archivo XML (incluyendo ruta) de un CFDI, si se omite, el programa solicitará se elija alguno desde el sistema de archivos. Plantilla. Es el archivo (XML o XSLT, incluyendo ruta) de la plantilla (XSLT) o el conjunto de reglas (XML) que debe usarse (se selecciona en la interfaz de usuario). Si se omite, el programa elegirá el conjunto de reglas predeterminadas para el equipo o bien, la primera ocurrencia de la lista. opt. Es una de las siguientes opciones: * -r Indica que aunque exista el archivo de representación impresa (PDF), se forcé la regeneración. * -p Despliega el diálogo de impresión inmediatamente. * -r-p. Fuerza la regeneración y despliega el diálogo de impresión. <div id='representaciones'/> #####Generación masiva de representaciones impresas <div id='printcfdi' /> ######PrintCFDIs.exe Permite producir los archivos PDF correspondientes a uno o más CFDI. <div id='linea_dos' /> ######Línea de comando %ProgramData%\Induxsoft\machine\winShell\v10\ PrintCFDIs.exe [archivo_lista_cfdi] [ubicación_salida] [plantilla_o_reglas_a_utilizar] [opt] archivo_lista_cfdi. Es el nombre y ruta de un archivo de texto simple que contiene una lista de archivos CFDI (uno por cada línea, incluyendo ruta). ubicacion_salida. Es la carpeta en el sistema de archivos de salida de los archivos PDF, si la carpeta no existe se creará plantilla_o_reglas_a_utilizar. Es el nombre de un conjunto de reglas o de una plantilla específica a utilizar. opt. Es alguna de las siguientes opciones: * -g Ejecuta la generación de los archivos PDF según lo indicado (si el archivo PDF existe lo omite) * -gc Ejecuta la generación y además copia los archivos XML a la ubicación de salida * -gr Igual que la opción –g, sólo que si el archivo PDF existe lo reemplaza * -grc Igual que –gc, sólo que si el archivo PDF o XML ya existen los reemplaza <div id='correos'/> #####Envío por correo electrónico <div id='cfdimail' /> ######induxsoft.cfdimail.exe Envía un mensaje de correo electrónico con archivos adjuntos. ######Línea de comando induxsoft.cfdimail.exe [Opción1] ... [OpciónN] Opción es alguna de las siguientes: * -config. Abre el diálogo de configuración, si se indica esta opción se ignoran todas las demás que pudieran haber y la aplicación termina al cerrar el diálogo. * -attatch=archivo. Adjunta el archivo indicado (debe incluir ruta completa), puede haber más de un parámetro attatch en la llamada. * -to=direcciones. La lista de destinatarios (correo electrónico1;...correo;correoN). Sólo debe indicarse una vez. * -cc=direcciones. Lista de direcciones para el campo CC * -cco=direcciones. Lista de direcciones para el campo CCO * -reply=dirección. Información del remitente (dirección de respuesta). El remitente depende de la configuración del SMTP. * -subject=Asunto. Asunto del correo electrónico * -body=texto. Texto para el cuerpo del mensaje * -body-html=archivo.Archivo html para el cuerpo del mensaje * -uuid=uuid. Indica la UUID de un CFDI para que se incluyan todos los archivos que tengan ese nombre y las extensiones especificadas por la opción –ext en la ubicación –path. * -ext=lista extensiones. La lista de extensiones de archivos cuyo nombre sea la uuid indicada, si se omite, se asume que son .xml y .pdf. * -path=ruta. La ubicación en donde se buscarán archivos con nombre –uuid y extensiones –ext, si se omite, se asumirá Documentos\Mis CFDI SAT (México) como la carpeta de búsqueda. * -go. Intentará realizar el envío del mensaje sin desplegar interfaz de usuario con la información de configuración y argumentos disponible, en caso de que no sea posible se mostrará la interfaz. * -hide. Igual que –go, sólo que en caso de fallo no indica nada y la aplicación termina. Cada argumento debe entrecomillarse cuando en las rutas hay espacios en blanco.