XLSForm Paper Form Generator
Genera documentos imprimibles (Google Docs) a partir de formularios en formato XLSForm, con soporte para distintos estilos y plantillas (cuestionario escaneable, banco de preguntas, etc). El proyecto está diseñado para ser modular y extensible, usando Google Apps Script y una arquitectura basada en extractores, parseadores y plantillas.
Características
- Conversión directa de XLSForm a Google Docs (cuestionario en papel, banco de preguntas, etc).
- Soporte para múltiples plantillas y estilos: fácilmente extensible.
- Arquitectura modular: extractores, parseadores, generadores y plantillas desacoplados.
- Configuración centralizada en
src/config.js. - Integración con Google Drive y Google Apps Script.
Estructura del Proyecto
src/
config.js # Configuración y constantes globales
main.js # Punto de entrada principal (función generateDocument)
core/parseXLSForm.js # Lógica para parsear XLSForm a JSON
extractors/ # Extractores de datos (Google Sheets, etc)
generators/ # Generadores de documentos (Google Docs)
templates/ # Plantillas para distintos estilos de documento
legacy/ # Código antiguo, solo referencia
test/ # Pruebas y ejemplos
Instalación
Clona el repositorio:
sh git clone https://github.com/andres.chirinos/xlsform_paper_form_generator.git cd xlsform_paper_form_generatorInstala las dependencias (opcional, solo si usas herramientas de desarrollo):
sh npm install
Uso
Generar un documento desde un XLSForm
En tu entorno de Google Apps Script, llama a la función principal:
const url = generateDocument({
xlsformId: 'ID_DE_TU_XLSFORM_EN_DRIVE',
templateType: 'scannable', // o 'banco'
outputName: 'Mi cuestionario en papel'
});
Logger.log('Documento generado: ' + url);templateTypepuede ser"scannable"(cuestionario en papel) o"banco"(banco de preguntas).- Puedes extender con nuevas plantillas fácilmente en
src/templates/.
Personalización
- Modifica o agrega plantillas en
src/templates/. - Cambia la configuración global en
src/config.js.
Pruebas
Puedes agregar pruebas en la carpeta test/ y ejecutarlas desde el entorno de Apps Script o con herramientas de tu preferencia.
Roadmap
¿Preguntas o sugerencias? Abre un issue o contacta al autor.