Expand my Community achievements bar.

SOLVED

File Size Growth when digitally signed

Avatar

Level 1

I created a pdf fillable form that grows any where from 2MB to 20MB each time it is signed. We collect anywhere form 14-20 signatures so the file can get quite large. I have tried to change settings but have had no result. The only correlation I have determined is the amount of growth is tied to the file size. The larger the file, the more it will add for each signature. For example, when I have a 4MB file, once signed becomes a 6MB file; if I have a 19MB file, it adds 15MB when signed. Has anyone else experienced this problem? Does anyone have any solutions?

1 Accepted Solution

Avatar

Correct answer by
Former Community Member

I created a repeatable subform with all relevant objects: an office name text field (Office_TextEntry), a concurrence-select drop-down field (ConcurSelect_DropDown) , a name field for the person (CoordinatorName_TextEntry), a comment text field (CoordinatorComment_TextEntry), and an initials text field (Initials_TextEntry).  [Nothing special about the initials text field, it's just a regular text-entry block.]  Since the subform is repeatable, I can have a button set up so the users can click to add more space for more coordinators.

In the Action Builder, I created a simple if-then sequence.  Essentially, when Initials_TextEntry is "not empty", disable all the fields on that subform--including the initials field.  If you do nothing else, everything in that coordinator block is permanently disabled and can no longer be edited and the initials cannot be deleted.  The comment block is essentially locked--and no digital signature was required.  Hence, it is a pseudo-signature.

Now, if you wanted to, you can set up a routine to unlock that comment block if you choose: an edit button, for instance.  Such would be the case if a typo needed to be corrected.  But alas, the person who made the comment could not be guaranteed to have not had their comment edited by someone else.  To avoid that scenario, build an Action Builder routine to pop-up a warning whenever the Initials_TextEntry field is first entered: "Entering your initials will lock this concur/comment block to further editing.  Make any corrections prior to entering your initials here."  Then upon exiting/tabbing out of the field, the form checks to see if Initials_TextEntry is "not empty" and if is still empty, the user can correct any mistakes.  When everything is good-to-go, they click/tab back onto the Initials_TextEntry field, enter their initials, and exiting/tabbing out with something there disables that coordinator's block.

So, again, this is an alternative to bulking up your file size with unnecessary digital signatures.  It is useful when a whole series of people need to coordinate on the form, but LEGAL signatures are not required.

View solution in original post

4 Replies

Avatar

Former Community Member

Digi-signing a form creates the digital equivalent of a snapshot of the form as-is upon signing and incorporates that into the signature; hence the growth.  That way, the reader can determine from the digi-sig if any content in the form has changed.   As you have noted, the bigger the initial file, the bigger the signature growth--and the more signatures, the more it grows too.

I had this same issue and our email servers limit file size to 10MB or less.  Our form had multiple digi-sigs and we had to go back and re-think our approach.

The two fundamental questions you should ask is "Why do I need a digital signature?" and "Can something else take the place of a digital signature?"

If the answer to the first question is for legal reasons, then there's not much you can do save for printing the form, getting wet signatures, and scanning the final document back into the computer once all wet-sigs are done.  Otherwise, keeping everything digital is going to increase the file size and you just have to deal with large files.

On the other hand, if the answer to the first question is that it's for coordination purposes, then move onto the second question.  If you're only taking a digi-sig to indicate that a person saw/read the doc or are just passing it on (i.e., executive assistant coordination) and there is no legal requirement for a signature, then your solution will be easier to implement.

Since simply "concurring" or "concurring with comments" for my company form didn't require a LEGAL signature, I implemented a pseudo-sig with the person's initials instead of a digi-sig.  Each coordination subform block consists of the person's name, office, concurrence drop-down selection, any comments, and an "initial here" object.  Entering initials in that final block disabled the coordinator objects from further editing.  As a repeatable subform, multiple coordinators can be entered as needed.  The final reviewer/action officer digitally signs the form and it locks the entire document from further editing.

Thus, going from actual digital signatures to a pseudo-sig initials chopped 20 or more signatures down to 1, significantly decreasing overall file sizes.

So, ask yourself if a signature is legally required or would simple initials suffice.

Avatar

Level 1

How did you develop the "initial Here" object? Does the initial here box certify who they are? Can anyone delete their initials? I'm interested in the fact that it can lock down portions of the form when signed.

Avatar

Correct answer by
Former Community Member

I created a repeatable subform with all relevant objects: an office name text field (Office_TextEntry), a concurrence-select drop-down field (ConcurSelect_DropDown) , a name field for the person (CoordinatorName_TextEntry), a comment text field (CoordinatorComment_TextEntry), and an initials text field (Initials_TextEntry).  [Nothing special about the initials text field, it's just a regular text-entry block.]  Since the subform is repeatable, I can have a button set up so the users can click to add more space for more coordinators.

In the Action Builder, I created a simple if-then sequence.  Essentially, when Initials_TextEntry is "not empty", disable all the fields on that subform--including the initials field.  If you do nothing else, everything in that coordinator block is permanently disabled and can no longer be edited and the initials cannot be deleted.  The comment block is essentially locked--and no digital signature was required.  Hence, it is a pseudo-signature.

Now, if you wanted to, you can set up a routine to unlock that comment block if you choose: an edit button, for instance.  Such would be the case if a typo needed to be corrected.  But alas, the person who made the comment could not be guaranteed to have not had their comment edited by someone else.  To avoid that scenario, build an Action Builder routine to pop-up a warning whenever the Initials_TextEntry field is first entered: "Entering your initials will lock this concur/comment block to further editing.  Make any corrections prior to entering your initials here."  Then upon exiting/tabbing out of the field, the form checks to see if Initials_TextEntry is "not empty" and if is still empty, the user can correct any mistakes.  When everything is good-to-go, they click/tab back onto the Initials_TextEntry field, enter their initials, and exiting/tabbing out with something there disables that coordinator's block.

So, again, this is an alternative to bulking up your file size with unnecessary digital signatures.  It is useful when a whole series of people need to coordinate on the form, but LEGAL signatures are not required.

Avatar

Level 1

Thank you! I will try the concurrence solution.

The following has evaluated to null or missing: ==> liqladmin("SELECT id, value FROM metrics WHERE id = 'net_accepted_solutions' and user.id = '${acceptedAnswer.author.id}'").data.items [in template "analytics-container" at line 83, column 41] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign answerAuthorNetSolutions = li... [in template "analytics-container" at line 83, column 5] ----