Como convertir un Google Doc a PDF con Google Apps Script


Ya hemos hablado en este blog en más de una ocasión de como generar PDFs con Google Apps Script, concretamente os he explicado como convertir spreadsheets a PDF y como exportar PDFs de un rango seleccionado, pero... habéis necesitado alguna vez exportar un GDoc a PDF?

De hecho, aunque tal vez no lo parezca es una de las cosas que más se piden cuando te dedicas a hacer script de Google. Saber convertir Google Docs a PDF con Google Apps Script es el broche final una vez hemos generado automáticamente una factura, un presupuesto, un informe o una nota informativa.

Una de las cosas que más me piden con Google Apps Script es tener un doc master que lo copiamos, substituimos los datos que necesitamos, lo convertimos a PDF y lo enviamos por correo, así que realmente este tutorial os puede ser muy útil. Saber convertir docs a PDF ahorra ingentes cantidades de tiempo a muchas empresas.

El código para hacer la exportación de PDFs es extremadamente sencillo, de hecho , es solo una linea:

var pdf = DriveApp.createFile(file.getAs('application/pdf'));

Una vez tenéis hecho el PDF podéis enviarlo por correo , guardarlo en una carpeta de Drive o dejarlo disponible para que alguien se lo baje de una web, las posibilidades son infinitas., pero ya veis que convertir un Google Doc a PDF es trivial de implementar.

Poco más puedo deciros. Probadlo y si tenéis cualquier problema no dudéis en hacérmelo llegar

Nos vemos

6 comentarios:

  1. Hola!

    He intentado utilizar algunos de los códigos que incluyes sobre generarPDFs pero no se si se acoplan a mi caso. Yo tengo un código creado en Apps Script para que a partir de una hoja de cálculo de Google y una plantilla de Google Docs me genere certificados. Hasta ahí bien, pero querría ir un paso más allá y generar también un PDF automático. ¿Te podría dar acceso y me echas una mano? Gracias!!

    ResponderEliminar
  2. Hola!

    Soy la chica que te preguntó en el anterior comentario, lo acabo de volver a intentar con el código que indicas y no me deja, ¿Puedo darte acceso y me ayudas? Muchas gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Disculpa que no te respondiera. Llevo unas semanas bastante liado.

      Si desdeluego, comparteme el documento y le echo un ojo

      Nos vemos

      Eliminar
  3. Hola, no me funciona esto:

    var files = DriveApp.getFileById(documentId).getName();
    var newFile = DriveApp.createFile(files.getAs('application/pdf'));

    donde la variable documentID contiene el ID de un google_DOC de texto

    ResponderEliminar
    Respuestas
    1. Hola,

      Por que haces el getName()? El getName te devuelve una cadena de texto, tu necesitas el fichero.
      Si lo haces así debería funcionarte:
      var files = DriveApp.getFileById(documentId);
      var newFile = DriveApp.createFile(files.getAs('application/pdf'));
      Ya me contaras como te ha ido

      Nos vemos!

      Eliminar
  4. Perdona que no haya saludado. Gracias de antemano.

    ResponderEliminar

Tal vez te interese