Javasrcipt im PDF?

Andi

Grünschnabel
Hallo Zusammen,

ich bin am Verzeifeln, ich arbeite mit PDFs und darin entsprechend eingebettete Javascripte... folgendes Problem, ich habe ein Formular in unsrem Intranet, das eine Menge an Feldern besitzt, weiterhin werden eine fixe Anzahl der Felder vordefiniert und gefüllt... Datum usw.

Jetzt das Problem:
Wenn der User einen Aufruf gestartet hat, das Formular ausgefüllt hat und abschließend druckt, soll das PDF bei einem erneuten Aufruf wieder mit leeren Feldern zur Verfügung zu stehen, jedoch cached er sämtliche Formularfelder.... was natürlich nicht im Sinne des User ist!

Jetzt meine Frage, ich habe im Acrobat Javascript Handbuch einen Befehl gefunden, der mir alle Felder zurücksetzt! Das ist aber nicht die Lösung, da meine vorbelegten Felder dann auch leer sind! :-(

Möglicherweise hilft mir ein ganz einfaches Script.... auch die Leute die mit Pdfs noch nichts gemacht haben und eine Lösung kennen, javaseitig... raus damit! Danke vorab für eure Hilfe


cu
Andi
 
Hmn.
Da fallen mir nur zwei Lösungen ein.
Entweder 2 Formulare verwenden eins für die festgelegten Felder,und eins ohne.
Das wird aber mit dem abschicken Probleme geben.
Ich denke mal die einfachste Methode wäre manuell wenn die PDF-Datei aufgerufen wird alle Felder die leer sein sollen manuell zu leeren,per formname.inputname.value=''
 
Befehl alle Löschen... ausser?!

Nun zwei Formulare wären nicht gut...

und das Problem ist, dass ich etwa 120 PDFs habe mit unterschiedlich (ca. 10 - 150) Eingabefeldern, Buttons, Checkboxen usw.

Ich möchte beim Öffnen des Dokumentes ein eingebettetes Script ablaufen lassen welches alle Felder zurücksetzen soll... ist auch weiter kein Problem, wenn ich nicht ein paar von diesem Script verschont lassen muß, meine vorbelegten halt!

also in Worten => beim Öffnen lösche alle Felder ausser Feld1; Feld2...

das wäre die Lösung, das ganze könnte ich dann mit der Stapelverarbeitung durch meine Scripte laufen lassen :)

Aber! Es gibt ja im Acrobat eine Funktion, die beim Seitenaufruf die Felder zurücksetzten kann, das aber dann immer wiederholt, wenn ich mal von Seite 2 auf Seite 1 zurück wechsele...

Jetzt bin ich echt am Verzweifeln...

Bitte um Hilfe!

Cu
Andi
 
denke falsch verstanden...

nun ich habe bereits folgendes script eingebettet:

var d = util.printd("dd.mm.yyyy", new Date());
var date = this.getField("date");

date.value = d;

und hierzu soll eine Funktion (wie auch immer) kommen, die alle
Formularfelder ausser (date... usw.) zurücksetzt, und das ganze einmalig beim Aufruf, von mir auch aus mit Check, if Feldxx ist gefüllt dann lösche alle ausser...

Wenn Du eine Funktion kennst, dann poste sie, ich bin mit meinem latein am ende, danke vorab für Deine Mühe!

Cu
Andi
 
Hm, vielleicht kannst du ja Standardvorgabe dafür verwenden. Wenn du für z.b. ein Textfeld da "Leertext" rein schreiben würdest, dann würde nach einem Formular-Reset alle anderen Felder leer sein außer dieses, da würde dann der Text "Leertext" drin stehen...
Standardvorgabe findest du im Eigenschaftendialog von Formularfeldern.
 
mit welchem acrobat arbeitest du denn?

zugegeben - jetzt auf das datum geguckt, kommt meine antwort ein bisschen spät...

aber in acrobat 6 kann man das auch ohne javascript lösen - und zwar folgendermaßen:

erster schritt:

einen schalter definieren, der so groß ist, wie das gesamte dokument. dem schalter als farbe "keine farbe" geben.

dann kommt der user gar nicht drum rum, diesen schalter zu betätigen, wenn er irgendetwas ausfüllen möchte.

zweiter schritt:

dem schalter bei "feld aktivieren" die zwei aktionen zuweisen.

a) dieser schalter soll ausgeblendet werden.
b) zweitens: formular zurücksetzen. und in acrobat 6 ist bei "formular zurücksetzen" voreingestellt, dass ALLE felder zurückgesetzt werden. du kannst dann in der aufpoppenden liste runterscrollen - und die wichtigen felder abwählen.

wenn du es dir einfach machen willst, kannst du die zurückzusetzenden felder auch so benennen, dass sie in der liste gleich oben auftauchen. also ne null als namensanfang oder ähnliches.

ist nicht die eleganteste lösung - aber funktioniert.

was ich jetzt noch nicht ausprobiert hab, ob formular resetten auch bei schreibgeschützten feldern greift. wenn nicht, umso besser.

:)
 
Zurück