[GastForen Programme Web/Internet PDF Grundlagen / Web / eForms PDF nur drucken wenn alle Felder ausgefüllt?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Web/Internet - Webdesign, eForms, Flash
Themen
Beiträge
Moderatoren
Letzter Beitrag

PDF nur drucken wenn alle Felder ausgefüllt?

Sanes
Beiträge gesamt: 6

15. Feb 2010, 08:20
Beitrag # 1 von 15
Bewertung:
(21256 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute,

Nun ich habe hier ein PDF mit einem Simplen Formular (Name etc) und möchte dass wenn ich auf eine Schaltfläche "Ausdrucken" drücke dass kontrolliert wird ob alles ausgefüllt ist bevor es druckt.

In den Eigenschaften habe ich im Reiter "Aktionen" bei "Maus Loslassen" den Menübefehl "Datei>Drucken" aber es müsste erst kontrollieren ob alle Felder ausgefüllt sind, so wie beim Speichern. (Beim speichern klappts, da ich alle Felder als Pflichtfelder markiert habe) aber meinen Druck-Schalter interessiert das nicht.

Ist das irgendwie machbar? Per Java-script?

Ich arbeite mit Adobe Acrobat 9 Pro Extended.

Danke!
X

PDF nur drucken wenn alle Felder ausgefüllt?

Max Wyss
Beiträge gesamt: 532

25. Feb 2010, 18:35
Beitrag # 2 von 15
Beitrag ID: #434749
Bewertung:
(21090 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das geht via JavaScript.

Aber, es ist zu beachten, dass eine hundertprozentige Sicherheit gegen das Ausdrucken unvollständig ausgefüllter Formulare nicht gegeben ist (es sei denn, der Druckbefehl würde in Acrobat selbst abgefangen.

Was geht, ist das Erstellen eines grossen, schönen "Print me"-Buttons, bei welchem die hinterlegte Aktion erst kontrolliert, ob alles korrekt ausgefüllt ist, und erst dann den Druckbefehl auslöst.

Wenn die anderen Methoden des Druckens (Menubefehl, Toolbutton, Tastaturkürzel) auch abgefangen werden müssen, gibt es das WillPrint-Event. Hier kann eine Valididerung vorgenommen werden, ABER der Druckvorgang kann nicht mehr gestoppt werden. Was hier noch möglich ist, wäre das Einblenden eines Overlays "unvollständiges Formular" oder ähnlich, welches visuell anzeigt, dass das Formular unvollständig ist).

HTH.


als Antwort auf: [#433607]

PDF nur drucken wenn alle Felder ausgefüllt?

taunus11
Beiträge gesamt: 546

25. Feb 2010, 22:37
Beitrag # 3 von 15
Beitrag ID: #434770
Bewertung:
(21072 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Sanes ] Beim speichern klappts, da ich alle Felder als Pflichtfelder markiert habe

Formulare, die nicht vollständig ausgefüllt sind, lassen sich speichern.


als Antwort auf: [#433607]

PDF nur drucken wenn alle Felder ausgefüllt?

Sanes
Beiträge gesamt: 6

26. Feb 2010, 10:19
Beitrag # 4 von 15
Beitrag ID: #434798
Bewertung:
(21044 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Max, vielen Dank für deine Antwort.

Das ist genau was ich erreichen will.
Ich habe einen "Drucken" Button und wenn man dort draufklickt soll ein JavaScript ausgeführt werden das:

1. Kontrollieren ob alle Felder ausgefüllt
2. Wenn ja -> Drucken
3. Wenn nein -> Meldung "Bitte alle Felder ausfüllen" oder so.

Das mit dem Button hab ich alles hingekriegt, aber wie ich die Abfrage erstelle dass er das kontrolliert schaff ich nicht.

Code
if Alle Felder sind ausgefüllt == "1") 
{
Drucken!
}
else
{
(app.alert("Bitte füllen Sie alle Felder aus!", 1, 0, ));
}


Und genau bei den Roten teilen liegt mein Problem. Ich weiss nicht wie ich das hinbekommen soll.

Code
doc.print() 

und

Code
document.all.pdfFile.print() 

wollen bei mir nicht funktionieren.

und wie ich kontrolliere ob alle Felder ausgefüllt sind (Es sind viele) .. k.A

Und die Will-Print Aktion ist nicht so wichtig, es geht hauptsächlich um den Button.

Hoffentlich kann mir einer helfen.

Vielen Dank, Sanes


als Antwort auf: [#434749]

PDF nur drucken wenn alle Felder ausgefüllt?

Uwe Laubender
Beiträge gesamt: 4156

26. Feb 2010, 14:03
Beitrag # 5 von 15
Beitrag ID: #434833
Bewertung:
(21026 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Sanes!
Probiere mal das Drucken mit:

Code
app.doc.print(); 


Bei Deiner if-Anweisung kann ich Dir leider nicht weiterhelfen.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#434798]

PDF nur drucken wenn alle Felder ausgefüllt?

MurphysLaw
Beiträge gesamt: 588

26. Feb 2010, 15:43
Beitrag # 6 von 15
Beitrag ID: #434852
Bewertung:
(21008 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Sanes,

das hier sollte klappen:
Code
allgood(); 
function allgood()
{
var mel;
mel=""
for (var i=0;i<this.numFields;i++)
{
var fName=this.getNthFieldName(i);
var f=this.getField(fName);
if ((f.type != "button") && (f.value.length<1))
{
mel=mel + fName + ", ";
}
}
if (mel==""){
app.doc.print();
}
else
{app.alert("Vor dem Drucken bitte noch folgende Felder ausfüllen: " + mel);
}
}


Hilft det?
:-)

Grüße,
Murphy

________________________________________

Die letzte Stimme, die man hört, bevor die Welt explodiert, wird die Stimme eines Experten sein, der sagt: Das ist technisch unmöglich! (Sir Peter Ustinov)


als Antwort auf: [#434798]

PDF nur drucken wenn alle Felder ausgefüllt?

Sanes
Beiträge gesamt: 6

1. Mär 2010, 08:12
Beitrag # 7 von 15
Beitrag ID: #434956
Bewertung:
(20955 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Uwe Laubender:
Danke du hast recht ich hab mich da wohl i-wo verlesen :)

MurphysLaw:
Vielen Dank du hast mir sehr geholfen! Der Code funktioniert so gut wie perfekt!
Nun gibt es noch ein Problem... :P
Es sind leider nicht alles Pflichtfelder zb. "2er Name (Optional)" und wenn jemand keinen hat dann soll er ja trotzdem drucken können.

Ich denke ich sehe ca. wie der Code aussehen müsste, bzw abgeändert, ich kann das auch alles machen aber ein kleiner Lösungsansatz wie ich es mit der Syntax hinbekomme wär nicht schlecht :D

Also wenn ich das richtig sehe muss die For-Schleife durch eine normale if / else Abfrage für jedes einzelne Pflichtfeld ersetzen?

Andere Idee:
Die Felder sind einer Zahl zugewiesen? du zählst ja hoch in deiner For-Schleife, kann ich sagen "Wenn i = 2 dann nicht beachten" oder ähnlich?

ich hab an diese Erweiterung gedacht:

Code
if ((f.type != "button") && (f.value.length<1) && (i != 2)) 


denke(hoffe) das würde klappen. ich versuch das mal. nun sind es aber gut .. 10-15 optionale felder, muss das dann so aussehen??


Code
if ((f.type != "button") && (f.value.length<1) && (i != 2) && (i != 4) && (i != 6) && (i != 8) && (i != 10) 


oder kann man das auch so aufbauen?

Code
if ((f.type != "button") && (f.value.length<1) && (i != 2, 4, 6, 8, 10)) 


(2, 4, 6, 8 und 10 sind optionale felder!)

Hoffe jemand kann mir helfen :) wäre sehr dankbar!

Edit:

Gäbe es vllt ein f.Pflichtfeld oder ähnlich? Dann könnte man das ja so machen:

Code
if ((f.type != "button") && (f.value.length<1) && (i = f.Pflichtfeld)) 


Das wär ja am einfachsten.


als Antwort auf: [#434852]
(Dieser Beitrag wurde von Sanes am 1. Mär 2010, 08:20 geändert)

PDF nur drucken wenn alle Felder ausgefüllt?

Uwe Laubender
Beiträge gesamt: 4156

1. Mär 2010, 09:13
Beitrag # 8 von 15
Beitrag ID: #434962
Bewertung:
(20943 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Sanes!
Die Frage ist, in welcher Reihenfolge die Felder in der for-Schleife angesprochen werden: nach der Reihenfolge der Erstellung? Dann hast Du so eher keine Chance, die Optionsfelder auszunehmen, wenn Du die Datei für spätere Änderungen flexibel halten willst.
Was, wenn Du zwischendrin noch an einem Feld etwas änderst? Wird das Feld dann von der for-Schleife als Index 0 erkannt, es hatte aber vorher einen anderen Index?

Nach Tab-Reihenfolge? (Ich weiß es einfach nicht, hab' im Moment auch keine Zeit das zu testen…)

Du könntest natürlich versuchen die Namen der Felder über die for-Schleife in ein Array zu schreiben, und dann anschließend das Array auswerten, um nur mit den benötigten Feldnamen zu arbeiten. Nur so 'ne Idee…

Und zu Deinen Code-Vorschlägen: probier's doch einfach mal aus.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#434956]

PDF nur drucken wenn alle Felder ausgefüllt?

Sanes
Beiträge gesamt: 6

1. Mär 2010, 09:27
Beitrag # 9 von 15
Beitrag ID: #434966
Bewertung:
(20939 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank für die schnelle Antwort!

Du hast Recht, wenn ich ein neues erstelle und das kriegt dann den Index 0 dann werden alle um 1 verschoben und es geht nix mehr :(

das mit dem if i f.Pflichtfeld sollte ja klappen. aber ist es wirklich "f.Pflichtfeld"? glaube nicht .. weiss einer wie die Variable ... konstante (was auch immer?) ^^ heisst die bestimmt ob Erforderlich True/False ist.

danke


als Antwort auf: [#434962]

PDF nur drucken wenn alle Felder ausgefüllt?

Sanes
Beiträge gesamt: 6

1. Mär 2010, 10:42
Beitrag # 10 von 15
Beitrag ID: #434975
Bewertung:
(20922 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Code
if ((f.type != "button") && (f.value.length<1) && (f.required = True)) 


klappt nicht


als Antwort auf: [#434966]

PDF nur drucken wenn alle Felder ausgefüllt?

MurphysLaw
Beiträge gesamt: 588

1. Mär 2010, 11:56
Beitrag # 11 von 15
Beitrag ID: #434984
Bewertung:
(20909 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Sanes ]
Code
if ((f.type != "button") && (f.value.length<1) && (f.required = True)) 


klappt nicht

Klappt nur deshalb nicht, weil einfaches "=" ein zuweisen ist. Der logische Vergleich funzt mit doppelt:
Code
if ((f.type != "button") && (f.value.length<1) && (f.required == True)) 

Du kannst das "=" aber auch ganz weglassen und den impliziten TRUE/False Wert von "required" verwenden:
Code
if ((f.type != "button") && f.required && (f.value.length<1)) 


;-)

Grüßle,
Murphy

________________________________________

Die letzte Stimme, die man hört, bevor die Welt explodiert, wird die Stimme eines Experten sein, der sagt: Das ist technisch unmöglich! (Sir Peter Ustinov)


als Antwort auf: [#434975]

PDF nur drucken wenn alle Felder ausgefüllt?

Sanes
Beiträge gesamt: 6

1. Mär 2010, 14:56
Beitrag # 12 von 15
Beitrag ID: #435024
Bewertung:
(20886 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es hat jetzt geklappt!
Vielen Dank für die nette Unterstützung!
Hier mein Code

Code
kontrollieren(); 
function kontrollieren()
{
var feld;
feld=""
for (var i=0;i<this.numFields;i++)
{
var fName=this.getNthFieldName(i);
var f=this.getField(fName);
if ((f.type != "button") && (f.value.length<1) && (f.RequiredLevel != 1))
{
feld=feld + fName + "\n";
}
}
if (feld==""){
app.doc.print();
}
else
{app.alert("Bitte füllen sie vor dem Drucken alle Pflichtfelder aus.\nFehlende Felder:\n\n" + feld);
}
}



als Antwort auf: [#433607]

PDF nur drucken wenn alle Felder ausgefüllt?

Max Wyss
Beiträge gesamt: 532

6. Mär 2010, 11:16
Beitrag # 13 von 15
Beitrag ID: #435567
Bewertung:
(20794 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich möchte den Weg über ein Array, welches die Namen der Pflichtfelder enthält, wirklich hervorheben. Das ganze vereinfacht sich hierdurch sehr stark, da wir nicht mehr sämtliche Felder abarbeiten müssen, und die required Eigenschaft auch nicht bemühen müssen (diese Eigenschaft ist spezifisch für das Übermitteln von Daten gemacht worden, und könnte uns einen grossen Streich spielen (wenn wir übermitteln wollen).

Ein Array lässt sich auch zu Laufzeit dynamisch erweitern (und reduzieren). Damit ist auch der Fall abgefangen, wenn irgend ein "anderes" genauer angegeben werden soll.

Die Prüfschleife sieht dann in etwa so aus:

var fehlercounter = 0 ;
for (var i = 0 ; i < pflichtarr.length ; i++) {
if (this.getField(pflichtarr).value == this.getField(pflichtarr.defaultValue) {
fehlercounter++ ;
}
}

if (fehlercounter == 0) {
// Drucken
} else {
// Warnung
}


Dieser Weg bietet auch wesentlich mehr Flexibilität beim Erweitern und Wiederverwenden des Formulars.


HTH.


als Antwort auf: [#434962]

PDF nur drucken wenn alle Felder ausgefüllt?

Glaha
Beiträge gesamt: 4

18. Mai 2017, 09:23
Beitrag # 14 von 15
Beitrag ID: #557518
Bewertung:
(7686 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,
ich hab hier euren sehr Hilfreichen Code gefunden.

Der läuft auch soweit.

Frage: Habt ihr das Problem gelöst, dass er alle Felder als Pflichtfelder erkennt?

Wenn ja, könntet ihr mir sagen wie?

Ich hab leider keine Ahnung für Javascript - Nicht genug um sowas zu erstellen. Möchte aber ein Formular entspreched bearbeiten.

Vielen herzlichen Dank :-)


als Antwort auf: [#435567]

PDF nur drucken wenn alle Felder ausgefüllt?

taunus11
Beiträge gesamt: 546

18. Mai 2017, 10:19
Beitrag # 15 von 15
Beitrag ID: #557525
Bewertung:
(7681 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Pflichtfelder erkennt man an der Eigenschaft required.


als Antwort auf: [#557518]
Hier Klicken X

Aktuell

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
26.09.2018

Hochschuloe der Medien, Stuttgart
Mittwoch, 26. Sept. 2018, 19.00 - 21.00 Uhr

Vertrag

Nur auf den ersten Blick scheint dieses Thema exotisch. Aber eine neue EU-Richtlinie und deren Auswirkungen auf deutsche Gesetze werden dieses Thema auch für Publisher interessant machen. Die EU-Richtlinie "2102 zu Barrierefreiheit" besagt folgendes: Ab dem 23. September 2018 müssen alle öffentlichen Stellen ihre neuen (Office- oder PDF-) Dokumente grundsätzlich barrierefrei veröffentlichen. Im Juni wurde der Gesetzentwurf zur Umsetzung dieser Richtlinie im deutschen Bundestag vom "Ausschuss für Arbeit und Soziales" (19/2728) angenommen. Es wird also ernst für "öffentliche Stellen" und damit auch für deren Dienstleister, die mit der Umsetzung beauftragt werden. Die Richtlinie gilt nämlich nicht nur für Bundes- und Landesbehörden, sondern auch für Verbände, die im Allgemeininteresse liegende Aufgaben erfüllen. Das wären somit auch Gerichte, Polizeistellen, Krankenhäuser, Universitäten, Bibliotheken und einige mehr. Weitere Informationen findest Du hier, hier und hier. Wenn also oben genannte Auftraggeber zu Deinen Kunden zählen, solltest Du Dich vorbereiten. Und da es neben Websites auch um alle downloadbaren Dateien geht sind eben auch PDFs zukünftig barrierefrei zu erstellen. Arbeitet man in InDesign, können dort einige Vorbereitungen getroffen werden. Klaas Posselt ist der ausgewiesene Spezialist im deutschsprachigen Raum für alle Fragen rund um das Thema. Deshalb freuen wir uns, dass er uns in einem Vortrag die Grundlagen dazu vermitteln wird. Wir setzen voraus, dass Du den Umgang mit InDesign gewohnt bist, die Gründe und Vorteile von der Nutzung von Formaten kennst und weißt, wie man lange Dokumente „richtig“ aufbaut. Der Vortrag setzt bewusst DANACH ein. Inhalt des Vortrages ist der Hintergrund von „Barrierefreiheit“ und Möglichkeiten und Grenzen innerhalb von InDesign. Es wird erklärt, welche Bedeutung das kostenpflichtige PlugIn MadeToTag hat und warum und für was man es braucht. Ziel ist es den Rahmen aufzuzeigen, in dem sich das Thema „Barrierefreiheit“ in InDesign abspielt. Du weißt hinterher, wo die „Baustellen“ sind, wo Du weitergehende Infos bekommst und welchen Weg Du einschlagen musst. Am nächsten Tag veranstalten wir zwei Bootcamps, die das Thema praktisch vertiefen. "IDUGS Bootcamp #2" und "IDUGS Bootcamp #3" Klaas Posselt ist studierter Dipl.-Ing. für Druck- und Medientechnik und kam über verschiedene Anfragen zum Thema barrierefreie PDF Dokumente. Seit über 10 Jahren arbeitet er in den Bereichen Medientechnik und Publishing zwischen Medienherstellern, Druckermaschinen und digitalen Ausgabekanälen. Er schult, begleitet und unterstützt Kunden bei der Einführung und Optimierung von Publikationsprozessen und auf dem Weg zu neuen digitalen Ausgabekanälen — egal ob E-Books, barrierefreie PDFs oder Webplattformen. Als Chairman des PDF/UA Competence Center der PDF Association beteiligt er sich an der Weiterentwicklung und Verbreitung des Standards PDF/UA für barrierefreie PDF Dokumente. Diese Veranstaltung kommt nur zu Stande durch die freundliche Unterstützung von "Six Offene Systeme GmbH" -- Enterprise-Content-Management-System und Media-Asset-Management-System.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

https://idug47.eventbrite.de

Veranstaltungen
27.09.2018

Screen IT, Uster
Donnerstag, 27. Sept. 2018, 17.30 - 20.00 Uhr

Infoveranstaltung

Das Angebot an Publishing-Software ist gross. Deshalb empfiehlt sich eine externe Beratung durch unabhängige Software-Experten aus der jeweiligen Branche. Nicht immer muss es eine teure Mietlösung sein, die nach Beendigung der Mietdauer einem nicht einmal gehört. Es gibt sehr gute und auch in der Qualität ausreichende Alternativen, ja sogar kostenlose Freeware. Lassen Sie sich an diesem Abend einmal vor Augen führen, was diese Programme können und wie viel sie kosten.

Ja

Organisator: Screen IT und pre2media

Kontaktinformation: Peter Jäger, E-Mailinfo AT pre2media DOT ch

https://www.pre2media.ch/-1/de/infoanlass/