3 Replies Latest reply on Mar 22, 2009 8:22 AM by Niall O'Donovan


      Hi! I'm new to acrobat (i have version 9 pro); and have a question.

      We are making a Portfolio of about 6 documents (all PDF's). I was looking for a way to have the fields from the first document to fill out the fields on the other documents in the portfolio. They are employment applications; and have basically the same information on each; so this would make the process MUCH easier. Being that they are from different facilities; merging the pdf's are not an option.

      Any help would be appreciated!
          This would be a really good feature. You used to be able to pass information between forms using global variables, but the usefulness of this was limited by version 8 because you had to set global policies in the reader - not an easy thing for everyday end users. This kind of global variable scenario should be enabled in a portfolio situation. It might be possible to enable this policy through some sort of portfolio security model or something.
          Of course the easier way would be if each document in a form could have access to the form fields of all the other documents in the forms. But this could also cause some problems because two fields in different documents in the same portfolio could have different meanings.
          I am not sure this can be done, but I am looking at the "collection" information in the SDK. If anyone has any ideas, we would both like your help.
            UVSAR Level 1
            Yes, the Collection and Data objects are the way to go. Portfolio 'field names' are independent of the document metadata inside the individual files, but you can get and set fields and their names via JS *provided* you're working inside a Portfolio - otherwise the collection object returns a null.

            The SDK help is a little vague, but the workflow is something like this:-

            Open or create the Portfolio and populate it with your files.

            IF you want to add or remove field names (table headers) from the Portfolio:-
            Use this.collection.addField() or .removeField()

            IF you just want to read or enter data into a field for one of the files in the Portfolio:-
            Use Data.getFieldValue() or .setFieldValue() in the context of the individual files rather than the Portfolio.

            See the Acro9 SDK help file for an example of each function. The setFieldValue example uses normal metadata but it works with collection fields too.

            Remember though, that each Portfolio design can have a different table of fields, so if you're filling entries via JS you need to make sure what the user will actually see listed on their screen.
              Niall O'Donovan Level 7
              Hi David,

              I am interested in the setFieldValue and getFieldValue scripts, but I cannot get them to work properly in my portfolio/collection of XFA forms.

              What you have described above is exactly what I am looking for.

              I have a Portfolio which contains a number of XFA PDF forms. The first form has six fields, which I want the user to complete first. The fields are "section" "staff" "area" "project" "projectNr" and "dateNow". I set up fields/columns in the portfolio with the same names.

              On the exit event of each field in the PDF I was attempting to setFieldValue of the corresponding field in the portfolio. The intention then is that when the user opens any other XFA form in the portfolio the six fields would be pre-populated with the choices made in the first form (using the getFieldValue).

              There is a view that this is not achievable, but I have looked at the Acrobat SDK and resources such as Joel's Portfilio Utilities and I feel that it could be done.

              I am using LC Designer ES and Acrobat Pro Extended 9.1. The users will be using Acrobat Reader v9.1.

              I would be very grateful if you could shed some light on this, as information is scant on setFieldValue.

              Thanks in advance,