Manchmal muss man wissen, wo die Datei zu einem ausgedruckten PDF-Dokument auf der Festplatte liegt. Wenn das Programm, mit dem Sie PDFs erstellen, den Dateinamen und Ablageordner nicht mit ausgeben kann, lässt sich das Problem mit einem Javascript lösen.
Auch Adobe Reader XI lässt sich mit Scripts erweitern. Diese müssen unter %appdata%\Adobe\Acrobat\Privileged\11.0\JavaScripts liegen. Bei Acrobat DC heißt der Pfad %appdata%\Adobe\Acrobat\Privileged\DC\JavaScripts. Scripts für alle Benutzer gehören in den Installationsordner, beispielsweise nach C:\Program Files (x86)\Adobe\Reader 11.0\Reader\Javascripts. Laden Sie die Datei PrintFooter herunter (aktualisierte Version 2.2, April 2014), entpacken Sie diese und kopieren Sie sie in das gewünschte Verzeichnis.
Hinweis: Das Script funktioniert nur ab Adobe Reader XI und auch mit Acrobat Reader DC. In älteren Versionen lassen sich per Script keine Formularfelder einbauen.

Starten Sie Adobe Reader neu und öffnen Sie eine PDF-Datei. Im Menü „Datei“ sehen Sie jetzt den neuen Menüpunkt „Fußzeile -> Setze Fußzeile“. Nach einem Klick darauf setzt das Script Datum und Uhrzeit, den Pfad der Datei und die Seitenzahl in alle Seiten des Dokuments ein. Sie können es dann ausdrucken oder mit den Zusatzinfos speichern. Mit „Fußzeile -> Entferne Fußzeile“ löschen Sie die Informationen wieder.
Über den Menüpunkt „Datei -> Fußzeile -> Dateiname nur erste Seite“ können Sie den Dateinamen mit Pfad nur in die erste Seite eines Dokuments einbauen.
Script anpassen: Welche Infos das Script im Dokument unterbringt, können Sie selbst festlegen. Öffnen Sie die JS-Datei in einem Texteditor (rechter Mausklick und „Öffnen mit -> Editor“). Drei Varianten sind bereits vorkonfiguriert. Ändern Sie hinter „app.addMenuItem“ beispielsweise „SetFooter(1)“ auf „SetFooter(2)“. Dann werden nur Datum, Uhrzeit und Dateiname eingesetzt. Ersetzen Sie „2“ durch „3“, um nur die Seitenzahlen in der Form „Seite X/X“ einzubauen. Nach Änderungen im Script müssen Sie Adobe Reader neu starten. „4“ baut den Dateinamen ohne Dateinamenserweiterung ein (ohne ‑pdf).
Wenn Sie möchten, können Sie den Varianten auch jeweils eigene Menüpunkte spendieren. Dazu führen Sie neuen Zeilen nach dem Muster „app.addSubMenu“ hinzu. Beispielsweise:
1 2 | app.addMenuItem({ cName: "Setze Seitenzahlen", cParent: "Footer", cExec: "SetFooter(3)"}); app.addMenuItem({ cName: "Entferne Seitenzahlen", cParent: "Footer", cExec: "RemoveFooter()"}); |
Sie können auch nur den Dateinamen statt des kompletten Pfades einbauen. In diesem Fall ändern Sie die Zuweisung hinter „var FileNM“ auf „this.documentFileName“.
Wenn Sie das Datumsformat anpassen möchten, ändern Sie die Angaben hinter „AcDateFormat“. „dd.mm.yyyy HH:MM“ gibt Tag, Monat, Jahr, Stunden und Minuten aus, „yyyy/mm/dd“ dagegen Jahr, Monat und Tag ohne Uhrzeit.
Das Script wandelt die plattformunabhängigen Pfade (C/Ordner/Dateiname) in Windows-Pfade um (C:\Ordner\Dateiname). Wenn Sie das nicht wünschen, ändern Sie in der Funktion SetFooter() „var FileNM = PathToWinPath(pathArray);“ auf „var FileNM = this.path“ beziehungsweise in SetFooterFirstPage() „var sFilePath=PathToWinPath(pathArray);“ auf „var sFilePath=this.path“.
Die Funktion SetFooterFirstPage() baut den Dateinamen nur in die erste Seite eines Dokuments ein. Wenn Sie ihn nur auf der zweiten Seite wünschen, ändern Sie „var p = 0;“ in „var p = 1;“.
Hier das komplette Javascript (Download ZIP-Datei: PrintFooter)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | //PrintFooter v2.2 //Thorsten Eggeling // //SetFooter(1) erstellt //Datum, Uhrzeit, Dateiname und Seitenzahl (Seite X/X) //SetFooter(2) erstellt //Datum, Uhrzeit, Dateiname //SetFooter(3) erstellt //Seitenzahlen (Seite X/X) //SetFooter(4) erstellt ein Dokument mit //nur Dateiname ohne Erweiterung auf allen Seiten //SetFooterFirstPage() erstellt ein Dokument mit //Dateiname nur auf der ersten Seite //RemoveFooter() entfernt die Fußzeilen von allen Seiten app.addSubMenu({ cName: "Footer",cUser: "Fußzeile", cParent: "File", nPos: 20 }); app.addMenuItem({ cName: "Setze Fußzeile", cParent: "Footer", cExec: "SetFooter(1)"}); app.addMenuItem({ cName: "Fußzeile nur Dateiname", cParent: "Footer", cExec: "SetFooter(4)"}); app.addMenuItem({ cName: "Seitenzahlen einfügen", cParent: "Footer", cExec: "SetFooter(3)"}); app.addMenuItem({ cName: "Dateiname nur erste Seite", cParent: "Footer", cExec: "SetFooterFirstPage()" }); app.addMenuItem({ cName: "-------------------------------", cParent: "Footer",cExec: "{}"}); app.addMenuItem({ cName: "Entferne Fußzeile(n)", cParent: "Footer", cExec: "RemoveFooter()"}); //Pfad in Windows-Pfad umwandeln function PathToWinPath(pathArray) { var WinPath; if (pathArray[1].length==1) { //nur ein Zeichen? Also (hoffentlich) lokales Laufwerk WinPath = pathArray[1]+":"; } else { //für Netzwerklaufwerke \\Server\Freigabe WinPath = "\\\\" + pathArray[1]; }; for (var i = 2; i < pathArray.length; i++) { WinPath = WinPath + "\\" + pathArray[i]; } return WinPath; } //Pfad und Dateiname nur erste Seite setzen function SetFooterFirstPage() { var pathArray = this.path.split("/"); var sFilePath=PathToWinPath(pathArray); //Pfad im Windows-Format var p = 0; //0=erste Seite var aRect = this.getPageBox("Crop",p); //Seitengröße var TotWidth = aRect[2] - aRect[0]; //Breite der Seite var fd=addTextField(this,sFilePath,p,TotWidth); } //Fußzeile setzen, alle Seiten function SetFooter(ARG) { var pathArray = this.path.split("/"); //var FileNM = this.path //Dateiname mit Pfad plattformunabhängiges Format //var FileNM = PathToWinPath(pathArray); //Pfad im Windows-Format var FileNM =this.documentFileName //nur Dateiname var FileNMNoExt = FileNM.substr(0,FileNM.lastIndexOf(".")); //nur Dateiname ohne Erweiterung (ohne .PDF) var AcDate = new Date(); var AcDateFormat = "dd.mm.yyyy HH:MM" //var AcDateFormat = "yyyy/mm/dd" for (var p = 0; p < this.numPages; p++) { var aRect = this.getPageBox("Crop",p); var TotWidth = aRect[2] - aRect[0] //Datum, Uhrzeit, Dateiname und Seitenzahl (Seite X/X) if (ARG==1) { var FieldValue="Datum: " + util.printd(AcDateFormat, AcDate) + " (" + FileNM +")"; FieldValue=FieldValue + "\nSeite: " + String(p+1)+ "/" + this.numPages; //Seitenzahlen var fd=addTextField(this,FieldValue,p,TotWidth); } //Datum, Uhrzeit, Dateiname if (ARG==2) { var FieldValue="Datum: " + util.printd(AcDateFormat, AcDate) + " (" + FileNM +")"; var fd=addTextField(this,FieldValue,p,TotWidth); } //nur Seitenzahlen (Seite X/X) if (ARG==3) { var FieldValue="Seite: " + String(p+1)+ "/" + this.numPages; //Seitenzahlen var fd=addTextField(this,FieldValue,p,TotWidth); } //nur Dateiname ohne Erweiterung if (ARG==4) { var fd=addTextField(this,FileNMNoExt,p,TotWidth); } } //end for loop } //Textfeld in die Fußzeile einfügen function addTextField(myDoc,myTextValue, myPageNum, myPageWidth) { var fd = myDoc.addField("xftDate"+myPageNum+1, "text", myPageNum, [30,15, myPageWidth-30,35]); fd.multiline=true; //Zeilenumbruch erlauben, Seitenzahl zweite Zeile fd.textSize=6; //Font-Größe fd.readonly = true; //schreibgeschützt fd.alignment="center"; //Ausrichtung zentriert //fd.alignment="left"; //Ausrichtung links //fd.alignment="right"; //Ausrichtung rechts //fd.fillColor = color.yellow; //Hintergundfarbe für das Textfeld //fd.textColor=color.red; // Textfarbe fd.value=myTextValue; return fd //Anmerkungen zur Positionierung: //addField: Parameters: cName, cFieldType, nPageNum, oCoords, Returns: object //oCoords: upper-left x , upper-left y, lower-right x, lower-right y //addField erstellt ein Text-Feld am unteren Seitenrand, bestimmt //durch die angegebenen Koordinaten //es hat einen Abstand von 30 Pixeln vom linken Seitenrand und 15 vom unteren Rand //das Feld nimmt die gesamte Breite des Dokuments ein, mit einem Abstand von //30 Pixeln links und rechts (myPageWidth-30). //Es ist 20 Pixel hoch (35-15) } //Fußzeile(n) entfernen function RemoveFooter() { for (var p = 0; p < this.numPages; p++) {var x = this.removeField(String("xftDate"+p+1)); } } |
Gibt es jetzt nicht auch eine Textvarible um den Dateinamen in die Kopf- oder Fußzeile zu setzten ? Ich will mehrere Dateien mit einer Kopf- oder Fußzeile mit Dateinamen versehen. Nur welche Variable ist es ? Für das aktuelle Datum geht ja <> Welche ist das dann für den Dateinamen ?
Folgendes habe ich gefunden :
https://helpx.adobe.com/de/incopy/using/text-variables.html
Dateiname
Diese Variable fügt den Namen der aktuellen Datei in das Dokument ein. Die Variable wird häufig im Infobereich des Dokuments für den Ausdruck verwendet oder in Kopf- bzw. Fußzeilen eingesetzt. Zusätzlich zu „Text davor“ und „Text danach“ stehen Ihnen die folgenden Optionen zur Verfügung:
Sie verweisen auf die Incopy-Hilfe. Programme, mit denen sich PDFs erstellen lassen, bieten natürlich jede Menge Möglichkeiten, über die sich Informationen in ein Dokument einbauen lassen. Bei dem Script zu diesem Artikel geht es aber um den Adobe Reader, ein Programm, mit dem sich PDFs erst einmal nicht erstellen und bearbeiten lassen. Ziel ist daher, in bereits vorliegende PDFs mit dem Reader Zusatzinformationen einzubauen. Auch in Adobe Acrobat gibt es weitergehende Funktionen. Aber dieses kostenpflichtige Programm hat nicht unbedingt jeder.
Hallo zusammen
ich würde gerne die Schriftgröße “ fd.textSize=6; “ auf 10 ändern, habe aber keine Zugriffsrechte.
Wie oder was muss ich tun damit ich die Schriftgröße andern kann
Verwenden Sie einen Ordner unter %appdata%. Andernfalls müssen Sie sich als Administrator die Zugriffsrechte verschaffen.
Hallo
irgendwie scheint es in Arcrobat ja immer noch keine Lösung für das Fusszeilenproblem zu gebe. Deshalb benutze ich Ihr Script jetzt in der Acrobat DC Version. Das funktioniert super, nachdem ich den Pfad zum JavaScripts Ordner gefunden hatte. Besten Dank für das tolle Script.
Eine Frage hätte ich aber noch. Ist es möglich, den Text der Fusszeile um 90° zu drehen, dass er entlang der linken Blattseite nach oben steht.
Viele Grüße
Thomas
Ich habe gerade keine Zeit mich intensiver damit zu beschäftigen.
In der Funktion „addTextField“ müsste man für „fd“ diese Eigenschaft angeben können:
fd.rotation=90
Das dreht das Textfeld und den Inhalt um 90 Grad.
Damit das richtig funktioniert, müsste man dazu noch die Position auf der Seite und die Größe des Textfeldes für die Ausrichtung auf der Seite anpassen beziehungsweise berechnen (bei myDoc.addField).
Hallo zusammen
Ich habe eine PDF Datei, welche 2’000 Seiten lang ist. Jede Seite hat einen Text und im Kopfbereich eine Zahl. Nun muss ich diesen 2’000 seitigen Schinken splitten und pro Seite ein PDF erstellen (Dateiname muss Zahl vom Kopfbereich sein).
Adobe PRO DC kann zwar einzelne Dateien erstellen aber wie muss ich vorgehen, dass er die Zahl im Header als Dateinamen zum Abspeichern verwendet? Ich bin dran mich einzulesen und bin nicht sicher, ob ich auf dem richtigen Weg bin: Müsste ich hierfür dieses Nummernfeld als Metadaten-Feld definieren? Falls jemand Tipps hat, wäre ich sehr dankbar für die Hilfe.
Wenn ich das Vorhaben recht verstehe, würde ich jede Seite des großen PDFs mit „this.extractPages“ als einzelne Datei speichern und dabei passende Dateinamen vergeben, etwa „MyDoc_page_#0001.pdf“, „MyDoc_page_#0002.pdf“, usw. Ich gehe davon aus. dass die Zahl im Kopfbereich die Seitenzahl ist.
Oder handelt es sich nicht um eine fortlaufende Nummerierung? Die Zahl im Header ist ja wahrscheinlich kein Feld, sondern nur einfacher Text. In diesem Fall könnte man den Text mit this.getPageNthWord(i, j) auslesen und den Inhalt oder Teile des Inhalts als Dateinamen verwenden.
Infos zu Javascript in Adobe Acrobat Pro DC gibt es in der Acrobat DC SDK Documentation (auf „Javascript“ gehen).
Hallo te
Vorab herzlichen Dank für deine Antwort.
Etwas konkretisiert: Es handelt sich leider um nicht fortlaufende Zahlen. Die Zahl befindet sich im Adressat und es handelt sich um eine Policennummer des Klienten und damit ist es leider auch eine einfache Zahl und kein Feld, wie du gesagt hast. Die Zahlen sind auch verschieden und in keiner Reihenfolge, mal steht IE5221, 43000000, etc.
Ich habe genau das gesucht, irgendetwas welches diesen Text ausliest und für den Dateinamen verwendet.
Deinen Tipp werde ich versuchen.
Hallo Ich bin am verzweifeln mit meinem JavaScript.
ich suche die Möglichkeit das ich per Java das was im Textfeld1 eingetragen wird beim Drucken als Wasserzeichen auch verwendet wird und pro seite 3 mal dargestellt wird in Ariel 12 hell Grau.
Super, Danke!
Gibt es die Möglichkeit, mehrere PDFs auf einmal mit der Fusszeile zu bestücken? Diese Funktion hat zwar Adobe Acrobat Pro 9, dort funktioniert das Script aber nicht und der Dateiname ist als Fusszeile benötigt.
Vielen Dank
Mehrere PDFs auf einmal? Nein, das geht nicht so ohne weiteres. Das müsste man als Script programmieren, das etwa alle PDF-Dateien aus einem bestimmten Ordner verarbeitet. Eine Alternative wäre, Acrobat Reader extern zu steuern, beispielsweise über ein AutoHotkey-Makro (https://autohotkey.com). Das ist allerdings etwas Bastelarbeit.
Hallo,
erstmal danke für das Script.
Was bei mir nicht funktioniert ist „\n“ für einen Zeilenumbruch, obwohl es ja korrekt ist.
Zu anderen Fragen hier einige Tipps:
Kopfzeile: mit var aRect = this.getPageBox(„Crop“,p); bekommt man die Koordinaten der Seite
entsprechend ist die Seitenhöhe var TotHeight = aRect[1] – aRect[3], bei DIN A4 hoch 841 (Pixel).
bei
{ var fd = this.addField(„xftDate“, „text“, p, [30,TotHeight‑x, TotWidth-30–30,TotHeight‑y]);
muss man x und y anpassen (x oben, y unten).
Zum Ausdrucken:
Es gibt von Adobe eine »Acrobat Javascript Scripting Reference«, da stehen die entsprechenden Befehle und Parameter drin. Damit müsste das Script ergänzt werden. Die bezieht sich aber auf die normale Acrobat Version, ich weiß also nicht, ob Sie auch beim Reader ausgeführt werden.
gibt es so ein JavaSkript auch für eine Kopfzeile?
Die Frage ist im Prinzip schon weiter unten in den Kommentaren beantwortet. Die Script-Zeile
var fd = myDoc.addField(„xftDate“+myPageNum+1, „text“, myPageNum, [30,15, myPageWidth-30,35]);
legt die Position fest. Probieren Sie andere Werte aus, um eine Position in der Kopfzeile zu erreichen.
Hallo,
gerne möchte ich meine Dateinamen in zwei Zeilen in die PDF drücken.
Dateiname: BP-01 Decke über EG_Decke.pdf
Alles bis zum Unterstrich in einer Zeile, nach dem Unterstrich in die zweite Zeile:
BP-01 Decke über EG
Decke
Ist dies möglich und falls ja, wie?
Acrobat DC
Viele Grüße
Mike
Ganz verstanden habe ich das nicht.
Aus dem Dateinamen
„BP-01 Decke über EG_Decke.pdf“ sollen im PDF zwei Zeilen werden?
BP-01 Decke über EG
Decke
Unter der Voraussetzung, dass die Struktur der Dateinamen immer gleich ist, wäre folgendes möglich:
var sPos=FileNM.search("_");
var pPos=FileNM.search(".");
var S1=FileNM.substr(0,sPos);
var S2=FileNM.substr(sPos+1,FileNM.length - sPos -5);
FieldValue=S1 + "\n" + S2;
var fd=addTextField(this,FieldValue,p,TotWidth);
Zuerst wird die Position von „_“ und „.“ im String FileNM ermittelt.
Dann werden mit subst() die beiden gewünschten Elemente extrahiert.
Das „\n“ steht für den Zeilenumbruch.
Hallo
ich finde das schon nicht schlecht das Script. Aber ich suche so was für die Kopfzeile. Habe schon mit den Parametern rumgespielt, aber es geht nicht so richtig gut besonders wenn man ein Querformat eingestellt hat.
Außerdem würde ich gerne gleich beim drücken des Befehls das Feld einsetzen und danach in die Druckmaske kommen. Geht das auch?
Ich hoffe das mich jemand versteht.
Das beste was ich bis jetzt gefunden habe! Ist es möglich, einen Tasten-Kurzbefehl einzustellen (so wie für das Drucken Strg+P)? Das wäre super.
Da ich normalerweise sehr viele PDF-Dokumente ausdrucke öffne ich die Dokumente normalerweise gar nicht, sondern starte den Befehl „drucken“ direkt mit der Mouse; hatte eigentlich gehofft, dass man hier eine Einstellung direkt bei den Druckeinrichtungen findet, aber nichts (nur Datum und Seitenzahl), leider, daher hilft das Script, auch wenn die Prozedur so sehr langsam wird.
Muss mich mal informieren, ob man auf dem Schreibtisch so einen Ordner einrichten kann, der automatisch eine Befehlsfolge ablaufen lässt (in Photoshop kann man so was einrichten): Dokument öffnen, mit Namen ausstatten und dann drucken (ohne dass man es für jedes Dok händisch machen muss…). Falls du hierzu einen Tipp hast?
Danke auf jeden Fall 🙂
„Tasten-Kurzbefehl“: Das ist im Adobe Reader nur sehr eingeschränkt möglich. Beispielsweise
app.addSubMenu({ cName: "Footer",cUser: "Fußzeile &x", cParent: "File", nPos: 20 });
app.addMenuItem({ cName: "Setze Fußzeile", cUser:"Setzen &z", cParent: "Footer", cExec: "SetFooter(1)"});
Das „&“ setzt eine Accelerator. Den sieht man im Reader, wenn man die Alt-Taste drückt. Die Funktion „Setzen“ lässt sich dann mit Alt‑D und danach X und Z aufrufen (Alt‑D für Menü „Datei“). Kürzer wird’s, wenn man „Setzen“ eine Menüebene höher einbaut:
app.addMenuItem({ cName: "Setze Fußzeile", cUser:"Setzen &x", cParent: "File", cExec: "SetFooter(1)"});
Dann geht es mit Alt‑D X.
„automatisch eine Befehlsfolge ablaufen“: Das ist nur in Adobe Acrobat möglich (Menü „Erweitert -> Dokumentverarbeitung -> Stapelverarbeitung“ (Adobe Acrobat Pro 9). Hier kann man Javascripts definieren und auf mehrere Dateien/Ordner anwenden.
Beim Adobe Reader könnte man mit den zuvor erstellten Acceleratoren und SendKey-Makros arbeiten, also Makros, die Tastenkombinationen an Anwendungen schicken. Das ginge mit Autohotkey (https://autohotkey.com/). Die Lösung ist aber etwas wackelig, wenn eine Anwendung nicht in angemessener Zeit reagiert.
Hallo, ich bekomme mit dem Acrobat DC immer einen stack underflow: Auf der zweiten Seite des Ausdrucks steht
ERROR: stackunderflow
OFFENDING COMMAND: exch
STACK:
/_ct_na
Gruß
Das ist ein Postscript und kein Javascript Fehler. Tritt das nur bei einem bestimmten Dokument auf? Ich würde das Script mit Dokumenten aus unterschiedlichen Quellen ausprobieren, um den Fehler einzugrenzen.
Es ist bei mir bei drei verschiedenen Dokumenten passiert, bisher ist kein Dokument fehlerfrei durchgegangen. Allerdings habe ich drei mal CutePDFWriter als Drucker benutzt, vielleicht liegt es daran?
Ich habe einige Dokumente mit CutePDFWriter erstellt und keine Problem mit den PDFs feststellen können. Probieren Sie trotzdem PDFs aus anderen Quellen aus.
Sicherheitshalber sollten Sie auch kontrollieren, ob das Script PrintFooter.js tatsächlich fehlerfrei ist. Kopieren Sie den Text von https://www.myria.de/wp-content/plugins/wp-syntax-download-extension/wp-syntax-download-extension.php/599/PrintFooter.js in die JS-Datei.
Wenn auch das nichts hilft, habe ich momentan keine Lösung parat.
Hallo
Ich möchte gern ins PDF-Dokument folgendes setzen:
„Datum Uhrzeit Benutzername“
Ich weiß aber nicht wie ich das in dem PrintFooter-Script unterbringe.
Wer kann mir helfen?
Mit freundlichen Grüßen
Joachim Seidel
Welchen Benutzernamen wollen Sie einfügen? Den Windows-Login-Namen, den Autor des Dokuments oder den Benutzer, der in Acrobat bei „Bearbeiten -> Voreinstellungen -> Identität“ eingetragen ist? Wie dem auch sei, sie benötigen im Script folgende Funktion:
var getLoginName = app.trustedFunction(
function () {
app.beginPriv();
return identity.loginName;
app.EndPriv();
}
);
Diese Funktion bauen Sie in das Script über den Block ein, der mit „app.addSubMenu…“ beginnt. Dann können Sie in der Funktion „SetFooter“ eine Zeile wie diese verwenden:
var FieldValue=„Datum: “ + util.printd(AcDateFormat, AcDate) + “ („ + FileNM +“)“ + “ Benutzer: “ + getLoginName();
Für die anderen Benutzernamen verwenden Sie beispielsweise
return identity.name; //Name aus Identität
return this.info.author; //Autorname aus den Dokument-Eigenschaften
Hallo
Der Befehl Fußzeile mit vier Auswahlmöglichkeiten habe ich nun bei Adobe, aber ich habe auch diesen „Es ist ein interner Fehler aufgetreten“
Wie kann man es lösen?
WIN 7 32-Bit
Adobe Reader 10.0
Ich habe das Script jetzt mit älteren Versionen des Adobe Adobe Readers ausprobiert. Damit funktioniert es nicht. Adobe hat erst in die Version 11 die Möglichkeit eingebaut, Formulardaten zu speichern beziehungsweise per Script zu ändern. Wenn Sie das Script nutzen wollen, verwenden Sie die aktuelle Version XI. Das ist auch aus Sicherheitsgründen zum empfehlen.
Ich habe versucht das Script unter Adobe Reader 10 auszuführen, dabei tritt der schon weiter oben beschriebene „interne Fehler“ auf. Ist bekannt ob die Adobe Version (10 oder 11) eine Rolle spielt?
Herzlichen Dank für die Hilfe und die Erklärungen!
Danke, habe nicht wirklich viel überlegt^^
Ich kann den Ordner Privileged\11.0\JavaScripts nicht erstellen, da keine Sonderzeichen erlaubt sind. Jemand eine Idee?
Da sind eigentlich keine Sonderzeichen drin. Erst den Ordner „Privileged“ erstellen und dann darin „11.0“ und darin wiederum „JavaScripts“.
Hallo,
Danke für das script. Ist es Möglich, dass die Fußzeile immer gedruckt wird ? So wie jetzt, muss ich immer die Fußzeile „einschalten“.
Vielen Dank
Gruß Peter
@Peter
Ich befürchte, das geht nicht. Es ist – soweit ich sehe – nicht möglich, das Script automatisch beim Öffnen eines Dokuments anzuwenden. Eine derartige Funktion bietet nur Adobe Acrobat, aber nicht der Reader. Bei Acrobat lassen sich über die Batch-Funktion Scripte auch auf mehrere Dokumente automatisch anwenden.
Super Tipp! War genau das, was ich gebraucht und gesucht hatte und nun in 20 Minuten (inkl. editieren und ändern, dass Pfad nicht mit angedruckt wird!) zum Laufen gebracht habe.
Vielen Dank!
Ich habe das Script jetzt etwas umgebaut und entschlackt. Dadurch wird es hoffentlich übersichtlicher.
@Pascal: Der Dateiname lässt sich ohne Erweiterung mit
FileNM.substr(0,FileNM.lastIndexOf(„.“));
ermitteln. Ich habe in das Script dafür einen eigenen Menüpunkt eingebaut („Fußzeile nur Dateiname“, SetFooter(4)).
@chris: In der Funktion „addTextField“ habe ich ein paar Zeilen Kommentar untergebracht, der die Positionierung erklärt. Es hängt von der Art der Dokumente ab, ob die Fußzeile sich optisch in der Mitte befindet. Die Position wird bei „addField“ über die Werte zwischen „[…]“ bestimmt. „30“ bedeutet: 30 Pixel Abstand vom linken Rand. Ein höherer Wert verschiebt das Feld also nach links.
Wenn man testweise „//fd.fillColor = color.yellow;“ entkommentiert, also „//“ entfernt, wird das Feld mit einem farbigen Hintergrund unterlegt. Dann sieht man die Größe besser und kann mit unterschiedlichen Werten experimentieren.
Hallo,
ich habe jetzt einige Stunden rumprobiert – muss dazu sagen, dass ich Null Programmierkenntnisse habe.
Folgendes Problem konnte ich nicht lösen:
Ich hätte gerne die Seitenzahlen so weit wie möglich um unteren oder unteren rechten Rand, damit sie niemals in den Text ragen.
Weder >fd.alignment=„right„var TotWidth = aRect[2] – aRect[0]< habe ich auch viel rumgespielt, leider ohne Erfolg.
Könnte mir bitte jemand helfen?
Vielen Dank im Voraus!
Die entscheidende Zeile für die Positionierung ist
var fd = myDoc.addField(„xftDate“+myPageNum+1, „text“, myPageNum, [30,15, myPageWidth-30,35]);
[30,15, myPageWidth-30,35] sind die Koordinaten der Box für die Fußzeile. Der Koordinaten-Ursprung ist der untere linke Punkt der Seite.
Allgemein ist das [ oben-links x, oben-links y, unten-rechts x, unten-rechts y].
Um den Text weiter nach unten zu schieben, muss man also oben-links y und unten-rechts y verkleinern.
Möglich wäre etwa
[30, 0, myPageWidth-30, 20]);
Der Text erscheint dann ganz unten mit einer Höhe von 20 Pixeln.
Das alles setzt aber immer voraus, dass unten im Dokument ein weißer Rand mit 20 Pixeln Höhe ist. Wenn eine Seite komplett gefüllt ist, ragt der Text in den Inhalt. Das lässt sich nicht verhindern.
Wie kann ich die Position der Fußzeile ändern, d.h. dass alles (Datum etc. ) weiter in Richtung Seitenmitte angezeigt wird?
Herzlichen Dank
Hallo,
ich habe zu diesem Script nochmals eine Frage.
Ist es möglich, die Dateiendung zu entfernen?
Sprich dass am Ende in der Fußzeile tatsächlich nur noch
„Dateiname“ anstatt „Dateiname.pdf“ steht.
Vielen Dank!
@Marion
Das Script muss im Unterverzeichnis „Javascript“ der Adobe-Reader-Installation liegen. Bei einem 32-Bit-Windows ist dass standardmäßig „C:\Program Files\Adobe\Reader 11.0\Reader\Javascripts“, bei einem 64-Bit-Windows „C:\Program Files (x86)\Adobe\Reader 11.0\Reader\Javascripts“. Geben Sie
einfach
C:\Program Files\Adobe\Reader 11.0\Reader
(32-Bit) in die Adresszeile des Windows-Explorers ein und bestätigen Sie mit der Enter-Taste. In diesem Verzeichnis liegt die Datei „AcroRd32.exe“. Erstellen Sie hier – wenn nicht vorhanden – das Verzeichnis „Javascripts“. Ansonsten suchen Sie auf dem Rechner nach „AcroRd32.exe“, um das richtige Verzeichnis zu finden.
Stellen Sie außerdem sicher, dass Sie wirklich das komplette Script kopiert haben. Verwenden Sie besser den Download http://www.myria.de/wp-content/uploads/2014/02/PrintFooter_v2.0.zip und kopieren Sie die enthaltenen JS-Datei in den Javascript-Ordner des Adobe Readers.
Hallo,
das Script habe ich unter „C:\Program Files\Adobe\Reader jetzt der entprechende Eintrag. Leider erhalte ich bei der Ausführung folgenden Fehler von Adobe Reader “ Es ist ein interner Fehler aufgetreten.
Wo könnte der Fehler liegen?
Viele Grüße
Hallo!
Wenn ich den PrintFooter in das entsprechende Verzeichnis geladen habe, erscheint dennoch nicht der neue Menüpunkt im Adobe Reader. Ich habe schon exzessiv gegoogelt aber keine Lösung gefunden, die mir weiterhilft. Dazu muss ich sagen, dass ich absoluter Anwender bin und eigentlich keine Ahnung habe. Ich arbeite mit Windows 7 Professional und Adobe Reader XI.
Grüße
Bitte prüfen Sie, ob der Pfad %appdata%\Adobe\Acrobat\Privileged\11.0\JavaScripts tatsächlich existiert. Fügen Sie die Zeile in die Adressleiste des Windows-Explorers ein und drücken Sie die Enter-Taste. Wenn der Ordner noch nicht vorhanden ist, geben Sie %appdata%\Adobe\Acrobat ein. Den Pfad sollte es auf jeden Fall geben. Erstellen Sie darunter die Ordner Privileged\11.0\JavaScripts. Kopieren Sie das Script in diesen Ordner und starten Sie Acrobat Reader neu. Das neue Menü sollte jetzt unter „Datei -> Fußzeile“ erscheinen.