jueves, 17 de mayo de 2018

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ña de hoja de cálculo en PDF
Ventajas: El código permite crear el PDF con orientación horizontal, por lo que queda mucho más bonito y adecuado.
Características: El código te permite configurar varias opciones, además de la orientación de la página. Hemos metido un mensaje emergente para  que el usuario pueda elegir la pestaña y otro para que pueda configurar a que correo quiere que le llegue el PDF.

Este es el código:


function pdf_hor(){

// Creamos las variables de la hoja de cálculo
     var libro =SpreadsheetApp.getActiveSpreadsheet()
 // Pedimos la pestaña a convertir
    var nombre = Browser.inputBox('Dime la pestaña que quieres convertir en pdf')
  // Conseguimos la pestaña
    var pestana = libro.getSheetByName(nombre)
   // Creamos la URL con todas las variables de configuración
    var url = 'https://docs.google.com/spreadsheets/d/'+libro.getId()+'/export?exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
  + '&size=A4'                           // paper size legal / letter / A4 // Elegimos el tamaño del papel
  + '&portrait=false'                     // orientation, false for landscape // Elegimos la orientación
  + '&fitw=true'                        // fit to page width, false for actual size // Elegimos si se extiende el contenido a toda la página
  + '&sheetnames=false&printtitle=false' // hide optional headers and footers // Elegimos si imprimimos cabecera con nombre de hoja
  + '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines // Elegimos si aparecen número de página y líneas de celdas
  + '&fzr=false'                         // do not repeat row headers (frozen rows) on each page // Elegimos si repetimos primera línea en diferentes páginas
  + '&gid='+pestana.getSheetId();    // the sheet's Id // Si quitamos esta línea, conseguiremos que imprima todas las pestañas

  var token = ScriptApp.getOAuthToken();

  var response = UrlFetchApp.fetch(url, {
    headers: {
      'Authorization': 'Bearer ' +  token
    }
  });

  var theBlob = response.getBlob().setName(pestana.getName()+'.pdf');

  var newFile = DriveApp.createFile(theBlob);
  // Al mandar el correo, con la siguiente variable configuramos el mensaje
  var contenido_email= '<b>Aviso de mantenimiento</b>'
  var opciones= { htmlBody: contenido_email,  attachments: newFile};
  var correo = Browser.inputBox('Dime el correo a quien quieres mandar el pdf')
  // Mandamos el mensaje con el título "Mantenimiento". Lo podemos cambiar, pero siempre manteniendo las comillas
  MailApp.sendEmail(correo, 'Mantenimiento', contenido_email, opciones)
  // Borramos el PDF creado en nuestro Drive, para que no quede copia cada vez que mandamos el PDF por correo
  newFile.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...