Posso stampare la data di stampa o la data di salvataggio in Google Documents?


8

Ho creato un documento di elaborazione testi che verrà utilizzato da molte persone (un foglio di stile per scrittori) e verrà anche periodicamente aggiornato. Sospetto che qualcuno abbia stampato il documento come riferimento. In Google Documenti è possibile inserire codici di campo nel piè di pagina che indicano la data di stampa o la data di salvataggio? Altrimenti, forse potremmo nominare il documento "[titolo documento] versione [x]" e avere quella stampa nel piè di pagina?


1
Quasi identica domanda, ha chiesto due anni dopo questo: stackoverflow.com/questions/13585272/...
yurkennis

Risposte:


3

Purtroppo, questo non sembra possibile in questo momento; Google Documenti non supporta i campi di aggiornamento automatico di Office.

Ecco un thread di supporto in cui è possibile richiedere questa funzionalità, tuttavia - ho anche pubblicato una risposta su di esso.


Grazie; Ho anche aggiunto un commento. Quella discussione mi ha detto come aggiungere un conteggio di pagine (cioè, pagina X di Y), quella sarebbe stata la mia prossima domanda!
Arrivederci Stack Exchange

Sfortunatamente, quel link non è più aggiornato.
Arrivederci Stack Exchange

3

Sì, è possibile. Tuttavia, non è qualcosa che è realmente possibile utilizzando l'API esistente. In realtà la mancanza di campi e le capacità associate come in Word è una grande disabilità per l'automazione dei documenti.

Qualcosa del genere inserirà un piè di pagina nel documento aperto e riaprirà, ma alla fine non è una buona soluzione.

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: come aggiungere lo script.

Questo codice, come ho presentato sopra, dovrebbe essere nella sua propria funzione chiamata dalla funzione OnOpen () piuttosto che in quella all'ingrosso, ma tutto bene per esempio.

Se vai al menu Strumenti di un documento aperto, quindi scendi in Script Manager, quando carica controlla che sia attualmente vuoto, se ha un record lì, sei da solo per il posizionamento del codice.

Chiudi il gestore degli script, torna al menu Strumenti e seleziona Editor degli script. Ora se non hai nulla nel tuo gestore degli script, seleziona tutto il codice ed eliminalo. È quindi possibile incollare il codice fornito sopra e quindi salvarlo.

Chiudi il documento e riapri e dovresti trovare ora una Data nel piè di pagina. Dovrebbe aggiornarsi su ogni apertura del documento, niente di speciale ma ti farà andare avanti.

Ora per quelli di voi che hanno già un codice associato al documento. Anche l'aggiunta del codice sopra meno la prima e l'ultima riga nella funzione onOpen () funzionerà, ma potrebbe non essere dovuto al codice già presente in conflitto.

Spero che questo ti faccia andare.


Forse puoi dire alla gente come aggiungere la sceneggiatura?
Jacob Jan Tuinstra,

@JacobJanTuinstra Ho aggiornato la risposta, spero che questo ti aiuti.
jCisco,

0

Questa è un'espansione della risposta di jCisco ed è una soluzione imposta e dimentica che funziona bene nei documenti di Google e potrebbe essere modificata per funzionare con fogli ecc.

  1. Inserisci questo nella sezione piè di pagina del documento:

    Non controllato se stampato / salvato: 2016-09-03 14:05. Aggiorna pdf: goo.gl/xXXxxx

    Quel link goo.gl è una versione breve del link di condivisione "Chiunque può visualizzare", ma sostituiscilo /edit?usp=sharingalla fine del link con /export?format=pdf(o /export/pdfse è un foglio). Quindi porta il tuo link di condivisione modificato su goo.gl per accorciarlo.

  2. Apri l'editor di script del tuo documento (Strumenti> Editor di script ...) e aggiungi il codice seguente. Devi aprire l'editor dall'interno del documento in modo da finire con uno script associato al documento, piuttosto che uno script separato che viene salvato nel tuo google drive.

Codice:

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

Potresti voler modificare il fuso orario (il mio è AEST) e lo stile di paragrafo in base alle tue esigenze.

  1. Aggiungi un trigger Time-driven (Risorse> Trigger del progetto corrente). Impostalo per eseguire "DocControl" ogni minuto. Imposta le notifiche su settimanalmente.

Il tempo nel piè di pagina verrà ora aggiornato ogni minuto. Non è necessario avere il documento aperto o essere online, ecc. Poiché i server di Google stanno facendo tutto il lavoro.

Tuttavia, puoi aspettarti di ricevere un'e-mail settimanale da Google che elenca le volte occasionali in cui lo script non è stato eseguito, ma per me è stato solo l'1% delle volte e viene eseguito di nuovo il minuto successivo, quindi nel complesso non ha importanza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.