(Hay unas cuantas partes interesantes en sí mismas:
- Como conseguir datos del formulario
- Como conseguir el ID de un archivo desde su URL
- Como hacer público un archivo
- Como crear una copia de una plantilla y meterla en una carpeta concreta )
function insertar_imagen(e) {
// Pillamos la imagen subida desde el formulario (Conseguimos por defecto la URL de dicha imagen)
var imagen= e.values[2]
// Utilizamos esta fórmula para extrar de la URL el ID
var id = imagen.match(/[-\w]{25,}/)
// Con el ID abrimos el archivo de imagen subido
var irudia = DriveApp.getFileById(id)
// Le damos permiso para que sea accesible por cualquiera (Parece que sino no funciona el código)
irudia.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.VIEW)
// Conseguimos un ID de una carpeta para meter el nuevo documento
var folderID='1ROGPRhAgtozzpcQr0jM_ekwBiuFsaw5E' //Este ID debería ir fuera del código
var folder = DriveApp.getFolderById(folderID)
// Creamos una copia de la plantilla y abrimos el documento
var nuevoID= DriveApp.getFileById('1hIjlBCktJdIy8GuDB72XPW-H3_Uw_WhygnbyYLq0sbA').makeCopy('Firmado',folder).getId()
var doc = DocumentApp.openById(nuevoID)
// Conseguimos todas las partes del documento, mayormente los párrafos
var todos = doc.getBody().getNumChildren()
// Creamos una variable que apunte al cuerpo del documento, no a todo el en su conjunto
var body = doc.getBody()
// Creamos un array para ir metiendo el texto de cada párrafo, con intención de buscar la marca que hemos elegido ### y sustituirla por la firma
var el=[]
// Recorremos todos los elementos del documento
for (var j=0; j<todos; j++){
// Metemos por cada vuelta el elemento en una variable
var elemento = doc.getChild(j)
// Apuntamos que tipo de documento es en otra variable
var tipo = elemento.getType()
//Utilizamos condicional para solamente quedarnos con los párrafos
if (tipo=='PARAGRAPH'){
// Si es párrafo, conseguimos el texto interno
el[j]= elemento.getText()
// Buscamos en el texto la marca mediante un condicional
if (el[j]=='###'){
// Borramos dicho texto cuando lo encontramos
elemento.removeFromParent()
// Y lo sustituimos por la imagen de la firma
body.insertImage(j, irudia)
}
}
}
}
No hay comentarios:
Publicar un comentario