Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Annex E.2 list of places where 2nd class names are explicitly not required is incomplete #229

Closed
petervwyatt opened this issue Oct 26, 2022 · 3 comments
Assignees
Labels
ISO approved Resolved issue approved by ISO

Comments

@petervwyatt
Copy link
Member

Annex E.2, 2nd bullet under "Second class" states ".. except keys added to a document information dictionary (see 14.3.3, "Document information dictionary") or a thread information dictionary (in the I entry of a thread dictionary; see 12.4.3, "Articles").". This is an incomplete list of officially allowed places in PDF where developers may legally add their own custom names that do not have to be 2nd-class names.

A list of other places with either explicit or implied wording (in no specific order) - there may well be others:

@petervwyatt petervwyatt added the bug Something isn't correct label Oct 26, 2022
@michaeldemey
Copy link

The names of resources are also not explicitly allowed to be custom names without the need for second class names.

7.8.3 Resource dictionaries

The paragraph just before Table 34 - Entries in a resource dictionary

"
The corresponding values shall be as follows:
• For all resource types, the value shall be a subdictionary. Each key in the subdictionary shall be the name of a specific resource, and the corresponding value shall be a PDF object associated with the name.
"
Doesn't mention that you can use a custom name.

It is implicitly talked about and shown in Example 2 following Table 34:

"
EXAMPLE 2 The following shows a resource dictionary containing fonts, and external objects. The fonts are specified with a subdictionary associating the names F5, F6, F7, and F8 with objects 6, 8, 10, and 12, respectively. Likewise, the XObject subdictionary associates the names Im1 and Im2 with objects 13 and 15, respectively.
"

But never really outspoken or defined that it is allowed. Unless I'm overlooking a clause somewhere.

@petervwyatt
Copy link
Member Author

Trying to progress this forward...

Examining the Arlington PDF Model shows many (~41) places where anything might be used as a key name. Since this is such a long list it is probably a better approach to strike the incorrect statement from Annex E rather than attempt to fully expand it and maintain it.

Proposed solution is thus to replace "except keys added to a document information dictionary (see 14.3.3, "Document information dictionary") or a thread information dictionary (in the I entry of a thread dictionary; see 12.4.3, "Articles")." with "except where otherwise stated in this specification." since these few cases already have explicit statements.

If this is accepted then each situation needs to be independently reviewed as to whether the requirements for a second-class name or not are sufficiently stated (there are statements in some places, but not others - but the omission doesn't necessarily mean anything goes). Separate errata can then be raised for each of those places.

@petervwyatt petervwyatt added the proposed solution Proposed solution is ready for review label Jun 5, 2024
@petervwyatt petervwyatt self-assigned this Jun 5, 2024
@petervwyatt
Copy link
Member Author

PDF TWG agree to the Annex E change.
Other changes to be done as new errata.

@petervwyatt petervwyatt added ISO approved Resolved issue approved by ISO and removed bug Something isn't correct proposed solution Proposed solution is ready for review labels Nov 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ISO approved Resolved issue approved by ISO
Projects
None yet
Development

No branches or pull requests

2 participants