What you will need to do is add code to the form's PreSave and PrePrint events.
If you add this, it will lock the field:
this.resolveNode("textFieldName").access = "readOnly";
Change 'readOnly' for 'open' to unlock the fields (you could add that to a button to unlock the fields if required). You could even add a password to it.
Tip: if you use 'readOnly', the tabs for the fields will still be active. Using 'protected' will skip the fields if tab is pressed when using the form.