17 Replies Latest reply: Jul 3, 2012 4:45 AM by Zayed_Stell RSS

    Printing button in PDF fillable form.

    Zayed_Stell

      Dear All,

       

      I have created a PDF fillable form with a button which save & print the pdf.

      The code for is as fallow:

       

      Formular1.#pageSet[0].Seite1.Bildfeld1::click - (JavaScript, client)

      var Mailto = "info@stell.de";

       

      var Betreff = Textfeld1.rawValue;

       

      var Nachricht = "Dies ist eine Telefonnotiz\r2.Zeile Hier";

       

      var CC = "info@stell.de";

       

      var BCC = "info@stell.de";

       

      var Mail = "mailto:" + Mailto + "?Subject=" + Betreff + "&Body=" + Nachricht + "&cc=" + CC + "&bcc=" + BCC;

       

      1. event.target.submitForm({

       

      cURL: Mail,

       

      bEmpty: false,

       

      cSubmitAs: "PDF"

       

       

      });

      1. event.target.closeDoc(true); (FormClac)

      Formular1.#pageSet[0].Seite1.DruckenSchaltfläche1::click - (JavaScript, client)

      1. xfa.host.print(1, "0", (xfa.host.numPages -1).toString(), 0, 0, 0, 0, 0);

       

       

      my problem now is that with this script I can print and save the file even though all required fields are not filled!! I donot anyone to have the possibility to print the file or save it unless he fill all required fileds.

       

      1. Any Idea, coz Iam new in the Adobe Livecycle world
        • 1. Re: Printing button in PDF fillable form.
          radzmar Community Member

          HI,

           

          you can use the validate element to prevent users from printing a form.

          See: http://forms.stefcameron.com/2008/04/13/prevent-printing-pdf-forms-in-acrobat-8/

           

          But you never can prevent users from saving a form.

          • 2. Re: Printing button in PDF fillable form.
            Zayed_Stell Community Member

            I just wanted to allow the users to print the PDF or save it ONLY when they have filled the entir document. this is not possible at all?

            • 3. Re: Printing button in PDF fillable form.
              Zayed_Stell Community Member

              can I send you the document to know what I mean?

              I canot upload it over here?

              • 4. Re: Printing button in PDF fillable form.
                radzmar Community Member

                Please read the article under the link I posted before.

                There you'll get all details of how to prevent the printing and a sample form you can work with.

                Keep in mind that it isn't possible to prevent the saving, this only works for printing, submitting and data connections.

                • 5. Re: Printing button in PDF fillable form.
                  Zayed_Stell Community Member

                  Thanks a lot for your reply

                  I sow the article, but the only problem is that the source code for the print button is exactly what I write and I cannot integrate the element code in it. Since in the article is says change the source code and look for

                   

                  XML Source in Designer and find the following mark-up about 2/3 way down:

                  <config xmlns="http://www.xfa.org/schema/xci/1.0/">

                  <agent name="designer">

                        ...

                     </agent>

                     <present>

                        <!--  [0..n] -->

                        ...

                  I don’t have this part in my script!

                  • 6. Re: Printing button in PDF fillable form.
                    radzmar Community Member

                    What version of Designer do you use?

                    • 8. Re: Printing button in PDF fillable form.
                      radzmar Community Member

                      Ok,

                       

                      than you need to add the validate element under the <config> tag as it doesn't exist by default.

                       

                      Before:

                      <config xmlns="http://www.xfa.org/schema/xci/3.0/">
                         <agent name="designer">
                            <!--  [0..n]  -->
                            <destination>pdf</destination>
                            <pdf>
                               <!--  [0..n]  -->
                               <fontInfo/>
                            </pdf>
                         </agent>
                         <present>
                            <!--  [0..n]  -->
                            <pdf>
                               <!--  [0..n]  -->
                               <fontInfo/>
                               <version>1.7</version>
                               <adobeExtensionLevel>5</adobeExtensionLevel>
                            </pdf>
                            <xdp>
                               <packets>*</packets>
                            </xdp>
                         </present>
                      </config>
                      

                       

                      After:

                      <config xmlns="http://www.xfa.org/schema/xci/3.0/">
                         <agent name="designer">
                            <!--  [0..n]  -->
                            <destination>pdf</destination>
                            <pdf>
                               <!--  [0..n]  -->
                               <fontInfo/>
                            </pdf>
                         </agent>
                         <present>
                            <!--  [0..n]  -->
                            <pdf>
                               <!--  [0..n]  -->
                               <fontInfo/>
                               <version>1.7</version>
                               <adobeExtensionLevel>5</adobeExtensionLevel>
                            </pdf>
                            <xdp>
                               <packets>*</packets>
                            </xdp>
                         </present>
                         <!-- This is the validate element to prevent printing, when mandatory fields are empty -->
                         <acrobat>
                            <validate>prePrint</validate>
                         </acrobat>
                      </config>
                      
                      • 9. Re: Printing button in PDF fillable form.
                        Zayed_Stell Community Member

                        and where should I insert this code?

                        • 10. Re: Printing button in PDF fillable form.
                          radzmar Community Member

                          Go to the XML-Source and look for the <config> tag and add this snippet.

                           

                          <acrobat>
                                <validate>prePrint</validate>
                          </acrobat>

                          • 11. Re: Printing button in PDF fillable form.
                            Zayed_Stell Community Member

                            I donot want to ask silly questions , but really I canot find the XML source code. all what I can find is this:

                             

                            Formular1.#pageSet[0].Seite1.Bildfeld1::click - (JavaScript, client)

                            var Mailto = "info@stell.de";

                             

                             

                            var Betreff = Textfeld1.rawValue;

                             

                             

                            var Nachricht = "Dies ist eine Telefonnotiz\r2.Zeile Hier";

                             

                             

                            var CC = "info@stell.de";

                             

                             

                            var BCC = "info@stell.de";

                             

                             

                            var Mail = "mailto:" + Mailto + "?Subject=" + Betreff + "&Body=" + Nachricht + "&cc=" + CC + "&bcc=" + BCC;

                             

                             

                            event.target.submitForm({

                             

                             

                            cURL: Mail,

                             

                             

                            bEmpty: true,

                             

                             

                            cSubmitAs: "PDF"

                             

                             

                            });

                             

                             

                             

                             

                            Formular1.#pageSet[0].Seite1.DruckenSchaltfläche1::click - (JavaScript, client)

                            xfa.host.print(1, "0", (xfa.host.numPages -1).toString(), 0, 0, 0, 0, 0);

                             

                             

                            Formular1.#subform[1].#subform[2].Tabelle3.Zeile1.#subform[1].#subform[2].Teilformularsch altfläche1entfernen::click - (JavaScript, client)

                            /*

                               This button will Remove the current instance of the repeating subform or table row.

                             

                             

                               bCalc: Flag - true if the removed instance might be referenced by other calculations, otherwise false.

                               message: The error message displayed.

                            */

                            var bCalc = true;

                            var message = "Sie haben die Mindestanzahl zulässiger Objekte erreicht.";

                             

                             

                            // DO NOT MODIFY THE CODE BEYOND THIS POINT - 9.0.0.2.20101008.1.725030.725025 - Subform_Instance_Controls_IRM.xfo.p4

                             

                             

                            var oWrapper = this.parent.parent;          // The outer subform built in to the object, enclosing the button group.

                            var oTargetSubform = oWrapper.parent;          // The subform or table row the controls are intended to manipulate.

                            var oManager = oTargetSubform.instanceManager;          // Get the instance manager.

                            var nMinCount = oManager.occur.min;                              // Get the minimum number of subform occurrences allowed.

                            var nSubCount = oManager.count;                                        // Get the current number of instances.

                             

                             

                            // Proceed if the minimum number of subform occurrences has not been reached.

                            if (nSubCount > nMinCount) {

                             

                                      // Invoke the Instance Manager.

                                      oManager.removeInstance(oTargetSubform.index);

                             

                             

                                      // Fire the form calculations.

                                      if (bCalc == true) {

                             

                                      // Execute all the form calculations.

                                      xfa.form.recalculate(1);

                                      }

                             

                             

                            } else {

                             

                             

                                      xfa.host.messageBox(message,"Remove Item", 3);

                            }

                             

                             

                            // END OF DO NOT MODIFY

                             

                             

                            Formular1.#subform[1].#subform[2].Tabelle3.Zeile1.#subform[1].#subform[2].Teilformularsch altfläche1hinzufügen::click - (JavaScript, client)

                            /*

                               This button will insert one instance of the repeating subform or table row.

                             

                             

                               bCalc: Flag - true if the new instance might be referenced by other calculations, otherwise false.

                               message: The error message displayed.

                            */

                            var bCalc = true;

                            var message = "Sie haben die maximale Anzahl zulässiger Objekte erreicht.";

                             

                             

                             

                             

                            // DO NOT MODIFY THE CODE BEYOND THIS POINT - 9.0.0.2.20101008.1.725030.725025 - Subform_Instance_Controls_IRM.xfo.p2

                             

                             

                            var oWrapper = this.parent.parent;          // The outer subform built in to the object, enclosing the button group.

                            var oTargetSubform = oWrapper.parent;          // The subform or table row the controls are intended to manipulate.

                            var oManager = oTargetSubform.instanceManager; // Get the instance manager.

                            var nMaxCount = oManager.occur.max;                     // Get the maximum number of subform occurrences allowed.

                            var nSubCount = oManager.count;                              // Get the current number of instances.

                             

                             

                            // Proceed if the maximum number of subform occurrences has not been reached.

                            if ((nMaxCount == "-1") || (nSubCount < nMaxCount)) {

                             

                                      // Invoke the Instance Manager.

                                      var oNewInstance = oManager.addInstance(1);

                             

                             

                                      // Fire the form calculations.

                                      if (bCalc == true) {

                                      // Execute all the form calculations.

                                      xfa.form.recalculate(1);

                                      }

                             

                             

                                      // Move the new subform below the current one.

                                      var nIndexFrom = oNewInstance.index;

                                      var nIndexTo = oTargetSubform.index + 1;

                                      oManager.moveInstance(nIndexFrom, nIndexTo);

                            } else {

                             

                             

                                      xfa.host.messageBox(message,"Insert Item", 3);

                            }

                             

                             

                            // END OF DO NOT MODIFY

                             

                             

                            Formular1.#subform[1].#subform[2].Tabelle3.Zeile1.#subform[1].#subform[2].Teilformularsch altflächeNachOben1::click - (JavaScript, client)

                            /*

                               This button will move the current instance of the repeating subform or table row up one position.

                             

                             

                               bCalc: Flag - true if the moved instance might be referenced by other calculations, otherwise false.

                               message: The error message displayed.

                            */

                            var bCalc = true;

                            var message = "Das aktuelle Objekt kann nicht nach oben verschoben werden, da es sich bereits an erster Stelle befindet.";

                             

                             

                             

                             

                            // DO NOT MODIFY THE CODE BEYOND THIS POINT - 9.0.0.2.20101008.1.725030.725025 - Subform_Instance_Controls_IRM.xfo.p1

                             

                             

                            var oWrapper = this.parent.parent;          // The outer subform built in to the object, enclosing the button group.

                            var oTargetSubform = oWrapper.parent;          // The subform or table row the controls are intended to manipulate.

                            var nIndex = oTargetSubform.index                    // Get the index number of the current subform or table row.

                            var oManager = oTargetSubform.instanceManager;          // Get the instance manager.

                             

                             

                            // Proceed if the current subform is not the first instance.

                            if (nIndex != 0) {

                             

                                      // Move the current subform.

                                      var nIndexFrom = nIndex;

                                      var nIndexTo = nIndex - 1;

                                      oManager.moveInstance(nIndexFrom, nIndexTo);

                             

                             

                                      // Fire the form calculations.

                                      if (bCalc == true) {

                             

                                      // Execute all the form calculations.

                                      xfa.form.recalculate(1);

                                      }

                             

                             

                            } else {

                             

                             

                                      xfa.host.messageBox(message,"Move Item", 3);

                            }

                             

                             

                            // END OF DO NOT MODIFY

                             

                             

                            Formular1.#subform[1].#subform[2].Tabelle3.Zeile1.#subform[1].#subform[2].Teilformularsch altflächeNachUnten1::click - (JavaScript, client)

                            /*

                               This button will move the current instance of the repeating subform or table row down one position.

                             

                             

                               bCalc: Flag - true if the moved instance might be referenced by other calculations, otherwise false.

                               message: The error message displayed.

                            */

                            var bCalc = true;

                            var message = "Das aktuelle Objekt kann nicht nach unten verschoben werden, da es sich bereits an letzter Stelle befindet.";

                             

                             

                             

                             

                            // DO NOT MODIFY THE CODE BEYOND THIS POINT - 9.0.0.2.20101008.1.725030.725025 - Subform_Instance_Controls_IRM.xfo.p3

                             

                             

                            var oWrapper = this.parent.parent;          // The outer subform built in to the object, enclosing the button group.

                            var oTargetSubform = oWrapper.parent;          // The subform or table row the controls are intended to manipulate.

                            var oManager = oTargetSubform.instanceManager;          // Get the instance manager.

                            var nSubCount = oManager.count;                              // Get the current number of instances.

                            var nIndex = oTargetSubform.index                    // Get the index number of the current subform or table row.

                             

                             

                            // Proceed if the current subform is not the last instance.

                            if ((nIndex + 1) < nSubCount)  {

                             

                                      // Move the current subform.

                                      var nIndexFrom = nIndex;

                                      var nIndexTo = nIndex + 1;

                                      oManager.moveInstance(nIndexFrom, nIndexTo);

                             

                             

                                      // Fire the form calculations.

                                      if (bCalc == true) {

                             

                                      // Execute all the form calculations.

                                      xfa.form.recalculate(1);

                                      }

                             

                             

                            } else {

                             

                             

                                      xfa.host.messageBox(message,"Move Item", 3);

                            }

                             

                             

                            // END OF DO NOT MODIFY

                             

                             

                            Formular1.#subform[1].#subform[2].Tabelle3.Zeile1::indexChange - (JavaScript, both)

                            //{{Adobe LiveCycle Designer Generated Code Begin}} - row shading script. Don't modify it!

                            var Freqs=[1,1];

                            var Colors=["255,255,255","255,255,255"];

                            var nFreqSize = 0;

                            for (var i=0; i<Freqs.length; i++)

                              nFreqSize += Freqs[i];

                            var nRelIndex = this.index % nFreqSize + 1;

                            for (var nRun=0; nRun<Freqs.length; nRun++)

                            {

                               if (nRelIndex>Freqs[nRun])

                               {

                                    nRelIndex -= Freqs[nRun];

                               }

                               else

                               {

                                  this.border.fill.color.value = Colors[nRun];

                                  break;

                               }

                            }

                            //{{Adobe LiveCycle Designer Generated Code End}} - row shading script.

                             

                             

                            Formular1.TABELLEN1.#subform[2].Tabelle4.Zeile1::indexChange - (JavaScript, both)

                            //{{Adobe LiveCycle Designer Generated Code Begin}} - row shading script. Don't modify it!

                            var Freqs=[1,1];

                            var Colors=["255,255,255","255,255,255"];

                            var nFreqSize = 0;

                            for (var i=0; i<Freqs.length; i++)

                              nFreqSize += Freqs[i];

                            var nRelIndex = this.index % nFreqSize + 1;

                            for (var nRun=0; nRun<Freqs.length; nRun++)

                            {

                               if (nRelIndex>Freqs[nRun])

                               {

                                    nRelIndex -= Freqs[nRun];

                               }

                               else

                               {

                                  this.border.fill.color.value = Colors[nRun];

                                  break;

                               }

                            }

                            //{{Adobe LiveCycle Designer Generated Code End}} - row shading script.

                            • 12. Re: Printing button in PDF fillable form.
                              Zayed_Stell Community Member

                              would you like to take alook with team viewer ... only If you have time?

                              • 13. Re: Printing button in PDF fillable form.
                                Zayed_Stell Community Member

                                <config xmlns="http://www.xfa.org/schema/xci/2.8/">

                                   <agent name="designer">

                                      <!--  [0..n]  -->

                                      <destination>pdf</destination>

                                      <pdf>

                                         <!--  [0..n]  -->

                                         <fontInfo/>

                                      </pdf>

                                   </agent>

                                   <present>

                                      <!--  [0..n]  -->

                                      <pdf>

                                         <!--  [0..n]  -->

                                         <version>1.7</version>

                                         <adobeExtensionLevel>3</adobeExtensionLevel>

                                      </pdf>

                                      <common/>

                                      <script>

                                         <runScripts>server</runScripts>

                                      </script>

                                      <cache>

                                         <macroCache/>

                                      </cache>

                                      <xdp>

                                         <packets>*</packets>

                                      </xdp>

                                  

                                </present>

                                   <psMap>

                                      <font typeface="NewsGoth BT" psName="NewsGothicBT-Roman" weight="normal" posture="normal"/>

                                      <font typeface="NewsGothic LT" psName="NewsGothicLT" weight="normal" posture="normal"/>

                                      <font typeface="NewsGothic LT" psName="NewsGothicLT-Bold" weight="bold" posture="normal"/>

                                      <font typeface="NewsGothic LT" psName="NewsGothicLT-BoldOblique" weight="bold" posture="italic"/>

                                      <font typeface="NewsGothic LT" psName="NewsGothicLT-Oblique" weight="normal" posture="italic"/>

                                   </psMap>

                                 

                                <acrobat>
                                      <validate>prePrint</validate>
                                </acrobat>

                                </config>

                                 

                                 

                                ** I found it & i have inserted the code! but its not working?

                                • 14. Re: Printing button in PDF fillable form.
                                  radzmar Community Member

                                  Hi,

                                   

                                  TeamViewer is ok, but not at the moment.

                                  Do you have time this evening at around 19:00?

                                  Or can you share your form somewhere and post a link here?

                                  • 15. Re: Printing button in PDF fillable form.
                                    Zayed_Stell Community Member

                                    the problem is iam working in a company from 7:00 till 17:00 (Germany time)

                                    and all the programes & the sheets at my desktop computer , but if you have time tomorrow it will be perfect. sorry for all this mess, I have been trying to solve this issues but iam new in the field of java scrptiing

                                    • 16. Re: Printing button in PDF fillable form.
                                      radzmar Community Member

                                      Keine Ursache.

                                      Bis morgen dann!

                                      • 17. Re: Printing button in PDF fillable form.
                                        Zayed_Stell Community Member

                                        l0o0ol danke