Controlador onChange de Apps Script: exportación automática a PDF

El controlador de eventos onChange es el núcleo de la automatización de PDF basada en eventos en Apps Script. Esta página explica cómo escribir un controlador sólido que convierta los archivos correctos en el momento adecuado.

Firma de la función controladora

El controlador recibe un objeto DriveEvent: function onDriveChange(e). El evento tiene e.changeType y e.fileId. Comienza registrando ambos valores durante el desarrollo para entender qué recibe tu disparador y cuándo.

Obtener el archivo y comprobar su tipo

Usa DriveApp.getFileById(e.fileId) para obtener el archivo. Comprueba file.getMimeType() === MimeType.GOOGLE_DOCS antes de intentar exportar. Esto evita errores cuando el disparador se activa para Sheets, Slides o archivos subidos en el mismo Drive.

Ejecutar la exportación

Llama a tu función de exportación a PDF con e.fileId. Envuélvela en un try-catch y registra los errores. El controlador onChange debe completarse rápidamente porque las funciones del disparador tienen un límite de tiempo. Si la exportación tarda demasiado, mueve la conversión real a una función separada disparada con un pequeño retraso.

Preguntas frecuentes

¿Puede el controlador onChange acceder a quién hizo el cambio?

No directamente desde el objeto del evento. El disparador se ejecuta bajo la cuenta que lo instaló, no bajo la cuenta que realizó el cambio. Para identificar al editor, usa la API de Drive para obtener el historial de revisiones del archivo.

Pruebalo ahora

Instala la extension gratuita de Chrome y empieza a convertir tus Google Docs a PDF con un solo clic.

Instalar Extensión Gratuita