Formular unter anderem Namen speichern

Die Möglichkeiten und Tücken von Formularen
Antworten
Stormy
Beiträge: 5
Registriert: 24.11.2011, 18:10

Formular unter anderem Namen speichern

Beitrag von Stormy » 28.11.2011, 10:24

Nachdem ich tagelang versucht habe, ein Krankenkassen-Formular, mit dem ich meine Rechnungen einreiche, unter einem bestimmten Ordner mit Zeitstempel versehenen Namen per Javascript abzuspeichern, bin ich mehr aus Zufall auf eine Lösung gestoßen, die direkt aus Acrobat X Pro funktioniert. Die hier im Forum gefundene Lösung mit trustedsave... JS lief nur, wenn ich das Formular im Livecycle Designer erstellte, der mir das Formular nicht nur verratschte, sondern auch von 83kB auf 1,1MB aufblies. Diese Lösung, dessen Urheber mir leider nicht mehr bekannt ist (an dieser Stelle vielen Dank an ihn), möchte ich Euch nicht vorenthalten:

/* Save files with a timestamp filename */
/* this script does not overwrite existing files - unique names are created */
/* EverMap LLC, 2009 */

function DoesFileExists(pathname)
{
var result = false;
try
{
var otherDoc = app.openDoc(pathname);
if (otherDoc != null)
{
result = true;
otherDoc.closeDoc();
}
}
catch(e)
{
result = false;
}
return result;
}

// create a unique filename for output file
function GetUniqueOutputFileName(pathName)
{
var i = 1;
var baseName = pathName.slice(0, pathName.length - 4);
var testName = pathName;
while (DoesFileExists(testName) == true)
{
testName = baseName + " " + i + ".pdf";
i++;
}
return testName;
}

var i = this.path.search(/[^:/]+\.pdf$/);
var fname = this.path.slice(i, this.path.length - 4);

// replace /c/data/ with a desired folder path where to store extracted files
var folder = "/F/Office/PBeaKK/Anträge/";

// now add time stamp data to the filename
var t = new Date();
fname += " - " + t.toLocaleString();
var outputname = fname.replace(/[,\/\?*<>]/g," ");
outputname = outputname.replace(/[:]/g,"-");

var outputpath = folder + outputname + ".pdf";
this.saveAs(GetUniqueOutputFileName(outputpath));

Ich habe das Ganze etwas für meine Zwecke modifiziert und die Funktionen direkt als Javascriptanweisung für Dokumente eingebunden. Bei Benutzung bitte daran denken, die "var folder"-Anweisung Euren Wünschen entsprechend anzupassen.
Gruß
Peter

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

Formular unter anderem Namen speichern

Beitrag von radzmar » 28.11.2011, 11:52

Das klappt aber nur, wenn Du das Skript in direkt in die JavaScript-Konsole eingibst und ausführst oder in einer Aktion (Batch) abspeicherst. Bei einem Button verbieten die Sicherheitseinstellungen das Ausführen der Funktion "saveAs()".

Stormy
Beiträge: 5
Registriert: 24.11.2011, 18:10

Formular unter anderem Namen speichern

Beitrag von Stormy » 28.11.2011, 12:04

Hallo radzmar,

das stimmt so nicht! Bei mir läuft es über einen Button, alles andere wäre auch Unsinn und unergonomisch (ich hab's halt gerne einfach).
Mein System: Win7 Ultimate 64bit und das ist ja bekannterweise voll mit Restriktionen.

Gruß
Peter

Benutzeravatar
Merklin
Beiträge: 1857
Registriert: 04.04.2009, 17:03

Formular unter anderem Namen speichern

Beitrag von Merklin » 28.11.2011, 23:11

Hallo Peter,

also bei mir, funktioniert es jedenfalls nicht.

NotAllowedError: Sicherheitseinstellungen verhindern den Zugriff auf diese Eigenschaft oder Methode.
Doc.saveAs:51:Field Schaltfläche2:Mouse Up


Verwende allerdings auch Acrobat 9

VG Merklin

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

Formular unter anderem Namen speichern

Beitrag von radzmar » 29.11.2011, 07:39

Mich hätte auch gewundert, wenn das gehen würde.
Die saveAs-Methode kann seit jeher nur aus einem previlegierten Kontext heraus ausgeführt werden, wie ein Folder Level Script, die Konsole oder eine Aktion/Stapelverarbeitung (Batch).
Welche Acrobat/Reader-Version verwendet wird, ist egal.

Steht alles in der JS API Referenz auf Seite 333.
http://www.adobe.com/content/dam/Adobe/ ... erence.pdf

Stormy
Beiträge: 5
Registriert: 24.11.2011, 18:10

Formular unter anderem Namen speichern

Beitrag von Stormy » 30.11.2011, 17:35

Ich kann nur nochmal wiederholen: bei mir funktioniert es so und zwar beim Klick auf einen Button, der mir das Formular gleichzeitig doppelseitig ausdruckt (zum Versenden an die Krankenkasse) und dann unter einem von mir gewählten Namen, der auch das Datum enthält in einem von mir gewählten Ordner abspeichert.

jagga007
Beiträge: 9
Registriert: 11.10.2014, 15:36

Formular unter anderem Namen speichern

Beitrag von jagga007 » 12.10.2014, 13:39

Hi Stormy,

ich suche auch sowas ähnliches. Konntest du schon mehr in Erfahrung bringen so das dieses Script funktioniert?



Gruß jagga007

Antworten