Puis-je imprimer la date d'impression ou la date d'enregistrement dans les documents Google?

8

J'ai créé un document de traitement de texte qui sera utilisé par de nombreuses personnes (une feuille de style pour les écrivains), et sera également mis à jour périodiquement. Je soupçonne que certains ont bien imprimé le document pour référence. Est-il possible dans Google Documents de mettre des codes de champ dans le pied de page qui indiquent la date d'impression ou la date d'enregistrement? Sinon, peut-être pourrions-nous nommer le document "[titre du document] version [x]" et avoir cette impression dans le pied de page?

Goodbye Stack Exchange
la source
1
Question presque identique, posée deux ans après celle-ci: stackoverflow.com/questions/13585272/…
yurkennis

Réponses:

3

Hélas, cela ne semble pas possible pour le moment; Google Docs ne prend pas en charge les champs de mise à jour automatique d'Office.

Voici un fil de support où vous pouvez demander cette fonctionnalité - j'ai également posté une réponse à ce sujet.

Jarrod Dixon
la source
Merci; J'ai également ajouté un commentaire. Ce fil m'a dit comment ajouter un nombre de pages (c'est-à-dire la page X de Y), cela aurait été ma prochaine question!
Goodbye Stack Exchange
Malheureusement, ce lien est désormais obsolète.
Goodbye Stack Exchange
3

Oui c'est possible. Cependant, ce n'est pas quelque chose de vraiment possible en utilisant l'API existante. Vraiment, le manque de champs et les capacités associées comme dans Word est un handicap majeur pour l'automatisation des documents.

Quelque chose comme ça va insérer un pied de page sur le document ouvert et rouvrir, mais ce n'est finalement pas une bonne solution.

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);
    }
};

EDIT: comment ajouter le script.

Ce code comme je l'ai présenté ci-dessus devrait vraiment être dans sa propre fonction appelée à partir de la fonction OnOpen () plutôt que dans la vente en gros, mais tout est bon à des fins d'exemple.

Si vous allez dans le menu Outils d'un document ouvert puis vers le bas dans Script Manager, quand il se charge vérifiez qu'il est actuellement vide, s'il y a des enregistrements, vous êtes seul pour le placement du code.

Fermez le gestionnaire de scripts, revenez au menu Outils et sélectionnez Éditeur de scripts. Maintenant, si vous n'aviez rien dans votre gestionnaire de scripts, sélectionnez tout le code et supprimez-le. Vous pouvez ensuite coller le code fourni ci-dessus, puis l'enregistrer.

Fermez le document et rouvrez-le et vous devriez trouver qu'il y a maintenant une date dans le pied de page. Il devrait être mis à jour à chaque ouverture du document, rien d'extraordinaire mais vous permettra de continuer.

Maintenant pour ceux d'entre vous qui ont déjà du code associé à votre document. L'ajout du code ci-dessus moins les première et dernière lignes dans la fonction onOpen () fonctionnera également, mais cela peut ne pas être dû à un code déjà présent en conflit.

J'espère que cela vous fera avancer.

jCisco
la source
Peut-être pouvez-vous dire aux gens comment ajouter le script?
Jacob Jan Tuinstra du
@JacobJanTuinstra J'ai mis à jour la réponse, j'espère que cela vous aidera.
jCisco
0

Il s'agit d'une extension de la réponse de jCisco, et est une solution de définition et d'oubli qui fonctionne bien dans google docs, et pourrait être modifiée pour fonctionner pour les feuilles, etc.

  1. Mettez ceci dans la section de pied de page de votre document:

    Non contrôlé lors de l'impression / de l'enregistrement: 2016-09-03 14:05. Actualiser le pdf: goo.gl/xXXxxx

    Ce lien goo.gl est une version courte du lien de partage "Tout le monde peut voir" de votre document, mais remplacez-le /edit?usp=sharingà la fin du lien par /export?format=pdf(ou /export/pdfs'il s'agit d'une feuille). Ensuite, prenez votre lien de partage modifié sur goo.gl pour le raccourcir.

  2. Ouvrez l'éditeur de script de votre doc (Outils> Editeur de script ...) et ajoutez le code ci-dessous. Vous devez ouvrir l'éditeur à partir du document afin de vous retrouver avec un script lié au document, plutôt qu'un script distinct qui est enregistré dans votre lecteur Google.

Code:

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);
    }
  }
}

Vous voudrez peut-être modifier le fuseau horaire (le mien est AEST) et le style de paragraphe en fonction de vos besoins.

  1. Ajoutez un déclencheur temporel (Ressources> Déclencheurs du projet en cours). Réglez-le pour exécuter "DocControl" toutes les minutes. Réglez les notifications sur hebdomadaire.

Le temps dans le pied de page sera désormais mis à jour toutes les minutes. Il n'est pas nécessaire d'ouvrir le document ou d'être en ligne, etc., car les serveurs de Google font tout le travail.

Cependant, vous pouvez vous attendre à recevoir un e-mail hebdomadaire de la part de Google répertoriant les heures occasionnelles d'exécution du script, mais pour moi, ce n'était que ~ 1% du temps, et il s'exécute à nouveau la minute suivante, donc dans l'ensemble, cela n'avait pas d'importance.

ajlowndes
la source