|
Makes shared XForm fields unique.
After duplicating pages via calls such as RemapPages and
Append, fields may end
up shared by pages. This means that updating a field in a page will
affect the same field in a different page. Very often this is
not the desired behaviour. Fields should then be made unique.
Changing fields in a page will not affect other pages when
fields are unique. Call this method to make the fields unique. For
example: RemapPages("1 1") creates two copies of the first
page, which means that any field owned by the first page is
now shared by two pages. Calling MakeFieldsUnique after
RemapPages, will create separate copies of the fields,
each one with a unique name.
To make names unique we use the token parameter. This is
a string that is appended to the field name. It
is also followed by the page number. For example, you can set
the token to something like "_page", the default value. The
field names will then be changed to ExistnigName_page1,
where ExistingName is the current name of the field and
the field is located on page 1. Fields must have unique
names, this is required by the PDF specifications.
If the token already exists in the field name - and is
located at the end except for digits - only the page number is
changed. The token will not be appended twice. Therefore an
existing field name that ends with digits, and has the exact token
before such digits, will have the digits replaced by the page
number and nothing else changed.
The token may be empty but be aware that any digits at the end
of the field name will be replaced by the page number. If the token
is null it will be replaced by the default token, _page.
If a field is shared by several widget
annotations either on the same or different pages, we do our best
not to break this sharing when the fields are made unique.
When duplicating a shared field, the page number in the field name
will be the number of the last page the field appeared on. For
example, take a field called "title" and shared between pages 1 and
2. The following remap is performed: "1 1 2 2". Then
MakeFieldsUnique is called. The first and third pages will then
share a field called title_page3 and the second and forth pages
will share a field called title_page4. If remapping with "1 2 1 2",
then the first two pages share title_page2 and the last two pages
share title_page4.
|