martes, 22 de junio de 2021

Enviar pdf por correo desde un formulario

 Este es un ejemplo con todas las partes que necesita el código para mandar un pdf a ciertos grupos.

Falta crear los intervalos con nombre necessarios. El más importante es "ultima_fila"

Además utilizamos dentro de las fórmulas: marca_temporal y grupos_correos

También, para conseguir datos, carpeta_url y plantilla_url

Además, por cada campo que queramos incluir en el pdf, utilizamos "jarduera_actividad" y "maila_curso" que toman toda la columna de cada campo. Si necesitamos más datos en el pdf, deberíamos crear los intervalos con nombre necesarios asociados a cada dato.

function enviar_pdf() {
  // variables básicas
  var herramienta = SpreadsheetApp.getActiveSpreadsheet()
  var ultima_fila = herramienta.getRangeByName('ultima_fila').setValue 
('=filter(row(marca_temporal);marca_temporal=max(marca_temporal))').getValue()
  var pestana = herramienta.getRangeByName('ultima_fila').getSheet()

  // variables de carpeta y de plantilla
  var carpeta_id = herramienta.getRangeByName('carpeta_url')
.getValue().match(/[-\w]{25,}/)

  var plantilla_id = herramienta.getRangeByName('plantilla_url')
.getValue().match(/[-\w]{25,}/)


// Variables que se rellenan en la plantilla, de columna y variable
    var columna_jarduera_actividad = herramienta.getRangeByName('jarduera_actividad')
.getColumn()
    var jarduera_actividad = pestana.getRange(ultima_filacolumna_jarduera_actividad)
.getValue()
    
    var columna_maila_cursoherramienta.getRangeByName('maila_curso').getColumn()
    var maila_curso = pestana.getRange(ultima_filacolumna_maila_curso).getValue() 
 
            
 // Conseguimos la carpeta    y creamos la copia basada en la plantilla
  var carpeta = DriveApp.getFolderById(carpeta_id
  var nuevo_documento_id = DriveApp.getFileById(plantilla_id).
 makeCopy('nuevo'carpeta).getId()
  var nuevo_documento = DocumentApp.openById(nuevo_documento_id)
  
// Entramos y cambiamos

  var body = nuevo_documento.getBody()
  
  body.replaceText('<<JARDUERA/ACTIVIDAD>>'jarduera_actividad)
 

    
  
// Cerramos
nuevo_documento.saveAndClose()


// Variables para el correo
var arduraduna = herramienta.getRangeByName('arduraduna').getValue()
var ikasketaburuaherramienta.getRangeByName('ikasketaburua').getValue()

var tituloherramienta.getRangeByName('titulo').getValue()
var mensajeherramienta.getRangeByName('mezua').getValue()
var correo

// Convertimos en pdf
var pdf =DriveApp.createFile(nuevo_documento.getAs('application/pdf')
.setName(titulo+' -- '+data_fecha+'.pdf')) 


// Pillamos todos los grupos
var array_grupos = maila_curso.split(",")
Logger.log(array_grupos)


// Mandamos a cada correo
for (grupo in array_grupos){
              correo = pestana.getRange('cada_correo')
.setValue('=iferror(vlookup("'+array_grupos[grupo].trim()+'";grupos_correos;2;false))')
.getValue()
             var opciones ={attachmentspdf ,bcc:arduraduna  ,cc:ikasketaburua}
       MailApp.sendEmail(correotitulomensajeopciones)
                           }

// Borramos el documento
  pdf.setTrashed(true)
//  DriveApp.getFileById(nuevo_documento_id ).setTrashed(true)
}

No hay comentarios:

Publicar un comentario

Crear PDF horizontal

El código que vamos a mostrar aquí no ha sido creado por nosotros, sino que lo hemos encontrado en Internet. Objetivo: Publicar una pesta...