Hallo merklin,
danke für deine antwort
ich habe aber von radznar ein beispielabweichung_mod.pdf gefunden leider aber mit acrobat live geschrieben was ich am ipad nicht benutzen kann genau das währe es aber was ich suchen würde.
Gibts eine möglichkeit es in acrobat x umzuschreiben
// Standardnamen des Formulars festlegen
var DefaultFileName = "BeispielAbweichung_mod.pdf"
// Counter in extras-Objekt dieses Buttons erstellen
Aktionen.initSaveCounter(this);
var CurrentSaveCount = this.extras.SaveCounter.nodes.item(0).value;
// Variablen
var namePart = Auftrag.rawValue;
var namePart1 = Kunde.rawValue;
var datum = new Date();
var datePart = (datum.getDate() + 0) + "-" + (datum.getMonth() + 1) + "-" + datum.getFullYear();
//var fullName = "/y/Band/GRP/Prod/FERTIGUN/Denkmann/RSV/Bochmann/" + namePart + "-" + namePart1 + " -" + datePart + ".pdf";
var currentFileName = event.target.path;
// Prüfen, ob Variablen nicht leer sind
if (namePart !== null && namePart !== "" && namePart1 !== null && namePart1 !== "") {
// Wenn der SaveCounter noch bei 0 ist, dann Formular erst mal speichern
if (CurrentSaveCount < 1) {
// Counter um 1 erhöhen
this.extras.SaveCounter.nodes.item(0).value = this.extras.SaveCounter.nodes.item(0).value + 1;
// Speicherpfad aus dem Variablen zusammenbasteln und als globale Variable speichern (Wichtig für Folder Level Script!)
SaveAsTarget = Aktionen.createSavePath(namePart, namePart1, datePart, DefaultFileName);
// Namen des aktuellen Formulars mit dem Speicherpfad vergleichen. Wäre ja möglich, dass das Formular umbenannt wurde.
if (SaveAsTarget !== currentFileName) {
// Versuchen, das Formular unter dem Speicherpfad zu speichern
try {
// Folder Level Script aufrufen
event.target.SaveAsFunction(event.target);
// Mitteilen, wo Formular gespeichert wurde
xfa.host.messageBox("Formular gespeichert unter:\r\r" + SaveAsTarget, "Formular gespeichert", 3, 0);
} catch (e) {
xfa.host.messageBox(e.toString().replace("RaiseError: ", "") + "\r\rStellen Sie sicher, dass der Zielordner existiert und keine gleichbenannte Datei dort existiert!", "Fehler beim Speichern des Formulars", 0, 0);
app.execMenuItem("SaveAs");
}
// MailTo-Funktion zeitverzögert ausführen.
app.setTimeOut(Aktionen.MailForm(), 3000);
// Formular nur speichern, wenn der aktuelle Name von Standardnamen abweicht.
} else {
try {
app.execMenuItem("SaveAs");
} catch(e) {
this.extras.SaveCounter.nodes.item(0).value = this.extras.SaveCounter.nodes.item(0).value - 1;
}
}
// Wenn der Counter höher als 0 ist, dann Formular nur mailen
} else {
Aktionen.MailForm();
}
// Warnen, wenn min. eine Variable leer ist
} else {
xfa.host.messageBox("Bitte erst die erforderlichen Felder ausfüllen");
}
Und die Funktionen im Skriptobjekt:
// Counter erstellen
function initSaveCounter(targetObject)
{
if (targetObject.extras.nodes.namedItem("SaveCounter") === null)
{
targetObject.extras.nodes.append(xfa.form.createNode("extras", "SaveCounter"));
targetObject.extras.SaveCounter.nodes.append(xfa.form.createNode("integer", "state"));
while (targetObject.extras.SaveCounter.nodes.length > 0)
{
targetObject.extras.SaveCounter.nodes.remove(targetObject.extras.SaveCounter.nodes.item(targetObject.extras.SaveCounter.nodes.length-1));
}
var newState = xfa.form.createNode("integer", "SaveCounter");
newState.value = 0;
targetObject.extras.SaveCounter.nodes.append(newState);
}
}
// Formular mailen
function MailForm() {
var Mailto = "
a@b.c";
var Betreff = Auftrag.rawValue;
var Betreff1 = Kunde.rawValue;
var Nachricht = "Abweichungsmeldung über ein Band";
var CC = "";
var BCC = "";
var Mail = "mailto:" + Mailto + "?Subject=Abweichungsmeldung für " + Betreff + " - " + Betreff1 + "&Body=" + Nachricht + "&cc=" + CC + "&bcc=" + BCC;
event.target.submitForm({
cURL: Mail,
bEmpty: true,
cSubmitAs: "PDF"
});
}
// Speicherpfad erstellen
function createSavePath(namePart, namePart1, datePart, DefaultFileName) {
// Variablen
var Var1 = namePart;
var Var2 = namePart1;
// Zeitstempel
var TimeStamp = datePart;
// Dateinamen mit Standardnamen vergleichen
if (event.target.documentFileName === DefaultFileName) {
// Variablen zu neuem Speicherpfad verketten
var NewFileName = DefaultFileName.replace(".pdf", "_");
NewFileName += Var1 + "_";
NewFileName += Var2 + "_";
NewFileName += TimeStamp;
NewFileName += ".pdf";
// Alle unsicheren Zeichen aus dem Speicherpfad entfernen und durch Unterstrich ersetzen, um Raise Error zu verhindern (Wichtig!)
NewFileName = NewFileName.replace(/[\s\!\?\<\>\'\"\*\/\\=\?\^\`\{\}\|\~]+/g, "_");
// Speicherpfad zurückgeben
return event.target.path.replace(event.target.documentFileName, "") + NewFileName;
} else {
return event.target.path;
}
}
Das Formular braucht anderes Folder Level Skript, da ich deines nicht hatte, brauchst Du dieses hier.
var SaveAsFunction = app.trustedFunction(function(doc)
{
app.beginPriv();
var newSaveAsTarget = SaveAsTarget;
doc.saveAs({cPath: newSaveAsTarget});
app.endPriv();
});
danke und mfg günter