PDF Formular per Email senden mit individuellem Betreff
Hallo,
ich möchte gerne ein PDF Formular per Email versenden wobei die Betreffzeile automatisch individuell ausgefüllt werden soll (Kundennummer, Name des Kunden und Land).
Ich benötige einen String den ich in das Feld "URL für Verknüpfung eingbenen" kann.
Ich dachte es wäre irgendwas wie mailto:?subject=Name + getField("CustomerName"). Aber leider steht dann nur in der Betreffzeile "Name"... Irgendwas mit dem getField scheint nicht zu stimmen...
Das Formular habe ich mit Adobe Acrobat XI Pro Version 10.0.07 gemacht.
hat jemand eine Idee wie das funktionieren könnte?
Danke!
ich möchte gerne ein PDF Formular per Email versenden wobei die Betreffzeile automatisch individuell ausgefüllt werden soll (Kundennummer, Name des Kunden und Land).
Ich benötige einen String den ich in das Feld "URL für Verknüpfung eingbenen" kann.
Ich dachte es wäre irgendwas wie mailto:?subject=Name + getField("CustomerName"). Aber leider steht dann nur in der Betreffzeile "Name"... Irgendwas mit dem getField scheint nicht zu stimmen...
Das Formular habe ich mit Adobe Acrobat XI Pro Version 10.0.07 gemacht.
hat jemand eine Idee wie das funktionieren könnte?
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 241270
Url: https://administrator.de/forum/pdf-formular-per-email-senden-mit-individuellem-betreff-241270.html
Ausgedruckt am: 05.02.2025 um 06:02 Uhr
12 Kommentare
Neuester Kommentar
Hallo Casiopaya80, Willkommen auf Administrator.de!
Nehme als Aktion der Schaltfläche "JavaScript ausführen" und dann gibst du folgendes ein (Feldnamen musst du natürlich an dein Dokument anpassen):
Siehe auch dieses Demo-PDF
Dies sind die Parameter für die Funktion mailDoc:
Eine Acrobat Javascript API Referenz gibt es zum nachlesen
Grüße Uwe
Nehme als Aktion der Schaltfläche "JavaScript ausführen" und dann gibst du folgendes ein (Feldnamen musst du natürlich an dein Dokument anpassen):
var c_ID = this.getField('CustomerID').value;
var c_name = this.getField('CustomerName').value;
var c_land = this.getField('CustomerCountry').value;
var betreff = 'Kundennummer: ' + c_ID + ' / Name: ' + c_name + " / Land: " + c_land;
var body = 'Das ist der Body der Nachricht';
this.mailDoc(false, "empfaenger@domain.de", "", "", betreff, body );
Dies sind die Parameter für die Funktion mailDoc:
bUI - (optional) If true (the default), the rest of the parameters are used in a
compose-new-message window that is displayed to the user. If false, the cTo
parameter is required and all others are optional.
Note: (Acrobat 7.0) When this method is executed in a non-privileged context, the
bUI parameter is not honored and defaults to true. See Privileged versus
non-privileged context.
cTo (optional) - The semicolon-delimited list of recipients for the message.
cCc (optional) - The semicolon-delimited list of CC recipients for the message.
cBcc (optional) - The semicolon-delimited list of BCC recipients for the message.
cSubject (optional) - The subject of the message. The length limit is 64 KB.
cMsg (optional) - The content of the message. The length limit is 64 KB.
Grüße Uwe
Zitat von @Casiopaya80:
Wie kann ich dem Formular denn sagen, dass es nach meinem Text (Body) ein paar Leerzeilen macht?
Wie kann ich dem Formular denn sagen, dass es nach meinem Text (Body) ein paar Leerzeilen macht?
var body = 'Das ist der Body der Nachricht\n\n\n';
Hallo Gert, Willkommen auf Administrator.de!
Beispiel für die Prüfung eines Feldes:
Wenn du alle Textfelder auf einmal prüfen willst, geht das auch mit einer Schleife über alle Textfelder:
Für Felder anderen Typs muss man in der Schleife separat prüfen, je nachdem was für ein Typ Feld es ist.
Wenn man nur Felder prüfen will die die Eigenschaft Benötigt (required) haben, kann man das einfach mit Ergänzung des IF-Teils machen:
Ich verweise auf die JavaScript-Referenz von Acrobat, da stehen die verfügbaren Eigenschaften aller Element drin. Ist für Entwicklungszwecke mit Acrobat unverzichtbar.
Grüße Uwe
Wir kann man das Script ergänzen, damit die erforderlichen Felder geprüft werden, dass sie nicht leer sind?
Dazu musst du jedes Feld auf seine Werte prüfen und bei einem leeren Feld aus der Funktion springen.Beispiel für die Prüfung eines Feldes:
var c_ID = this.getField('CustomerID').value;
if (c_ID == ""){
app.alert('Das Feld darf nicht leer sein.');
exit;
}
// usw.
for(var i=0; i<this.numFields;i++){
var f = this.getField(this.getNthFieldName(i));
if (f.type == "text" && f.value == ""){
app.alert('Ein benötigtes Feld ist nicht ausgefüllt');
f.setFocus();
exit;
}
}
var c_name = this.getField('CustomerName').value;
var c_land = this.getField('CustomerCountry').value;
var c_ID = this.getField('CustomerID').value;
var betreff = 'Kundennummer: ' + c_ID + ' / Name: ' + c_name + " / Land: " + c_land;
var body = 'Das ist der Body der Nachricht';
this.mailDoc(false, "empfaenger@domain.de", "", "", betreff, body );
Wenn man nur Felder prüfen will die die Eigenschaft Benötigt (required) haben, kann man das einfach mit Ergänzung des IF-Teils machen:
if (f.type == "text" && f.required == true && f.value == ""){
Grüße Uwe
Hallo Uwe
vielen Dank für Deine schnelle Hilfe. Ich denke das wird mir weiterhelfen. Es geht nur um zwei Textfelder die geprüft werden müssen.
Die JavaScript Referenz hatte ich mir schon angeschaut, aber leider habe ich nur sehr wenig Ahnung mit JavaScript.
Ich werde das heute abend mal ausprobieren und dann noch ein Feedback geben.
Nochmals vielen Dank für die schnelle Reaktion!
vielen Dank für Deine schnelle Hilfe. Ich denke das wird mir weiterhelfen. Es geht nur um zwei Textfelder die geprüft werden müssen.
Die JavaScript Referenz hatte ich mir schon angeschaut, aber leider habe ich nur sehr wenig Ahnung mit JavaScript.
Ich werde das heute abend mal ausprobieren und dann noch ein Feedback geben.
Nochmals vielen Dank für die schnelle Reaktion!
Hallo nochmal
habe das Script angepasst und es funtkioniert wie es soll. Super, vielen Dank!
Falls es vielleicht jemand anderem hilft stelle ich das Script mal hier rein:
var c_name = this.getField('Person 1').value;
if (c_name == ""){
exit;
}
var c_tel = this.getField('Telefon').value;
if (c_tel == ""){
exit;
}
var betreff = 'Dein Betreff / ' + c_name;
var body = 'Dein Text';
this.mailDoc(false, "info@xxxxx.xx", "", "", betreff, body );
habe das Script angepasst und es funtkioniert wie es soll. Super, vielen Dank!
Falls es vielleicht jemand anderem hilft stelle ich das Script mal hier rein:
var c_name = this.getField('Person 1').value;
if (c_name == ""){
Person 1: Förnamn/Efternam |
}
var c_tel = this.getField('Telefon').value;
if (c_tel == ""){
Telefon |
}
var betreff = 'Dein Betreff / ' + c_name;
var body = 'Dein Text';
this.mailDoc(false, "info@xxxxx.xx", "", "", betreff, body );
Hallo
eine weitere Frage hierzu:
mein Kunde möchte gerne, dass sich das PDF-Dokument in einem neuen Tab oder neuer Seite öffnet. Vor allem auch auf dem Smartphone, so dass das Formular dann direkt im Smartphone (und auch am Desktop-PC) ausgefüllt und versendete werden kann.
Kann mir jemand einen Tipp geben dazu?
Vielen Dank im Voraus!
eine weitere Frage hierzu:
mein Kunde möchte gerne, dass sich das PDF-Dokument in einem neuen Tab oder neuer Seite öffnet. Vor allem auch auf dem Smartphone, so dass das Formular dann direkt im Smartphone (und auch am Desktop-PC) ausgefüllt und versendete werden kann.
Kann mir jemand einen Tipp geben dazu?
Vielen Dank im Voraus!
Was meinst du mit "auf einer neuer Seite" ? Im Browser ?
Dafür reicht es, dem Link in deiner HTML-Datei das Attribut target="_blank" mit zu geben.
Aber für sowas bitte in Zukunft einen neuen Thread aufmachen anstatt hier alte Sachen aufzuwärmen, das hat nun gar nichts mit dem Thread zu tun. Merci.
Grüße Uwe
Dafür reicht es, dem Link in deiner HTML-Datei das Attribut target="_blank" mit zu geben.
<a href="http://www.domain.de/datei.pdf" target="_blank" >Dein Dokument</a>
Grüße Uwe