Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.
SOLVED

Form with E-Mail button to send the Dynamic PDF form only as a read and print form (send & lock content)

Avatar

Level 3

Here is a PDF file that I just managed to do with my skills. Please click on the link, so you can download the pdf from the Url.

Need the option in the e-mail button that after filling out and sending the form you can only read and print it.

 

how do i get that?

 

LiveCycle Designer ES4 --> should be a dynamic fillable PDF form that can only be read and printed after being sent by e-mail.

 

Any help is welcome that could help a beginner.

(Yes, I had asked the question days ago, and so far only received half-words, which unfortunately could not help me because my knowledge is limited)

Thx in Advance

1 Accepted Solution

Avatar

Correct answer by
Level 10

You can use a recursive function to lock all fields below a certain node of your form. This script can eitber be executed form an event of an object or called from a script object.

 

function lockObjects (vNode) { 
    if (vNode.className === "field") {
    	vNode.access = "protected";
    }
    if (vNode.isContainer) {
        for (var i = 0; i < vNode.nodes.length; i += 1) {
        	lockObjects(vNode.nodes.item(i));
        }
    }
}

 

 

Given you want to lock the fields under page 2 of your form after you clicked a button.

function lockObjects (vNode) { if (vNode.className === "field") { vNode.access = "protected"; } if (vNode.isContainer) { for (var i = 0; i < vNode.nodes.length; i += 1) { lockObjects(vNode.nodes.item(i)); } } }
lockObjects (form1.page3);

 

If you have that script in a script object names "utils" and want to lock everyting in you form, then you call it this way.

 

utils.lockObjects (form1);

 

View solution in original post

5 Replies

Avatar

Community Advisor

HI @NikoGR 
Is this question related to AEM? or is it more like Pdf related question?

If it is not related to AEM then I would suggest moving this question to a dedicated community to get a faster response. https://experienceleaguecommunities.adobe.com/

 



Arun Patidar

Avatar

Level 3

Excuse me, but sometimes I have the feeling that no one wants to answer something

and my question is pushed back and forth.

 

To make myself as simple and understandable as possible (as far as I can),

I've created a Dynamic Form (which I've also included) with LiveCycle Designer ES4,

with an email button from the existing LiveCycle Designer library.

I converted this form into a form with Adobe Pro DC (ver.2015) so that it can be filled out with Acrobat Reader DC.

So far so good, only when I press the e-mail button does it send the file by e-mail as requested.

 

The problem is: After sending the file, the form must not be changed, it should only be possible to read and print.

How can I get that done?

 

*Please don't move the question again, it's no longer fun, all the moving made me dizzy... I would be grateful for any help, for any shift to nowhere..not.

 

Thx in Advance

Avatar

Level 3

I also searched this site but as a beginner I couldn't find any clues to help.

Avatar

Correct answer by
Level 10

You can use a recursive function to lock all fields below a certain node of your form. This script can eitber be executed form an event of an object or called from a script object.

 

function lockObjects (vNode) { 
    if (vNode.className === "field") {
    	vNode.access = "protected";
    }
    if (vNode.isContainer) {
        for (var i = 0; i < vNode.nodes.length; i += 1) {
        	lockObjects(vNode.nodes.item(i));
        }
    }
}

 

 

Given you want to lock the fields under page 2 of your form after you clicked a button.

function lockObjects (vNode) { if (vNode.className === "field") { vNode.access = "protected"; } if (vNode.isContainer) { for (var i = 0; i < vNode.nodes.length; i += 1) { lockObjects(vNode.nodes.item(i)); } } }
lockObjects (form1.page3);

 

If you have that script in a script object names "utils" and want to lock everyting in you form, then you call it this way.

 

utils.lockObjects (form1);