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

  1. Clona el repositorio: sh git clone https://github.com/andres.chirinos/xlsform_paper_form_generator.git cd xlsform_paper_form_generator

  2. Instala 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);
  • templateType puede 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.