Kann ich das Druckdatum oder das Speicherdatum in Google Dokumente drucken?

8

Ich habe ein Textverarbeitungsdokument erstellt, das von vielen Personen verwendet wird (ein Stylesheet für Autoren) und außerdem regelmäßig aktualisiert wird. Ich vermute, dass es einige gibt, die das Dokument als Referenz ausdrucken. Ist es in Google Dokumente möglich, Feldcodes in die Fußzeile einzufügen, die das Druckdatum oder das Sicherungsdatum angeben? Wenn nicht, könnten wir das Dokument vielleicht "[Dokumenttitel] Version [x]" nennen und diesen Ausdruck in der Fußzeile haben?

Auf Wiedersehen Stack Exchange
quelle
1
Fast identische Frage, zwei Jahre nach dieser gestellt: stackoverflow.com/questions/13585272/…
yurkennis

Antworten:

3

Leider scheint dies derzeit nicht möglich zu sein. Google Text & Tabellen unterstützt die Felder für die automatische Aktualisierung von Office nicht.

Hier ist ein Support-Thread, in dem Sie diese Funktion anfordern können - ich habe auch eine Antwort darauf gepostet.

Jarrod Dixon
quelle
Vielen Dank; Ich habe auch einen Kommentar hinzugefügt. Dieser Thread hat mir gesagt, wie man eine Seitenzahl hinzufügt (dh Seite X von Y), das wäre meine nächste Frage gewesen!
Goodbye Stack Exchange
Leider ist dieser Link jetzt veraltet.
Goodbye Stack Exchange
3

Ja, es ist möglich. Mit der vorhandenen API ist dies jedoch nicht wirklich möglich. Das Fehlen von Feldern und die damit verbundenen Funktionen wie in Word sind eine große Behinderung für die Dokumentautomatisierung.

So etwas fügt eine Fußzeile in das geöffnete und wieder geöffnete Dokument ein, ist aber letztendlich keine gute Lösung.

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

BEARBEITEN: So fügen Sie das Skript hinzu.

Dieser Code, wie ich ihn oben vorgestellt habe, sollte wirklich in einer eigenen Funktion sein, die von der OnOpen () -Funktion aufgerufen wird, und nicht im Großhandel, aber alle zum Beispiel gut.

Wenn Sie das Menü Extras eines geöffneten Dokuments aufrufen und dann beim Laden des Skript-Managers überprüfen, ob es derzeit leer ist. Wenn dort Datensätze vorhanden sind, können Sie den Code selbst platzieren.

Schließen Sie den Skriptmanager, kehren Sie zum Menü Extras zurück und wählen Sie Skripteditor. Wenn Sie jetzt nichts in Ihrem Skriptmanager hatten, wählen Sie den gesamten Code aus und löschen Sie ihn. Sie können dann den oben angegebenen Code einfügen und dann speichern.

Schließen Sie das Dokument und öffnen Sie es erneut. In der Fußzeile befindet sich jetzt ein Uhrzeitdatum. Es sollte bei jedem Öffnen des Dokuments aktualisiert werden, nichts Besonderes, aber es wird Sie zum Laufen bringen.

Nun zu denen von Ihnen, denen bereits Code mit Ihrem Dokument zugeordnet ist. Das Hinzufügen des obigen Codes abzüglich der ersten und letzten Zeile zur Funktion onOpen () funktioniert ebenfalls, ist jedoch möglicherweise nicht darauf zurückzuführen, dass bereits vorhandener Code in Konflikt steht.

Hoffe das bringt dich in Schwung.

jCisco
quelle
Vielleicht können Sie den Leuten sagen, wie sie das Skript hinzufügen sollen?
Jacob Jan Tuinstra
@JacobJanTuinstra Ich habe die Antwort aktualisiert, ich hoffe das hilft.
JCisco
0

Dies ist eine Erweiterung der Antwort von jCisco und eine Set-and-Forget-Lösung, die in Google Docs gut funktioniert und für Blätter usw. optimiert werden kann.

  1. Fügen Sie dies in die Fußzeile Ihres Dokuments ein:

    Unkontrolliert beim Drucken / Speichern: 2016-09-03 14:05. PDF aktualisieren : goo.gl/xXXxxx

    Dieser goo.gl-Link ist eine Kurzversion des Freigabelinks "Jeder kann anzeigen" Ihres Dokuments, der jedoch /edit?usp=sharingam Ende des Links durch /export?format=pdf(oder /export/pdfwenn es sich um ein Blatt handelt) ersetzt wird. Übertragen Sie dann Ihren bearbeiteten Freigabelink auf goo.gl , um ihn zu verkürzen.

  2. Öffnen Sie den Skripteditor Ihres Dokuments (Extras> Skripteditor ...) und fügen Sie den folgenden Code hinzu. Sie müssen den Editor innerhalb des Dokuments öffnen, damit Sie ein Skript erhalten, das an das Dokument gebunden ist , und nicht ein separates Skript, das auf Ihrem Google-Laufwerk gespeichert wird.

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

Möglicherweise möchten Sie die Zeitzone (meine ist AEST) und den Absatzstil entsprechend Ihren Anforderungen bearbeiten.

  1. Fügen Sie einen zeitgesteuerten Trigger hinzu (Ressourcen> Trigger des aktuellen Projekts). Stellen Sie ein, dass jede Minute "DocControl" ausgeführt wird. Setzen Sie Benachrichtigungen auf wöchentlich.

Die Zeit in der Fußzeile wird jetzt jede Minute aktualisiert. Es ist nicht erforderlich, dass das Dokument geöffnet ist oder online ist usw., da die Server von Google die gesamte Arbeit erledigen.

Sie können jedoch davon ausgehen, dass Sie eine wöchentliche E-Mail von Google erhalten, in der gelegentlich aufgeführt wird, dass das Skript nicht ausgeführt werden konnte. Für mich war dies jedoch nur ~ 1% der Zeit, und es wird in der nächsten Minute erneut ausgeführt, sodass es insgesamt keine Rolle spielte.

ajlowndes
quelle