¿Puedo imprimir la fecha de impresión o la fecha de guardado en Google Documents?

8

He creado un documento de procesamiento de texto que será utilizado por muchas personas (una hoja de estilo para escritores) y que también se actualizará periódicamente. Sospecho que hay algunos que imprimen el documento como referencia. ¿Es posible en Google Documents poner códigos de campo en el pie de página que indiquen la fecha de impresión o la fecha de guardado? Si no, ¿tal vez podríamos nombrar el documento "[título del documento] versión [x]" y tener esa impresión en el pie de página?

Adiós intercambio de pila
fuente
1
Pregunta casi idéntica, realizada dos años después de esta: stackoverflow.com/questions/13585272/…
yurkennis

Respuestas:

3

Por desgracia, esto no parece posible en este momento; Google Docs no admite los campos de actualización automática que Office hace.

Sin embargo, aquí hay un hilo de soporte donde puede solicitar esta función: también publiqué una respuesta al respecto.

Jarrod Dixon
fuente
Gracias; También agregué un comentario. Ese hilo me dijo cómo agregar un recuento de páginas (es decir, página X de Y), ¡esa habría sido mi siguiente pregunta!
Goodbye Stack Exchange el
Desafortunadamente, ese enlace ahora está desactualizado.
Goodbye Stack Exchange
3

Sí, es posible. Sin embargo, no es algo que sea realmente posible utilizando la API existente. Realmente la falta de campos y las capacidades asociadas como en Word es una discapacidad importante para la automatización de documentos.

Algo como esto insertará un pie de página en el documento abierto y reabierto, pero finalmente no es una buena solución.

function onOpen() {
    var time = new Date();
    time = Utilities.formatDate(time, "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'");
    var doc = DocumentApp.getActiveDocument();
    var s;

    if (!doc.getFooter()) {
        var footer = doc.addFooter();
        var footerText = footer.appendParagrap(time);
    } else {
        var footer = doc.getFooter();
        var footerElements = footer.getNumChildren();
        var para = footer.getParagraphs();
        s = para[footerElements-1].getText();
        var footerText = footer.replaceText(s , time);
    }
};

EDITAR: Cómo agregar el script.

Este código, como he presentado anteriormente, realmente debería estar en su propia función llamada desde la función OnOpen () en lugar de estar allí al por mayor, pero todo bien, por ejemplo.

Si va al menú Herramientas de un documento abierto y luego baja al Administrador de secuencias de comandos, cuando se carga verifique que esté actualmente vacío, si tiene registros allí, está solo para colocar el código.

Cierre el administrador de secuencias de comandos, regrese al menú Herramientas y seleccione Editor de secuencias de comandos. Ahora, si no tenía nada en su administrador de secuencias de comandos, seleccione todo el código y elimínelo. Luego puede pegar el código proporcionado anteriormente y luego guardarlo.

Cierre el documento y vuelva a abrirlo, y debería encontrar que ahora hay una Fecha de Hora en el pie de página. Debería actualizarse en cada apertura del documento, nada sofisticado, pero lo pondrá en marcha.

Ahora para aquellos de ustedes que ya tienen código asociado con su documento. Agregar el código anterior menos las primeras y últimas líneas en la función onOpen () también funcionará, pero puede que no se deba a que el código ya está en conflicto.

Espero que esto te ponga en marcha.

jCisco
fuente
¿Quizás pueda decirle a la gente cómo agregar el script?
Jacob Jan Tuinstra
@JacobJanTuinstra Actualicé la respuesta, espero que esto ayude.
jCisco
0

Esta es una expansión de la respuesta de jCisco, y es una solución de configurar y olvidar que funciona bien en Google Docs, y podría modificarse para que funcione para hojas, etc.

  1. Ponga esto en la sección de pie de página de su documento:

    No controlado cuando se imprime / guarda: 2016-09-03 14:05. Actualizar pdf: goo.gl/xXXxxx

    Ese enlace goo.gl es una versión corta del enlace para compartir "Cualquiera puede ver" de su documento, pero reemplácelo /edit?usp=sharingal final del enlace con /export?format=pdf(o /export/pdfsi es una hoja). Luego lleve su enlace de edición editado a goo.gl para acortarlo.

  2. Abra el editor de scripts de su documento (Herramientas> Editor de scripts ...) y agregue el siguiente código. Debe abrir el editor desde el documento para que termine con un script vinculado al documento, en lugar de un script separado que se guarda en su unidad de Google.

Código:

function DocControl() {
  var time = new Date();
  time = Utilities.formatDate(time, "GMT+10:00", "yyyy-MM-dd' 'HH:mm");
  var doc = DocumentApp.getActiveDocument();
  var bod = doc.getBody();
  var fol = bod.getParent();

  // Define a custom paragraph style.
  var style = {};
  style[DocumentApp.Attribute.FONT_FAMILY] = 'Proxima Nova';
  style[DocumentApp.Attribute.FONT_SIZE] = 8;
  style[DocumentApp.Attribute.ITALIC] = true;

  for (i = 0; i<fol.getNumChildren(); i++){
    var child = fol.getChild(i);
    if (child.getType() == DocumentApp.ElementType.FOOTER_SECTION) {
      var footerText = child.asFooterSection().replaceText("Uncontrolled when Printed\/Saved: (.*). Refresh pdf: ", "Uncontrolled when Printed\/Saved: " + time + ". Refresh pdf: ");
      footerText.setAttributes(style);
    }
  }
}

Es posible que desee editar la zona horaria (la mía es AEST) y el estilo de párrafo para satisfacer sus necesidades.

  1. Agregue un activador basado en el tiempo (Recursos> Activadores del proyecto actual). Configúrelo para ejecutar "DocControl" cada minuto. Establecer notificaciones semanales.

El tiempo en el pie de página ahora se actualizará cada minuto. No es necesario tener el documento abierto o estar en línea, etc., ya que los servidores de Google están haciendo todo el trabajo.

Sin embargo, puede esperar recibir un correo electrónico semanal de Google que enumera las ocasiones ocasionales en que el script no se ejecutó, pero para mí fue solo ~ 1% del tiempo, y se ejecuta nuevamente al siguiente minuto, por lo que, en general, no importó.

ajlowndes
fuente