Commit c9d54fda518db58f7f610c6af5a69e316c07a52d

Authored by Jay Berkenbilt
1 parent 426b4ce8

Remove ref. from documentation references

manual/cli.rst
1 -.. _ref.using: 1 +.. _using:
2 2
3 Running QPDF 3 Running QPDF
4 ============ 4 ============
@@ -6,7 +6,7 @@ Running QPDF @@ -6,7 +6,7 @@ Running QPDF
6 This chapter describes how to run the qpdf program from the command 6 This chapter describes how to run the qpdf program from the command
7 line. 7 line.
8 8
9 -.. _ref.invocation: 9 +.. _invocation:
10 10
11 Basic Invocation 11 Basic Invocation
12 ---------------- 12 ----------------
@@ -26,7 +26,7 @@ place of :samp:`infilename`, the parameter @@ -26,7 +26,7 @@ place of :samp:`infilename`, the parameter
26 :samp:`--empty` may be specified. This causes qpdf to 26 :samp:`--empty` may be specified. This causes qpdf to
27 use a dummy input file that contains zero pages. The only normal use 27 use a dummy input file that contains zero pages. The only normal use
28 case for using :samp:`--empty` would be if you were 28 case for using :samp:`--empty` would be if you were
29 -going to add pages from another source, as discussed in :ref:`ref.page-selection`. 29 +going to add pages from another source, as discussed in :ref:`page-selection`.
30 30
31 If :samp:`@filename` appears as a word anywhere in the 31 If :samp:`@filename` appears as a word anywhere in the
32 command-line, it will be read line by line, and each line will be 32 command-line, it will be read line by line, and each line will be
@@ -53,7 +53,7 @@ If you do this, qpdf will tell you about the @@ -53,7 +53,7 @@ If you do this, qpdf will tell you about the
53 Most options require an output file, but some testing or inspection 53 Most options require an output file, but some testing or inspection
54 commands do not. These are specifically noted. 54 commands do not. These are specifically noted.
55 55
56 -.. _ref.exit-status: 56 +.. _exit-status:
57 57
58 Exit Status 58 Exit Status
59 ~~~~~~~~~~~ 59 ~~~~~~~~~~~
@@ -80,7 +80,7 @@ Note that :command:`qpdf` never exists with status ``1``. @@ -80,7 +80,7 @@ Note that :command:`qpdf` never exists with status ``1``.
80 If you get an exit status of ``1``, it was something else, like the 80 If you get an exit status of ``1``, it was something else, like the
81 shell not being able to find or execute :command:`qpdf`. 81 shell not being able to find or execute :command:`qpdf`.
82 82
83 -.. _ref.shell-completion: 83 +.. _shell-completion:
84 84
85 Shell Completion 85 Shell Completion
86 ---------------- 86 ----------------
@@ -100,7 +100,7 @@ to use completion with copy of qpdf that is built from source. You can @@ -100,7 +100,7 @@ to use completion with copy of qpdf that is built from source. You can
100 specify a full path to the qpdf you want to use for completion in the 100 specify a full path to the qpdf you want to use for completion in the
101 ``QPDF_EXECUTABLE`` environment variable. 101 ``QPDF_EXECUTABLE`` environment variable.
102 102
103 -.. _ref.basic-options: 103 +.. _basic-options:
104 104
105 Basic Options 105 Basic Options
106 ------------- 106 -------------
@@ -119,7 +119,7 @@ needed transformations. @@ -119,7 +119,7 @@ needed transformations.
119 119
120 :samp:`--show-crypto` 120 :samp:`--show-crypto`
121 Show a list of available crypto providers, each on a line by itself. 121 Show a list of available crypto providers, each on a line by itself.
122 - The default provider is always listed first. See :ref:`ref.crypto` for more information about crypto 122 + The default provider is always listed first. See :ref:`crypto` for more information about crypto
123 providers. 123 providers.
124 124
125 :samp:`--completion-bash` 125 :samp:`--completion-bash`
@@ -225,10 +225,10 @@ needed transformations. @@ -225,10 +225,10 @@ needed transformations.
225 Starting with version 10.4, qpdf issues warnings when requested to 225 Starting with version 10.4, qpdf issues warnings when requested to
226 create files using RC4 encryption. This option suppresses those 226 create files using RC4 encryption. This option suppresses those
227 warnings. In future versions of qpdf, qpdf will refuse to create 227 warnings. In future versions of qpdf, qpdf will refuse to create
228 - files with weak cryptography when this flag is not given. See :ref:`ref.weak-crypto` for additional details. 228 + files with weak cryptography when this flag is not given. See :ref:`weak-crypto` for additional details.
229 229
230 :samp:`--encrypt options --` 230 :samp:`--encrypt options --`
231 - Causes generation an encrypted output file. Please see :ref:`ref.encryption-options` for details on how to specify 231 + Causes generation an encrypted output file. Please see :ref:`encryption-options` for details on how to specify
232 encryption parameters. 232 encryption parameters.
233 233
234 :samp:`--decrypt` 234 :samp:`--decrypt`
@@ -260,7 +260,7 @@ needed transformations. @@ -260,7 +260,7 @@ needed transformations.
260 Ordinarily, qpdf attempts to automatically compensate for passwords 260 Ordinarily, qpdf attempts to automatically compensate for passwords
261 specified in the wrong character encoding. This option suppresses 261 specified in the wrong character encoding. This option suppresses
262 that behavior. Under normal conditions, there are no reasons to use 262 that behavior. Under normal conditions, there are no reasons to use
263 - this option. See :ref:`ref.unicode-passwords` for a 263 + this option. See :ref:`unicode-passwords` for a
264 discussion 264 discussion
265 265
266 :samp:`--password-mode={mode}` 266 :samp:`--password-mode={mode}`
@@ -271,7 +271,7 @@ needed transformations. @@ -271,7 +271,7 @@ needed transformations.
271 :samp:`hex-bytes` mode also applies to passwords 271 :samp:`hex-bytes` mode also applies to passwords
272 specified for reading files. For additional discussion of the 272 specified for reading files. For additional discussion of the
273 supported password modes and when you might want to use them, see 273 supported password modes and when you might want to use them, see
274 - :ref:`ref.unicode-passwords`. The following modes 274 + :ref:`unicode-passwords`. The following modes
275 are supported: 275 are supported:
276 276
277 - :samp:`auto`: Automatically determine whether the 277 - :samp:`auto`: Automatically determine whether the
@@ -311,7 +311,7 @@ needed transformations. @@ -311,7 +311,7 @@ needed transformations.
311 :samp:`--rotate=[+|-]angle[:page-range]` 311 :samp:`--rotate=[+|-]angle[:page-range]`
312 Apply rotation to specified pages. The 312 Apply rotation to specified pages. The
313 :samp:`page-range` portion of the option value has 313 :samp:`page-range` portion of the option value has
314 - the same format as page ranges in :ref:`ref.page-selection`. If the page range is omitted, the 314 + the same format as page ranges in :ref:`page-selection`. If the page range is omitted, the
315 rotation is applied to all pages. The :samp:`angle` 315 rotation is applied to all pages. The :samp:`angle`
316 portion of the parameter may be either 0, 90, 180, or 270. If 316 portion of the parameter may be either 0, 90, 180, or 270. If
317 preceded by :samp:`+` or :samp:`-`, 317 preceded by :samp:`+` or :samp:`-`,
@@ -358,14 +358,14 @@ needed transformations. @@ -358,14 +358,14 @@ needed transformations.
358 :samp:`--keep-files-open` for details. 358 :samp:`--keep-files-open` for details.
359 359
360 :samp:`--pages options --` 360 :samp:`--pages options --`
361 - Select specific pages from one or more input files. See :ref:`ref.page-selection` for details on how to do 361 + Select specific pages from one or more input files. See :ref:`page-selection` for details on how to do
362 page selection (splitting and merging). 362 page selection (splitting and merging).
363 363
364 :samp:`--collate={n}` 364 :samp:`--collate={n}`
365 When specified, collate rather than concatenate pages from files 365 When specified, collate rather than concatenate pages from files
366 specified with :samp:`--pages`. With a numeric 366 specified with :samp:`--pages`. With a numeric
367 argument, collate in groups of :samp:`{n}`. 367 argument, collate in groups of :samp:`{n}`.
368 - The default is 1. See :ref:`ref.page-selection` for additional details. 368 + The default is 1. See :ref:`page-selection` for additional details.
369 369
370 :samp:`--flatten-rotation` 370 :samp:`--flatten-rotation`
371 For each page that is rotated using the ``/Rotate`` key in the page's 371 For each page that is rotated using the ``/Rotate`` key in the page's
@@ -418,11 +418,11 @@ needed transformations. @@ -418,11 +418,11 @@ needed transformations.
418 require the global data. 418 require the global data.
419 419
420 :samp:`--overlay options --` 420 :samp:`--overlay options --`
421 - Overlay pages from another file onto the output pages. See :ref:`ref.overlay-underlay` for details on 421 + Overlay pages from another file onto the output pages. See :ref:`overlay-underlay` for details on
422 overlay/underlay. 422 overlay/underlay.
423 423
424 :samp:`--underlay options --` 424 :samp:`--underlay options --`
425 - Overlay pages from another file onto the output pages. See :ref:`ref.overlay-underlay` for details on 425 + Overlay pages from another file onto the output pages. See :ref:`overlay-underlay` for details on
426 overlay/underlay. 426 overlay/underlay.
427 427
428 Password-protected files may be opened by specifying a password. By 428 Password-protected files may be opened by specifying a password. By
@@ -442,13 +442,13 @@ Prior to 8.4.0, in the case of passwords that contain characters that @@ -442,13 +442,13 @@ Prior to 8.4.0, in the case of passwords that contain characters that
442 fall outside of 7-bit US-ASCII, qpdf left the burden of supplying 442 fall outside of 7-bit US-ASCII, qpdf left the burden of supplying
443 properly encoded encryption and decryption passwords to the user. 443 properly encoded encryption and decryption passwords to the user.
444 Starting in qpdf 8.4.0, qpdf does this automatically in most cases. For 444 Starting in qpdf 8.4.0, qpdf does this automatically in most cases. For
445 -an in-depth discussion, please see :ref:`ref.unicode-passwords`. Previous versions of this manual 445 +an in-depth discussion, please see :ref:`unicode-passwords`. Previous versions of this manual
446 described workarounds using the :command:`iconv` command. 446 described workarounds using the :command:`iconv` command.
447 Such workarounds are no longer required or recommended with qpdf 8.4.0. 447 Such workarounds are no longer required or recommended with qpdf 8.4.0.
448 However, for backward compatibility, qpdf attempts to detect those 448 However, for backward compatibility, qpdf attempts to detect those
449 workarounds and do the right thing in most cases. 449 workarounds and do the right thing in most cases.
450 450
451 -.. _ref.encryption-options: 451 +.. _encryption-options:
452 452
453 Encryption Options 453 Encryption Options
454 ------------------ 454 ------------------
@@ -610,7 +610,7 @@ with the following exceptions: @@ -610,7 +610,7 @@ with the following exceptions:
610 610
611 The default for each permission option is to be fully permissive. 611 The default for each permission option is to be fully permissive.
612 612
613 -.. _ref.page-selection: 613 +.. _page-selection:
614 614
615 Page Selection Options 615 Page Selection Options
616 ---------------------- 616 ----------------------
@@ -814,7 +814,7 @@ would create a file with two copies of the first page of the input, and @@ -814,7 +814,7 @@ would create a file with two copies of the first page of the input, and
814 the two copies would share any objects in common. This includes fonts, 814 the two copies would share any objects in common. This includes fonts,
815 images, and anything else the page references. 815 images, and anything else the page references.
816 816
817 -.. _ref.overlay-underlay: 817 +.. _overlay-underlay:
818 818
819 Overlay and Underlay Options 819 Overlay and Underlay Options
820 ---------------------------- 820 ----------------------------
@@ -849,7 +849,7 @@ between the :samp:`--overlay` or @@ -849,7 +849,7 @@ between the :samp:`--overlay` or
849 overlay/underlay file is encrypted. 849 overlay/underlay file is encrypted.
850 850
851 - :samp:`--to=page-range`: a range of pages in the same 851 - :samp:`--to=page-range`: a range of pages in the same
852 - form at described in :ref:`ref.page-selection` 852 + form at described in :ref:`page-selection`
853 indicates which pages in the output should have the overlay/underlay 853 indicates which pages in the output should have the overlay/underlay
854 applied. If not specified, overlay/underlay are applied to all pages. 854 applied. If not specified, overlay/underlay are applied to all pages.
855 855
@@ -880,7 +880,7 @@ Here are some examples. @@ -880,7 +880,7 @@ Here are some examples.
880 underlay page 2 of :file:`footer.pdf` on all even 880 underlay page 2 of :file:`footer.pdf` on all even
881 output pages. 881 output pages.
882 882
883 -.. _ref.attachments: 883 +.. _attachments:
884 884
885 Embedded Files/Attachments Options 885 Embedded Files/Attachments Options
886 ---------------------------------- 886 ----------------------------------
@@ -975,7 +975,7 @@ timezone offset in the form :samp:`{-hh'mm'}` or @@ -975,7 +975,7 @@ timezone offset in the form :samp:`{-hh'mm'}` or
975 :samp:`{+hh'mm'}`. Examples: 975 :samp:`{+hh'mm'}`. Examples:
976 ``D:20210207161528-05'00'``, ``D:20210207211528Z``. 976 ``D:20210207161528-05'00'``, ``D:20210207211528Z``.
977 977
978 -.. _ref.advanced-parsing: 978 +.. _advanced-parsing:
979 979
980 Advanced Parsing Options 980 Advanced Parsing Options
981 ------------------------ 981 ------------------------
@@ -1011,7 +1011,7 @@ this feature is if you are testing creation of hybrid PDF files and wish @@ -1011,7 +1011,7 @@ this feature is if you are testing creation of hybrid PDF files and wish
1011 to see how a PDF consumer that doesn't understand object and 1011 to see how a PDF consumer that doesn't understand object and
1012 cross-reference streams would interpret such a file. 1012 cross-reference streams would interpret such a file.
1013 1013
1014 -.. _ref.advanced-transformation: 1014 +.. _advanced-transformation:
1015 1015
1016 Advanced Transformation Options 1016 Advanced Transformation Options
1017 ------------------------------- 1017 -------------------------------
@@ -1097,7 +1097,7 @@ following options are available: @@ -1097,7 +1097,7 @@ following options are available:
1097 1097
1098 :samp:`--normalize-content=[yn]` 1098 :samp:`--normalize-content=[yn]`
1099 Enables or disables normalization of content streams. Content 1099 Enables or disables normalization of content streams. Content
1100 - normalization is enabled by default in QDF mode. Please see :ref:`ref.qdf` for additional discussion of QDF mode. 1100 + normalization is enabled by default in QDF mode. Please see :ref:`qdf` for additional discussion of QDF mode.
1101 1101
1102 :samp:`--object-streams={mode}` 1102 :samp:`--object-streams={mode}`
1103 Controls handling of object streams. The value of 1103 Controls handling of object streams. The value of
@@ -1304,7 +1304,7 @@ following options are available: @@ -1304,7 +1304,7 @@ following options are available:
1304 Remove page labels from the output file. 1304 Remove page labels from the output file.
1305 1305
1306 :samp:`--qdf` 1306 :samp:`--qdf`
1307 - Turns on QDF mode. For additional information on QDF, please see :ref:`ref.qdf`. Note that :samp:`--linearize` 1307 + Turns on QDF mode. For additional information on QDF, please see :ref:`qdf`. Note that :samp:`--linearize`
1308 disables QDF mode. 1308 disables QDF mode.
1309 1309
1310 :samp:`--min-version={version}` 1310 :samp:`--min-version={version}`
@@ -1413,9 +1413,9 @@ documents are interspersed with comments that make it easier for the @@ -1413,9 +1413,9 @@ documents are interspersed with comments that make it easier for the
1413 user to find things and also make it possible for 1413 user to find things and also make it possible for
1414 :command:`fix-qdf` to work properly. QDF mode is intended 1414 :command:`fix-qdf` to work properly. QDF mode is intended
1415 for people, mostly developers, who wish to inspect or modify PDF files 1415 for people, mostly developers, who wish to inspect or modify PDF files
1416 -in a text editor. For details, please see :ref:`ref.qdf`. 1416 +in a text editor. For details, please see :ref:`qdf`.
1417 1417
1418 -.. _ref.testing-options: 1418 +.. _testing-options:
1419 1419
1420 Testing, Inspection, and Debugging Options 1420 Testing, Inspection, and Debugging Options
1421 ------------------------------------------ 1421 ------------------------------------------
@@ -1519,7 +1519,7 @@ given. The following options are available: @@ -1519,7 +1519,7 @@ given. The following options are available:
1519 1519
1520 :samp:`--json` 1520 :samp:`--json`
1521 Generate a JSON representation of the file. This is described in 1521 Generate a JSON representation of the file. This is described in
1522 - depth in :ref:`ref.json` 1522 + depth in :ref:`json`
1523 1523
1524 :samp:`--json-help` 1524 :samp:`--json-help`
1525 Describe the format of the JSON output. 1525 Describe the format of the JSON output.
@@ -1571,7 +1571,7 @@ attempt to normalize the stream data as if it is a page content stream. @@ -1571,7 +1571,7 @@ attempt to normalize the stream data as if it is a page content stream.
1571 This attempt will be made even if it is not a page content stream, in 1571 This attempt will be made even if it is not a page content stream, in
1572 which case it will produce unusable results. 1572 which case it will produce unusable results.
1573 1573
1574 -.. _ref.unicode-passwords: 1574 +.. _unicode-passwords:
1575 1575
1576 Unicode Passwords 1576 Unicode Passwords
1577 ----------------- 1577 -----------------
manual/design.rst
1 -.. _ref.design: 1 +.. _design:
2 2
3 Design and Library Notes 3 Design and Library Notes
4 ======================== 4 ========================
5 5
6 -.. _ref.design.intro: 6 +.. _design.intro:
7 7
8 Introduction 8 Introduction
9 ------------ 9 ------------
@@ -33,7 +33,7 @@ This is by design as there seems to be a shortage of PDF validation @@ -33,7 +33,7 @@ This is by design as there seems to be a shortage of PDF validation
33 tools out there. This was, in fact, one of the major motivations behind 33 tools out there. This was, in fact, one of the major motivations behind
34 the initial creation of qpdf. 34 the initial creation of qpdf.
35 35
36 -.. _ref.design-goals: 36 +.. _design-goals:
37 37
38 Design Goals 38 Design Goals
39 ------------ 39 ------------
@@ -118,9 +118,9 @@ full details, please see the header files @@ -118,9 +118,9 @@ full details, please see the header files
118 :file:`QPDF.hh` and 118 :file:`QPDF.hh` and
119 :file:`QPDFObjectHandle.hh`. There are also some 119 :file:`QPDFObjectHandle.hh`. There are also some
120 additional helper classes that provide higher level API functions for 120 additional helper classes that provide higher level API functions for
121 -certain document constructions. These are discussed in :ref:`ref.helper-classes`. 121 +certain document constructions. These are discussed in :ref:`helper-classes`.
122 122
123 -.. _ref.helper-classes: 123 +.. _helper-classes:
124 124
125 Helper Classes 125 Helper Classes
126 -------------- 126 --------------
@@ -219,7 +219,7 @@ remain in those classes even as alternatives are provided in helper @@ -219,7 +219,7 @@ remain in those classes even as alternatives are provided in helper
219 classes. Going forward, new higher level interfaces will be provided 219 classes. Going forward, new higher level interfaces will be provided
220 using helper classes. 220 using helper classes.
221 221
222 -.. _ref.implementation-notes: 222 +.. _implementation-notes:
223 223
224 Implementation Notes 224 Implementation Notes
225 -------------------- 225 --------------------
@@ -321,7 +321,7 @@ file. @@ -321,7 +321,7 @@ file.
321 As the client continues to request objects, the same process is 321 As the client continues to request objects, the same process is
322 followed for each new requested object. 322 followed for each new requested object.
323 323
324 -.. _ref.casting: 324 +.. _casting:
325 325
326 Casting Policy 326 Casting Policy
327 -------------- 327 --------------
@@ -395,7 +395,7 @@ prevent this from being done. There are places in the code where @@ -395,7 +395,7 @@ prevent this from being done. There are places in the code where
395 adequate testing to assert that it is safe and will remain safe in 395 adequate testing to assert that it is safe and will remain safe in
396 qpdf's code. 396 qpdf's code.
397 397
398 -.. _ref.encryption: 398 +.. _encryption:
399 399
400 Encryption 400 Encryption
401 ---------- 401 ----------
@@ -467,7 +467,7 @@ created, even if the results are not useful to some readers. One use @@ -467,7 +467,7 @@ created, even if the results are not useful to some readers. One use
467 case for this would be for testing a PDF reader to ensure that it 467 case for this would be for testing a PDF reader to ensure that it
468 handles odd configurations of input files. 468 handles odd configurations of input files.
469 469
470 -.. _ref.random-numbers: 470 +.. _random-numbers:
471 471
472 Random Number Generation 472 Random Number Generation
473 ------------------------ 473 ------------------------
@@ -484,7 +484,7 @@ details on how to do this, please refer to the top-level README.md file @@ -484,7 +484,7 @@ details on how to do this, please refer to the top-level README.md file
484 in the source distribution and to comments in 484 in the source distribution and to comments in
485 :file:`QUtil.hh`. 485 :file:`QUtil.hh`.
486 486
487 -.. _ref.adding-and-remove-pages: 487 +.. _adding-and-remove-pages:
488 488
489 Adding and Removing Pages 489 Adding and Removing Pages
490 ------------------------- 490 -------------------------
@@ -497,7 +497,7 @@ individual pages and manipulation of the ``/Pages`` tree itself. For @@ -497,7 +497,7 @@ individual pages and manipulation of the ``/Pages`` tree itself. For
497 details, see ``addPage`` and surrounding methods in 497 details, see ``addPage`` and surrounding methods in
498 :file:`QPDF.hh`. 498 :file:`QPDF.hh`.
499 499
500 -.. _ref.reserved-objects: 500 +.. _reserved-objects:
501 501
502 Reserving Object Numbers 502 Reserving Object Numbers
503 ------------------------ 503 ------------------------
@@ -520,11 +520,11 @@ construct the references. When finished, you can call @@ -520,11 +520,11 @@ construct the references. When finished, you can call
520 ``QPDF::replaceReserved`` to replace the reserved objects with the real 520 ``QPDF::replaceReserved`` to replace the reserved objects with the real
521 ones. This functionality will never be needed by most applications, but 521 ones. This functionality will never be needed by most applications, but
522 it is used internally by QPDF when copying objects from other PDF files, 522 it is used internally by QPDF when copying objects from other PDF files,
523 -as discussed in :ref:`ref.foreign-objects`. For an example of how to use reserved 523 +as discussed in :ref:`foreign-objects`. For an example of how to use reserved
524 objects, search for ``newReserved`` in 524 objects, search for ``newReserved`` in
525 :file:`test_driver.cc` in qpdf's sources. 525 :file:`test_driver.cc` in qpdf's sources.
526 526
527 -.. _ref.foreign-objects: 527 +.. _foreign-objects:
528 528
529 Copying Objects From Other PDF Files 529 Copying Objects From Other PDF Files
530 ------------------------------------ 530 ------------------------------------
@@ -560,7 +560,7 @@ source ``QPDF`` object must remain valid until you have finished with @@ -560,7 +560,7 @@ source ``QPDF`` object must remain valid until you have finished with
560 the destination object. This is because the original object is still 560 the destination object. This is because the original object is still
561 used to retrieve any referenced stream data from the copied object. 561 used to retrieve any referenced stream data from the copied object.
562 562
563 -.. _ref.rewriting: 563 +.. _rewriting:
564 564
565 Writing PDF Files 565 Writing PDF Files
566 ----------------- 566 -----------------
@@ -568,9 +568,9 @@ Writing PDF Files @@ -568,9 +568,9 @@ Writing PDF Files
568 The qpdf library supports file writing of ``QPDF`` objects to PDF files 568 The qpdf library supports file writing of ``QPDF`` objects to PDF files
569 through the ``QPDFWriter`` class. The ``QPDFWriter`` class has two 569 through the ``QPDFWriter`` class. The ``QPDFWriter`` class has two
570 writing modes: one for non-linearized files, and one for linearized 570 writing modes: one for non-linearized files, and one for linearized
571 -files. See :ref:`ref.linearization` for a description of 571 +files. See :ref:`linearization` for a description of
572 linearization is implemented. This section describes how we write 572 linearization is implemented. This section describes how we write
573 -non-linearized files including the creation of QDF files (see :ref:`ref.qdf`. 573 +non-linearized files including the creation of QDF files (see :ref:`qdf`.
574 574
575 This outline was written prior to implementation and is not exactly 575 This outline was written prior to implementation and is not exactly
576 accurate, but it provides a correct "notional" idea of how writing 576 accurate, but it provides a correct "notional" idea of how writing
@@ -645,7 +645,7 @@ can be used to write out a new xref table. Finally we can write out the @@ -645,7 +645,7 @@ can be used to write out a new xref table. Finally we can write out the
645 trailer dictionary with appropriately computed /ID (see spec, 8.3, File 645 trailer dictionary with appropriately computed /ID (see spec, 8.3, File
646 Identifiers), the cross reference table offset, and ``%%EOF``. 646 Identifiers), the cross reference table offset, and ``%%EOF``.
647 647
648 -.. _ref.filtered-streams: 648 +.. _filtered-streams:
649 649
650 Filtered Streams 650 Filtered Streams
651 ---------------- 651 ----------------
@@ -670,7 +670,7 @@ should write to whatever type of output is required. The ``QPDF`` class @@ -670,7 +670,7 @@ should write to whatever type of output is required. The ``QPDF`` class
670 has an interface to write raw or filtered stream contents to a given 670 has an interface to write raw or filtered stream contents to a given
671 pipeline. 671 pipeline.
672 672
673 -.. _ref.object-accessors: 673 +.. _object-accessors:
674 674
675 Object Accessor Methods 675 Object Accessor Methods
676 ----------------------- 676 -----------------------
manual/installation.rst
1 -.. _ref.installing: 1 +.. _installing:
2 2
3 Building and Installing QPDF 3 Building and Installing QPDF
4 ============================ 4 ============================
@@ -7,7 +7,7 @@ This chapter describes how to build and install qpdf. Please see also @@ -7,7 +7,7 @@ This chapter describes how to build and install qpdf. Please see also
7 the :file:`README.md` and 7 the :file:`README.md` and
8 :file:`INSTALL` files in the source distribution. 8 :file:`INSTALL` files in the source distribution.
9 9
10 -.. _ref.prerequisites: 10 +.. _prerequisites:
11 11
12 System Requirements 12 System Requirements
13 ------------------- 13 -------------------
@@ -68,7 +68,7 @@ documentation, you need ``pdflatex``, ``latexmk``, and a fairly complete @@ -68,7 +68,7 @@ documentation, you need ``pdflatex``, ``latexmk``, and a fairly complete
68 LaTeX installation. Detailed requirements can be found in the Sphinx 68 LaTeX installation. Detailed requirements can be found in the Sphinx
69 documentation. 69 documentation.
70 70
71 -.. _ref.building: 71 +.. _building:
72 72
73 Build Instructions 73 Build Instructions
74 ------------------ 74 ------------------
@@ -112,7 +112,7 @@ hand-crafted non-recursive Makefile that requires gnu make. If you're @@ -112,7 +112,7 @@ hand-crafted non-recursive Makefile that requires gnu make. If you're
112 really interested, please read the comments in the top-level 112 really interested, please read the comments in the top-level
113 :file:`Makefile`. 113 :file:`Makefile`.
114 114
115 -.. _ref.crypto: 115 +.. _crypto:
116 116
117 Crypto Providers 117 Crypto Providers
118 ---------------- 118 ----------------
@@ -131,7 +131,7 @@ Additional implementations may be added if needed. It is also possible @@ -131,7 +131,7 @@ Additional implementations may be added if needed. It is also possible
131 for a developer to provide their own implementation without modifying 131 for a developer to provide their own implementation without modifying
132 the qpdf library. 132 the qpdf library.
133 133
134 -.. _ref.crypto.build: 134 +.. _crypto.build:
135 135
136 Build Support For Crypto Providers 136 Build Support For Crypto Providers
137 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -192,7 +192,7 @@ build, and you can ignore @@ -192,7 +192,7 @@ build, and you can ignore
192 :file:`libqpdf/build.mk` to get the list of source 192 :file:`libqpdf/build.mk` to get the list of source
193 files you need to build. 193 files you need to build.
194 194
195 -.. _ref.crypto.runtime: 195 +.. _crypto.runtime:
196 196
197 Runtime Crypto Provider Selection 197 Runtime Crypto Provider Selection
198 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -211,7 +211,7 @@ to compare behavior of two different crypto providers while testing @@ -211,7 +211,7 @@ to compare behavior of two different crypto providers while testing
211 performance or reproducing a bug. It could also be useful for people who 211 performance or reproducing a bug. It could also be useful for people who
212 are implementing their own crypto providers. 212 are implementing their own crypto providers.
213 213
214 -.. _ref.crypto.develop: 214 +.. _crypto.develop:
215 215
216 Crypto Provider Information for Developers 216 Crypto Provider Information for Developers
217 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 217 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -224,7 +224,7 @@ provider, you have to create a class derived from ``QPDFCryptoImpl`` and @@ -224,7 +224,7 @@ provider, you have to create a class derived from ``QPDFCryptoImpl`` and
224 register it with ``QPDFCryptoProvider``. For additional information, see 224 register it with ``QPDFCryptoProvider``. For additional information, see
225 comments in :file:`include/qpdf/QPDFCryptoImpl.hh`. 225 comments in :file:`include/qpdf/QPDFCryptoImpl.hh`.
226 226
227 -.. _ref.crypto.design: 227 +.. _crypto.design:
228 228
229 Crypto Provider Design Notes 229 Crypto Provider Design Notes
230 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -298,7 +298,7 @@ Implementing the registration functions and internal storage of @@ -298,7 +298,7 @@ Implementing the registration functions and internal storage of
298 registered providers was also easier using C++-11's functional 298 registered providers was also easier using C++-11's functional
299 interfaces, which was another reason to require C++-11 at this time. 299 interfaces, which was another reason to require C++-11 at this time.
300 300
301 -.. _ref.packaging: 301 +.. _packaging:
302 302
303 Notes for Packagers 303 Notes for Packagers
304 ------------------- 304 -------------------
@@ -311,7 +311,7 @@ some things you may want to keep in mind: @@ -311,7 +311,7 @@ some things you may want to keep in mind:
311 However, qpdf still has a build-time dependency on perl. 311 However, qpdf still has a build-time dependency on perl.
312 312
313 - Make sure you are getting the intended behavior with regard to crypto 313 - Make sure you are getting the intended behavior with regard to crypto
314 - providers. Read :ref:`ref.crypto.build` for details. 314 + providers. Read :ref:`crypto.build` for details.
315 315
316 - Passing :samp:`--enable-show-failed-test-output` to 316 - Passing :samp:`--enable-show-failed-test-output` to
317 :command:`./configure` will cause any failed test 317 :command:`./configure` will cause any failed test
manual/json.rst
1 -.. _ref.json: 1 +.. _json:
2 2
3 QPDF JSON 3 QPDF JSON
4 ========= 4 =========
5 5
6 -.. _ref.json-overview: 6 +.. _json-overview:
7 7
8 Overview 8 Overview
9 -------- 9 --------
@@ -18,7 +18,7 @@ files programmatically from the command-line in languages that can't @@ -18,7 +18,7 @@ files programmatically from the command-line in languages that can't
18 call or link with the qpdf library directly. Note that stream data can 18 call or link with the qpdf library directly. Note that stream data can
19 be extracted from PDF files using other qpdf command-line options. 19 be extracted from PDF files using other qpdf command-line options.
20 20
21 -.. _ref.json-guarantees: 21 +.. _json-guarantees:
22 22
23 JSON Guarantees 23 JSON Guarantees
24 --------------- 24 ---------------
manual/library.rst
1 -.. _ref.using-library: 1 +.. _using-library:
2 2
3 Using the QPDF Library 3 Using the QPDF Library
4 ====================== 4 ======================
5 5
6 -.. _ref.using.from-cxx: 6 +.. _using.from-cxx:
7 7
8 Using QPDF from C++ 8 Using QPDF from C++
9 ------------------- 9 -------------------
@@ -34,7 +34,7 @@ individual ``QPDF`` object instance (including ``QPDF``, @@ -34,7 +34,7 @@ individual ``QPDF`` object instance (including ``QPDF``,
34 thread at a time. Multiple threads may simultaneously work with 34 thread at a time. Multiple threads may simultaneously work with
35 different instances of these and all other QPDF objects. 35 different instances of these and all other QPDF objects.
36 36
37 -.. _ref.using.other-languages: 37 +.. _using.other-languages:
38 38
39 Using QPDF from other languages 39 Using QPDF from other languages
40 ------------------------------- 40 -------------------------------
@@ -65,9 +65,9 @@ Other Languages @@ -65,9 +65,9 @@ Other Languages
65 command-line tool can produce a JSON representation of the PDF file's 65 command-line tool can produce a JSON representation of the PDF file's
66 non-content data. This can facilitate interacting programmatically 66 non-content data. This can facilitate interacting programmatically
67 with PDF files through qpdf's command line interface. For more 67 with PDF files through qpdf's command line interface. For more
68 - information, please see :ref:`ref.json`. 68 + information, please see :ref:`json`.
69 69
70 -.. _ref.unicode-files: 70 +.. _unicode-files:
71 71
72 A Note About Unicode File Names 72 A Note About Unicode File Names
73 ------------------------------- 73 -------------------------------
manual/license.rst
1 -.. _ref.license: 1 +.. _license:
2 2
3 License 3 License
4 ======= 4 =======
manual/linearization.rst
1 -.. _ref.linearization: 1 +.. _linearization:
2 2
3 Linearization 3 Linearization
4 ============= 4 =============
@@ -6,7 +6,7 @@ Linearization @@ -6,7 +6,7 @@ Linearization
6 This chapter describes how ``QPDF`` and ``QPDFWriter`` implement 6 This chapter describes how ``QPDF`` and ``QPDFWriter`` implement
7 creation and processing of linearized PDFS. 7 creation and processing of linearized PDFS.
8 8
9 -.. _ref.linearization-strategy: 9 +.. _linearization-strategy:
10 10
11 Basic Strategy for Linearization 11 Basic Strategy for Linearization
12 -------------------------------- 12 --------------------------------
@@ -22,7 +22,7 @@ was first tested against linearized files created by external tools @@ -22,7 +22,7 @@ was first tested against linearized files created by external tools
22 (Acrobat and pdlin) and then used to validate files created by 22 (Acrobat and pdlin) and then used to validate files created by
23 ``QPDFWriter`` itself. 23 ``QPDFWriter`` itself.
24 24
25 -.. _ref.linearized.preparation: 25 +.. _linearized.preparation:
26 26
27 Preparing For Linearization 27 Preparing For Linearization
28 --------------------------- 28 ---------------------------
@@ -34,7 +34,7 @@ tree). We also have to know which objects refer to which other objects, @@ -34,7 +34,7 @@ tree). We also have to know which objects refer to which other objects,
34 being concerned with page boundaries and a few other cases. We refer to 34 being concerned with page boundaries and a few other cases. We refer to
35 this part of preparing the PDF file as 35 this part of preparing the PDF file as
36 *optimization*, discussed in 36 *optimization*, discussed in
37 -:ref:`ref.optimization`. Note the, in this context, the 37 +:ref:`optimization`. Note the, in this context, the
38 term *optimization* is a qpdf term, and the 38 term *optimization* is a qpdf term, and the
39 term *linearization* is a term from the PDF 39 term *linearization* is a term from the PDF
40 specification. Do not be confused by the fact that many applications 40 specification. Do not be confused by the fact that many applications
@@ -49,7 +49,7 @@ really only a few issues that need to be dealt with: @@ -49,7 +49,7 @@ really only a few issues that need to be dealt with:
49 49
50 - Filling in offsets and byte sizes 50 - Filling in offsets and byte sizes
51 51
52 -.. _ref.optimization: 52 +.. _optimization:
53 53
54 Optimization 54 Optimization
55 ------------ 55 ------------
@@ -85,7 +85,7 @@ Note that pages and thumbnails have different object user types, so the @@ -85,7 +85,7 @@ Note that pages and thumbnails have different object user types, so the
85 above test on a page will not include objects referenced by the page's 85 above test on a page will not include objects referenced by the page's
86 thumbnail dictionary and nothing else. 86 thumbnail dictionary and nothing else.
87 87
88 -.. _ref.linearization.writing: 88 +.. _linearization.writing:
89 89
90 Writing Linearized Files 90 Writing Linearized Files
91 ------------------------ 91 ------------------------
@@ -131,7 +131,7 @@ Using this strategy, we can write linearized files to a non-seekable @@ -131,7 +131,7 @@ Using this strategy, we can write linearized files to a non-seekable
131 output stream with only a single pass to disk or wherever the output is 131 output stream with only a single pass to disk or wherever the output is
132 going. 132 going.
133 133
134 -.. _ref.linearization-data: 134 +.. _linearization-data:
135 135
136 Calculating Linearization Data 136 Calculating Linearization Data
137 ------------------------------ 137 ------------------------------
@@ -147,7 +147,7 @@ object is encountered that has not already been queued. (This could @@ -147,7 +147,7 @@ object is encountered that has not already been queued. (This could
147 happen only if there were a bug in the traversal code used to calculate 147 happen only if there were a bug in the traversal code used to calculate
148 the linearization data.) 148 the linearization data.)
149 149
150 -.. _ref.linearization-issues: 150 +.. _linearization-issues:
151 151
152 Known Issues with Linearization 152 Known Issues with Linearization
153 ------------------------------- 153 -------------------------------
@@ -172,7 +172,7 @@ linearization appendix of the PDF specification. @@ -172,7 +172,7 @@ linearization appendix of the PDF specification.
172 most of the information needed to create thumbnail hint tables. There 172 most of the information needed to create thumbnail hint tables. There
173 are comments in the code about this. 173 are comments in the code about this.
174 174
175 -.. _ref.linearization-debugging: 175 +.. _linearization-debugging:
176 176
177 Debugging Note 177 Debugging Note
178 -------------- 178 --------------
manual/object-streams.rst
1 -.. _ref.object-and-xref-streams: 1 +.. _object-and-xref-streams:
2 2
3 Object and Cross-Reference Streams 3 Object and Cross-Reference Streams
4 ================================== 4 ==================================
@@ -6,7 +6,7 @@ Object and Cross-Reference Streams @@ -6,7 +6,7 @@ Object and Cross-Reference Streams
6 This chapter provides information about the implementation of object 6 This chapter provides information about the implementation of object
7 stream and cross-reference stream support in qpdf. 7 stream and cross-reference stream support in qpdf.
8 8
9 -.. _ref.object-streams: 9 +.. _object-streams:
10 10
11 Object Streams 11 Object Streams
12 -------------- 12 --------------
@@ -27,7 +27,7 @@ if the file is encrypted, though this is not specifically disallowed by @@ -27,7 +27,7 @@ if the file is encrypted, though this is not specifically disallowed by
27 the specification. 27 the specification.
28 28
29 There are additional restrictions for linearized files. See 29 There are additional restrictions for linearized files. See
30 -:ref:`ref.object-streams-linearization` for details. 30 +:ref:`object-streams-linearization` for details.
31 31
32 The PDF specification refers to objects in object streams as "compressed 32 The PDF specification refers to objects in object streams as "compressed
33 objects" regardless of whether the object stream is compressed. 33 objects" regardless of whether the object stream is compressed.
@@ -62,7 +62,7 @@ is the object number and the byte offset of the object relative to the @@ -62,7 +62,7 @@ is the object number and the byte offset of the object relative to the
62 first object in the stream, followed by the objects themselves, 62 first object in the stream, followed by the objects themselves,
63 concatenated. 63 concatenated.
64 64
65 -.. _ref.xref-streams: 65 +.. _xref-streams:
66 66
67 Cross-Reference Streams 67 Cross-Reference Streams
68 ----------------------- 68 -----------------------
@@ -111,7 +111,7 @@ which are these: @@ -111,7 +111,7 @@ which are these:
111 The other fields in the xref stream, which may be indirect if desired, 111 The other fields in the xref stream, which may be indirect if desired,
112 are the union of those from the xref table's trailer dictionary. 112 are the union of those from the xref table's trailer dictionary.
113 113
114 -.. _ref.xref-stream-data: 114 +.. _xref-stream-data:
115 115
116 Cross-Reference Stream Data 116 Cross-Reference Stream Data
117 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -138,7 +138,7 @@ PDF 1.5 has three field types: @@ -138,7 +138,7 @@ PDF 1.5 has three field types:
138 It seems standard to have the first entry in the table be ``0 0 0`` 138 It seems standard to have the first entry in the table be ``0 0 0``
139 instead of ``0 0 ffff`` if there are no deleted objects. 139 instead of ``0 0 ffff`` if there are no deleted objects.
140 140
141 -.. _ref.object-streams-linearization: 141 +.. _object-streams-linearization:
142 142
143 Implications for Linearized Files 143 Implications for Linearized Files
144 --------------------------------- 144 ---------------------------------
@@ -161,7 +161,7 @@ When numbering objects, all shared objects within both the first and @@ -161,7 +161,7 @@ When numbering objects, all shared objects within both the first and
161 second halves of the linearized files must be numbered consecutively 161 second halves of the linearized files must be numbered consecutively
162 after all normal uncompressed objects in that half. 162 after all normal uncompressed objects in that half.
163 163
164 -.. _ref.object-stream-implementation: 164 +.. _object-stream-implementation:
165 165
166 Implementation Notes 166 Implementation Notes
167 -------------------- 167 --------------------
manual/overview.rst
1 -.. _ref.overview: 1 +.. _overview:
2 2
3 What is QPDF? 3 What is QPDF?
4 ============= 4 =============
manual/qdf.rst
1 -.. _ref.qdf: 1 +.. _qdf:
2 2
3 QDF Mode 3 QDF Mode
4 ======== 4 ========
manual/release-notes.rst
1 -.. _ref.release-notes: 1 +.. _release-notes:
2 2
3 Release Notes 3 Release Notes
4 ============= 4 =============
@@ -34,7 +34,7 @@ For a detailed list of changes, please see the file @@ -34,7 +34,7 @@ For a detailed list of changes, please see the file
34 error code of ``qpdf_e_object`` instead of 34 error code of ``qpdf_e_object`` instead of
35 ``qpdf_e_damaged_pdf``. Also, comments have been added to 35 ``qpdf_e_damaged_pdf``. Also, comments have been added to
36 :file:`QPDFObjectHandle.hh` to explain in more detail what the 36 :file:`QPDFObjectHandle.hh` to explain in more detail what the
37 - behavior is. See :ref:`ref.object-accessors` for a more in-depth 37 + behavior is. See :ref:`object-accessors` for a more in-depth
38 discussion. 38 discussion.
39 39
40 - Add ``Pl_Buffer::getMallocBuffer()`` to initialize a buffer 40 - Add ``Pl_Buffer::getMallocBuffer()`` to initialize a buffer
@@ -88,7 +88,7 @@ For a detailed list of changes, please see the file @@ -88,7 +88,7 @@ For a detailed list of changes, please see the file
88 acknowledgment moving forward. For qpdf 10.4, this change only 88 acknowledgment moving forward. For qpdf 10.4, this change only
89 affects the command-line tool. Starting in qpdf 11, there will 89 affects the command-line tool. Starting in qpdf 11, there will
90 be small API changes to require explicit acknowledgment in 90 be small API changes to require explicit acknowledgment in
91 - those cases as well. For additional information, see :ref:`ref.weak-crypto`. 91 + those cases as well. For additional information, see :ref:`weak-crypto`.
92 92
93 - Bug Fixes 93 - Bug Fixes
94 94
@@ -243,7 +243,7 @@ For a detailed list of changes, please see the file @@ -243,7 +243,7 @@ For a detailed list of changes, please see the file
243 - CLI Enhancements 243 - CLI Enhancements
244 244
245 - Add new command line options for listing, saving, adding, 245 - Add new command line options for listing, saving, adding,
246 - removing, and and copying file attachments. See :ref:`ref.attachments` for details. 246 + removing, and and copying file attachments. See :ref:`attachments` for details.
247 247
248 - Page splitting and merging operations, as well as 248 - Page splitting and merging operations, as well as
249 :samp:`--flatten-rotation`, are better behaved 249 :samp:`--flatten-rotation`, are better behaved
@@ -654,7 +654,7 @@ For a detailed list of changes, please see the file @@ -654,7 +654,7 @@ For a detailed list of changes, please see the file
654 expensive process of finding and removing unreferenced 654 expensive process of finding and removing unreferenced
655 resources is likely to be of benefit. For most files, this new 655 resources is likely to be of benefit. For most files, this new
656 default will result in a significant performance improvement 656 default will result in a significant performance improvement
657 - for splitting pages. See :ref:`ref.advanced-transformation` for a more detailed 657 + for splitting pages. See :ref:`advanced-transformation` for a more detailed
658 discussion. 658 discussion.
659 659
660 - The :samp:`--preserve-unreferenced-resources` 660 - The :samp:`--preserve-unreferenced-resources`
@@ -786,8 +786,8 @@ For a detailed list of changes, please see the file @@ -786,8 +786,8 @@ For a detailed list of changes, please see the file
786 - A C++-11 compiler is now required to build qpdf. 786 - A C++-11 compiler is now required to build qpdf.
787 787
788 - A new crypto provider that uses gnutls for crypto functions is 788 - A new crypto provider that uses gnutls for crypto functions is
789 - now available and can be enabled at build time. See :ref:`ref.crypto` for more information about crypto  
790 - providers and :ref:`ref.crypto.build` for specific information about 789 + now available and can be enabled at build time. See :ref:`crypto` for more information about crypto
  790 + providers and :ref:`crypto.build` for specific information about
791 the build. 791 the build.
792 792
793 - Library Enhancements 793 - Library Enhancements
@@ -811,12 +811,12 @@ For a detailed list of changes, please see the file @@ -811,12 +811,12 @@ For a detailed list of changes, please see the file
811 This includes the addition of new classes 811 This includes the addition of new classes
812 ``QPDFCryptoProvider`` and ``QPDFCryptoImpl`` and the 812 ``QPDFCryptoProvider`` and ``QPDFCryptoImpl`` and the
813 recognition of the ``QPDF_CRYPTO_PROVIDER`` environment 813 recognition of the ``QPDF_CRYPTO_PROVIDER`` environment
814 - variable. Crypto providers are described in depth in :ref:`ref.crypto`. 814 + variable. Crypto providers are described in depth in :ref:`crypto`.
815 815
816 - CLI Enhancements 816 - CLI Enhancements
817 817
818 - Addition of the :samp:`--show-crypto` option in 818 - Addition of the :samp:`--show-crypto` option in
819 - support of selectable crypto providers, as described in :ref:`ref.crypto`. 819 + support of selectable crypto providers, as described in :ref:`crypto`.
820 820
821 - Allow ``:even`` or ``:odd`` to be appended to numeric ranges 821 - Allow ``:even`` or ``:odd`` to be appended to numeric ranges
822 for specification of the even or odd pages from among the pages 822 for specification of the even or odd pages from among the pages
@@ -885,7 +885,7 @@ For a detailed list of changes, please see the file @@ -885,7 +885,7 @@ For a detailed list of changes, please see the file
885 - The :samp:`--replace-input` option may be given 885 - The :samp:`--replace-input` option may be given
886 in place of an output file name. This causes qpdf to overwrite 886 in place of an output file name. This causes qpdf to overwrite
887 the input file with the output. See the description of 887 the input file with the output. See the description of
888 - :samp:`--replace-input` in :ref:`ref.basic-options` for more details. 888 + :samp:`--replace-input` in :ref:`basic-options` for more details.
889 889
890 - The :samp:`--recompress-flate` instructs 890 - The :samp:`--recompress-flate` instructs
891 :command:`qpdf` to recompress streams that are 891 :command:`qpdf` to recompress streams that are
@@ -906,7 +906,7 @@ For a detailed list of changes, please see the file @@ -906,7 +906,7 @@ For a detailed list of changes, please see the file
906 conversion methods do range checking to ensure that the cast 906 conversion methods do range checking to ensure that the cast
907 can be performed with no loss of information. Every use of 907 can be performed with no loss of information. Every use of
908 ``static_cast`` in the library was inspected to see if it could 908 ``static_cast`` in the library was inspected to see if it could
909 - use one of these safe converters instead. See :ref:`ref.casting` for additional details. 909 + use one of these safe converters instead. See :ref:`casting` for additional details.
910 910
911 - Method ``QPDF::anyWarnings`` tells whether there have been any 911 - Method ``QPDF::anyWarnings`` tells whether there have been any
912 warnings without clearing the list of warnings. 912 warnings without clearing the list of warnings.
@@ -1100,7 +1100,7 @@ For a detailed list of changes, please see the file @@ -1100,7 +1100,7 @@ For a detailed list of changes, please see the file
1100 previous releases when the passwords contain non-ASCII 1100 previous releases when the passwords contain non-ASCII
1101 characters. In some cases, the behavior differs from previous 1101 characters. In some cases, the behavior differs from previous
1102 releases. For a discussion of the current behavior, please see 1102 releases. For a discussion of the current behavior, please see
1103 - :ref:`ref.unicode-passwords`. The 1103 + :ref:`unicode-passwords`. The
1104 incompatibilities are as follows: 1104 incompatibilities are as follows:
1105 1105
1106 - On Windows, qpdf now receives all command-line options as 1106 - On Windows, qpdf now receives all command-line options as
@@ -1131,7 +1131,7 @@ For a detailed list of changes, please see the file @@ -1131,7 +1131,7 @@ For a detailed list of changes, please see the file
1131 the PDF spec requires. While this is almost always the 1131 the PDF spec requires. While this is almost always the
1132 correct behavior, it is possible to override the behavior if 1132 correct behavior, it is possible to override the behavior if
1133 there is some reason to do so. This is discussed in more 1133 there is some reason to do so. This is discussed in more
1134 - depth in :ref:`ref.unicode-passwords`. 1134 + depth in :ref:`unicode-passwords`.
1135 1135
1136 - New options 1136 - New options
1137 :samp:`--externalize-inline-images`, 1137 :samp:`--externalize-inline-images`,
@@ -1140,12 +1140,12 @@ For a detailed list of changes, please see the file @@ -1140,12 +1140,12 @@ For a detailed list of changes, please see the file
1140 handling of inline images and possible conversion of them to 1140 handling of inline images and possible conversion of them to
1141 regular images. By default, 1141 regular images. By default,
1142 :samp:`--optimize-images` now also applies to 1142 :samp:`--optimize-images` now also applies to
1143 - inline images. These options are discussed in :ref:`ref.advanced-transformation`. 1143 + inline images. These options are discussed in :ref:`advanced-transformation`.
1144 1144
1145 - Add options :samp:`--overlay` and 1145 - Add options :samp:`--overlay` and
1146 :samp:`--underlay` for overlaying or 1146 :samp:`--underlay` for overlaying or
1147 underlaying pages of other files onto output pages. See 1147 underlaying pages of other files onto output pages. See
1148 - :ref:`ref.overlay-underlay` for 1148 + :ref:`overlay-underlay` for
1149 details. 1149 details.
1150 1150
1151 - When opening an encrypted file with a password, if the 1151 - When opening an encrypted file with a password, if the
@@ -1154,12 +1154,12 @@ For a detailed list of changes, please see the file @@ -1154,12 +1154,12 @@ For a detailed list of changes, please see the file
1154 passwords to try to compensate for possible character encoding 1154 passwords to try to compensate for possible character encoding
1155 errors. This behavior can be suppressed with the 1155 errors. This behavior can be suppressed with the
1156 :samp:`--suppress-password-recovery` option. 1156 :samp:`--suppress-password-recovery` option.
1157 - See :ref:`ref.unicode-passwords` for a full 1157 + See :ref:`unicode-passwords` for a full
1158 discussion. 1158 discussion.
1159 1159
1160 - Add the :samp:`--password-mode` option to 1160 - Add the :samp:`--password-mode` option to
1161 fine-tune how qpdf interprets password arguments, especially 1161 fine-tune how qpdf interprets password arguments, especially
1162 - when they contain non-ASCII characters. See :ref:`ref.unicode-passwords` for more information. 1162 + when they contain non-ASCII characters. See :ref:`unicode-passwords` for more information.
1163 1163
1164 - In the :samp:`--pages` option, it is now 1164 - In the :samp:`--pages` option, it is now
1165 possible to copy the same page more than once from the same 1165 possible to copy the same page more than once from the same
@@ -1333,7 +1333,7 @@ For a detailed list of changes, please see the file @@ -1333,7 +1333,7 @@ For a detailed list of changes, please see the file
1333 - Page collation: add new option 1333 - Page collation: add new option
1334 :samp:`--collate`. When specified, the 1334 :samp:`--collate`. When specified, the
1335 semantics of :samp:`--pages` change from 1335 semantics of :samp:`--pages` change from
1336 - concatenation to collation. See :ref:`ref.page-selection` for examples and discussion. 1336 + concatenation to collation. See :ref:`page-selection` for examples and discussion.
1337 1337
1338 - Generation of information in JSON format, primarily to 1338 - Generation of information in JSON format, primarily to
1339 facilitate use of qpdf from languages other than C++. Add new 1339 facilitate use of qpdf from languages other than C++. Add new
@@ -1342,7 +1342,7 @@ For a detailed list of changes, please see the file @@ -1342,7 +1342,7 @@ For a detailed list of changes, please see the file
1342 :samp:`--json-object` to generate a JSON 1342 :samp:`--json-object` to generate a JSON
1343 representation of the PDF file. Run :command:`qpdf 1343 representation of the PDF file. Run :command:`qpdf
1344 --json-help` to get a description of the JSON 1344 --json-help` to get a description of the JSON
1345 - format. For more information, see :ref:`ref.json`. 1345 + format. For more information, see :ref:`json`.
1346 1346
1347 - The :samp:`--generate-appearances` flag will 1347 - The :samp:`--generate-appearances` flag will
1348 cause qpdf to generate appearances for form fields if the PDF 1348 cause qpdf to generate appearances for form fields if the PDF
@@ -1500,7 +1500,7 @@ For a detailed list of changes, please see the file @@ -1500,7 +1500,7 @@ For a detailed list of changes, please see the file
1500 - Notes for Packagers 1500 - Notes for Packagers
1501 1501
1502 - A new section has been added to the documentation with notes 1502 - A new section has been added to the documentation with notes
1503 - for packagers. Please see :ref:`ref.packaging`. 1503 + for packagers. Please see :ref:`packaging`.
1504 1504
1505 - The qpdf detects out-of-date automatically generated files. If 1505 - The qpdf detects out-of-date automatically generated files. If
1506 your packaging system automatically refreshes libtool or 1506 your packaging system automatically refreshes libtool or
@@ -1522,7 +1522,7 @@ For a detailed list of changes, please see the file @@ -1522,7 +1522,7 @@ For a detailed list of changes, please see the file
1522 :samp:`--keep-files-open={[yn]}` 1522 :samp:`--keep-files-open={[yn]}`
1523 to override default determination of whether to keep files open 1523 to override default determination of whether to keep files open
1524 when merging. Please see the discussion of 1524 when merging. Please see the discussion of
1525 - :samp:`--keep-files-open` in :ref:`ref.basic-options` for additional details. 1525 + :samp:`--keep-files-open` in :ref:`basic-options` for additional details.
1526 1526
1527 8.2.0: August 16, 2018 1527 8.2.0: August 16, 2018
1528 - Command-line Enhancements 1528 - Command-line Enhancements
@@ -1588,7 +1588,7 @@ For a detailed list of changes, please see the file @@ -1588,7 +1588,7 @@ For a detailed list of changes, please see the file
1588 page splitting is very slow, the old behavior (and speed) can 1588 page splitting is very slow, the old behavior (and speed) can
1589 be enabled by specifying 1589 be enabled by specifying
1590 :samp:`--preserve-unreferenced-resources`. For 1590 :samp:`--preserve-unreferenced-resources`. For
1591 - additional details, please see :ref:`ref.advanced-transformation`. 1591 + additional details, please see :ref:`advanced-transformation`.
1592 1592
1593 - When merging multiple PDF files, qpdf no longer leaves all the 1593 - When merging multiple PDF files, qpdf no longer leaves all the
1594 files open. This makes it possible to merge numbers of files 1594 files open. This makes it possible to merge numbers of files
@@ -1633,7 +1633,7 @@ For a detailed list of changes, please see the file @@ -1633,7 +1633,7 @@ For a detailed list of changes, please see the file
1633 introduced. These are designed to provide a more convenient way 1633 introduced. These are designed to provide a more convenient way
1634 of interacting with certain document features than using 1634 of interacting with certain document features than using
1635 ``QPDFObjectHandle`` directly. For details on helpers, see 1635 ``QPDFObjectHandle`` directly. For details on helpers, see
1636 - :ref:`ref.helper-classes`. Specific additional 1636 + :ref:`helper-classes`. Specific additional
1637 interfaces are described below. 1637 interfaces are described below.
1638 1638
1639 - Add two new document helper classes: ``QPDFPageDocumentHelper`` 1639 - Add two new document helper classes: ``QPDFPageDocumentHelper``
@@ -1718,7 +1718,7 @@ For a detailed list of changes, please see the file @@ -1718,7 +1718,7 @@ For a detailed list of changes, please see the file
1718 1718
1719 - Enhancements to the :command:`qpdf` Command-line 1719 - Enhancements to the :command:`qpdf` Command-line
1720 Tool. All new options listed here are documented in more detail in 1720 Tool. All new options listed here are documented in more detail in
1721 - :ref:`ref.using`. 1721 + :ref:`using`.
1722 1722
1723 - The option 1723 - The option
1724 :samp:`--linearize-pass1={file}` 1724 :samp:`--linearize-pass1={file}`
@@ -1774,7 +1774,7 @@ For a detailed list of changes, please see the file @@ -1774,7 +1774,7 @@ For a detailed list of changes, please see the file
1774 the encryption key used by a file. This is a non-standard 1774 the encryption key used by a file. This is a non-standard
1775 operation, but it can be useful in certain situations. Please see 1775 operation, but it can be useful in certain situations. Please see
1776 the discussion of :samp:`--password-is-hex-key` in 1776 the discussion of :samp:`--password-is-hex-key` in
1777 - :ref:`ref.basic-options` or the comments around 1777 + :ref:`basic-options` or the comments around
1778 ``QPDF::setPasswordIsHexKey`` in 1778 ``QPDF::setPasswordIsHexKey`` in
1779 :file:`QPDF.hh` for additional details. 1779 :file:`QPDF.hh` for additional details.
1780 1780
@@ -1832,10 +1832,10 @@ For a detailed list of changes, please see the file @@ -1832,10 +1832,10 @@ For a detailed list of changes, please see the file
1832 1832
1833 - Enhancements to the :command:`qpdf` Command-line 1833 - Enhancements to the :command:`qpdf` Command-line
1834 Tool. All new options listed here are documented in more detail in 1834 Tool. All new options listed here are documented in more detail in
1835 - :ref:`ref.using`. 1835 + :ref:`using`.
1836 1836
1837 - Command-line arguments can now be read from files or standard 1837 - Command-line arguments can now be read from files or standard
1838 - input using ``@file`` or ``@-`` syntax. Please see :ref:`ref.invocation`. 1838 + input using ``@file`` or ``@-`` syntax. Please see :ref:`invocation`.
1839 1839
1840 - :samp:`--rotate`: request page rotation 1840 - :samp:`--rotate`: request page rotation
1841 1841
@@ -2147,7 +2147,7 @@ For a detailed list of changes, please see the file @@ -2147,7 +2147,7 @@ For a detailed list of changes, please see the file
2147 ``QPDFWriter::setMinimumPDFVersion`` and 2147 ``QPDFWriter::setMinimumPDFVersion`` and
2148 ``QPDFWriter::forcePDFVersion`` that accept an extension level, 2148 ``QPDFWriter::forcePDFVersion`` that accept an extension level,
2149 and extended syntax for specifying forced and minimum versions on 2149 and extended syntax for specifying forced and minimum versions on
2150 - the command line as described in :ref:`ref.advanced-transformation`. Corresponding functions 2150 + the command line as described in :ref:`advanced-transformation`. Corresponding functions
2151 have been added to the C API as well. 2151 have been added to the C API as well.
2152 2152
2153 - Minor fixes to prevent qpdf from referencing objects in the file 2153 - Minor fixes to prevent qpdf from referencing objects in the file
@@ -2294,17 +2294,17 @@ For a detailed list of changes, please see the file @@ -2294,17 +2294,17 @@ For a detailed list of changes, please see the file
2294 2294
2295 - Support for page selection (splitting and merging PDF files) has 2295 - Support for page selection (splitting and merging PDF files) has
2296 been added to the :command:`qpdf` command-line 2296 been added to the :command:`qpdf` command-line
2297 - tool. See :ref:`ref.page-selection`. 2297 + tool. See :ref:`page-selection`.
2298 2298
2299 - Options have been added to the :command:`qpdf` 2299 - Options have been added to the :command:`qpdf`
2300 command-line tool for copying encryption parameters from another 2300 command-line tool for copying encryption parameters from another
2301 - file. See :ref:`ref.basic-options`. 2301 + file. See :ref:`basic-options`.
2302 2302
2303 - New methods have been added to the ``QPDF`` object for adding and 2303 - New methods have been added to the ``QPDF`` object for adding and
2304 - removing pages. See :ref:`ref.adding-and-remove-pages`. 2304 + removing pages. See :ref:`adding-and-remove-pages`.
2305 2305
2306 - New methods have been added to the ``QPDF`` object for copying 2306 - New methods have been added to the ``QPDF`` object for copying
2307 - objects from other PDF files. See :ref:`ref.foreign-objects` 2307 + objects from other PDF files. See :ref:`foreign-objects`
2308 2308
2309 - A new method ``QPDFObjectHandle::parse`` has been added for 2309 - A new method ``QPDFObjectHandle::parse`` has been added for
2310 constructing ``QPDFObjectHandle`` objects from a string 2310 constructing ``QPDFObjectHandle`` objects from a string
manual/weak-crypto.rst
1 -.. _ref.weak-crypto: 1 +.. _weak-crypto:
2 2
3 Weak Cryptography 3 Weak Cryptography
4 ================= 4 =================