Skip to content

Commit 0448bed

Browse files
committed
Resolve #308
1 parent b537c50 commit 0448bed

File tree

2 files changed

+93
-2
lines changed

2 files changed

+93
-2
lines changed

docs/32000-2-2020/clause14.md

+91-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ modified: 24 October 2023
3131
<ul>
3232
<li><a href="#H14.7.5.3">14.7.5.3 PDF objects as content items</a>
3333
</li>
34+
<li><a href="#H14.7.5.4">14.7.5.4 Finding structure elements from content items</a>
35+
</li>
3436
</ul>
3537
</li>
3638
<li>14.7.6 Structure attributes
@@ -269,6 +271,42 @@ operators (<b>BMC</b>…<b>EMC</b>, <b>BDC</b>…<b>EMC</b>, <del onMouseEnter="
269271

270272
<h3 id="H14.7.2">14.7.2 Structure hierarchy</h3>
271273

274+
<p class="location">Change Table 354 as follows:</p>
275+
276+
<table>
277+
<caption id="Table354">Table 354 - Entries in the structure tree root</caption>
278+
<tr>
279+
<th>Key</th>
280+
<th>Type</th>
281+
<th>Value</th>
282+
</tr>
283+
<tr>
284+
<td><b>K</b></td>
285+
<td>dictionary or array</td>
286+
<td>
287+
(<i>Optional</i>) The immediate child or children of the structure tree root in the structure hierarchy. The value
288+
<del onMouseEnter="mouseEnter(this)" data-issue="308">may</del><ins onMouseEnter="mouseEnter(this)" data-issue="308">shall</ins>
289+
be either a dictionary representing a single structure element or an array of such dictionaries.
290+
<ins onMouseEnter="mouseEnter(this)" data-issue="308">Values or array elements shall not be <b>null</b>.</ins>
291+
</td>
292+
</tr>
293+
<tr>
294+
<td><b>ParentTree</b></td>
295+
<td>number tree</td>
296+
<td>
297+
(<i>Required if any structure element contains content items</i>) A number tree (see 7.9.7, "Number trees") used in finding the structure elements to which content items belong.
298+
Each integer key in the number tree shall correspond to a single page of the document or to an individual object (such as an annotation or an XObject) that is a content item in its own right.
299+
The integer key shall be the value of the <b>StructParent</b> or <b>StructParents</b> entry in that object (see 14.7.5.4, "Finding structure elements from content items").
300+
The form of the associated value shall depend on the nature of the object:
301+
For an object that is a content item in its own right, the value shall be an indirect reference to the object’s parent element (the structure element that contains it as a content item).
302+
For a page object or content stream containing marked-content sequences that are content items, the value shall be an array of references to the parent elements of those marked-content sequences.
303+
<ins onMouseEnter="mouseEnter(this)" data-issue="308">This array may contain elements that are <b>null</b>.</ins>
304+
See 14.7.5.4, "Finding structure elements from content items" for further discussion.
305+
</td>
306+
</tr>
307+
</table>
308+
309+
272310
<p class="location">Change Table 355 as follows:</p>
273311

274312
<table>
@@ -279,11 +317,44 @@ operators (<b>BMC</b>…<b>EMC</b>, <b>BDC</b>…<b>EMC</b>, <del onMouseEnter="
279317
<th>Value</th>
280318
</tr>
281319
<tr>
282-
<td>R</td>
320+
<td><b>R</b></td>
283321
<td>integer</td>
284322
<td>(<i>Optional<ins onMouseEnter="mouseEnter(this)" data-issue="93" data-iso="approved">; deprecated in PDF 2.0</ins></i>) The current revision number of this structure element (see 14.7.6.3, "Attribute revision numbers"). The value shall be a non-negative integer. Default value: 0.
285323
</td>
286324
</tr>
325+
<tr>
326+
<td><b>Ref</b></td>
327+
<td>array</td>
328+
<td>
329+
<p>...</p>
330+
<p><ins onMouseEnter="mouseEnter(this)" data-issue="308">The array shall not contain elements that are <b>null</b>.</ins></p>
331+
</td>
332+
</tr>
333+
<tr>
334+
<td><b>K</b></td>
335+
<td>(various)</td>
336+
<td>
337+
<p>(<i>Optional</i>) The children of this structure element <ins onMouseEnter="mouseEnter(this)" data-issue="308">(shall not be <b>null</b>)</ins>.
338+
The value of this entry may be one of the following objects or an array consisting of one or more of the following objects in any combination:</p>
339+
<p>...</p>
340+
</td>
341+
</tr>
342+
<tr>
343+
<td><b>A</b></td>
344+
<td>(various)</td>
345+
<td>
346+
<p>...</p>
347+
<p><ins onMouseEnter="mouseEnter(this)" data-issue="308">Attribute objects and revisions shall not be <b>null</b>.</ins></p>
348+
</td>
349+
</tr>
350+
<tr>
351+
<td><b>C</b></td>
352+
<td>name or array</td>
353+
<td>
354+
<p>...</p>
355+
<p><ins onMouseEnter="mouseEnter(this)" data-issue="308">Attribute class names and revisions shall not be <b>null</b>.</ins></p>
356+
</td>
357+
</tr>
287358
</table>
288359

289360
<h3 id="H14.7.3">14.7.3 Structure types</h3>
@@ -322,6 +393,25 @@ The <b>RoleMap</b> dictionary shall be comprised of a set of keys representing s
322393
</tr>
323394
</table>
324395

396+
<h4 id="H14.7.5.4">14.7.5.4 Finding structure elements from content items</h4>
397+
398+
<p class="location">Change the second bullet point as follows:</p>
399+
400+
<ul>
401+
<li>...</li>
402+
<li>
403+
For a content stream containing marked-content sequences that are content items, the value shall be an array of indirect references to the sequences’ parent structure elements <ins onMouseEnter="mouseEnter(this)" data-issue="308">or <b>null</b> for unused marked content identifiers (MCIDs) or those that do not have a structural parent</ins>.
404+
The array element corresponding to each sequence shall be found by using the sequence’s marked-content identifier <ins onMouseEnter="mouseEnter(this)" data-issue="308">(MCID)</ins> as a zero-based index into the array.
405+
</li>
406+
</ul>
407+
408+
<p class="location">Add a new NOTE 2 below existing NOTE as follows (existing NOTE to be renumbered as NOTE 1):</p>
409+
410+
<p class="hangingindent">
411+
<ins onMouseEnter="mouseEnter(this)" data-issue="308">NOTE 2: MCIDs are scoped by content stream and must start at zero, so the same MCID may reappear across pages or XObjects. Thus ensuring MCIDs are contiguous for any given page allows for efficient creation of <b>StructParents</b> without excessive <b>null</b> objects in the structure tree root <b>ParentTree</b> number-tree.</ins>
412+
</p>
413+
414+
325415
<h3 id="H14.7.6">14.7.6 Structure attributes</h3>
326416

327417
<h4 id="H14.7.6.1">14.7.6.1 General</h4>

docs/32000-2-2020/index.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ subset: PDF 2.0
33
isodoc: ISO 32000-2:2020
44
isotitle: 'Document management - Portable document format - Part 2: PDF 2.0'
55
title: PDF 2.0 Corrections
6-
modified: 6 October 2023
6+
modified: 24 October 2023
77
---
88

99
<p>
@@ -97,6 +97,7 @@ All issues related to {{ page.subset }} are recorded in the PDF Association's <a
9797
<li><a href="clause13.html#Table343">Table 343 - Entries in a RichMediaInstance dictionary</a></li>
9898
<li><a href="clause14.html#Table350">Table 350 - Entries in a page-piece dictionary</a></li>
9999
<li><a href="clause14.html#Table352">Table 352 - Marked content operators</a></li>
100+
<li><a href="clause14.html#Table354">Table 354 - Entries in the structure tree root</a></li>
100101
<li><a href="clause14.html#Table355">Table 355 - Entries in a structure element dictionary</a></li>
101102
<li><a href="clause14.html#Table358">Table 358 - Entries in an object reference dictionary</a></li>
102103
<li><a href="clause14.html#Table360">Table 360 - Entries common to all attribute object dictionaries</a></li>

0 commit comments

Comments
 (0)