Commit f3d68aa5a0b642c8d38ff52f5fef0f7fc036f033

Authored by Jay Berkenbilt
1 parent 7dd5f312

Incorporate editorial changes from m-holger

generate_auto_job
... ... @@ -159,8 +159,11 @@ class Main:
159 159 if long_text == '':
160 160 raise Exception(f'missing long text for {topic}')
161 161 long_text += '\n'
162   - for i in re.finditer(r'--help=([^\.\s]+)', long_text):
163   - self.referenced_topics.add(i.group(1))
  162 + if topic != '--help':
  163 + # Help for --help itself has --help=... not
  164 + # referring to specific options.
  165 + for i in re.finditer(r'--help=([^\.\s]+)', long_text):
  166 + self.referenced_topics.add(i.group(1))
164 167 return True
165 168 return False
166 169  
... ...
job.sums
1 1 # Generated by generate_auto_job
2   -generate_auto_job 8efd9e2fa9d517ceb80404f1779f37de194df32a422f0beca30a2b47cc64d816
  2 +generate_auto_job bc2f0e8cecebe8b11950cf37714a646fd5a1d294839b748d1c499353226dd642
3 3 include/qpdf/auto_job_c_att.hh 7ad43bb374c1370ef32ebdcdcb7b73a61d281f7f4e3f12755585872ab30fb60e
4 4 include/qpdf/auto_job_c_copy_att.hh 32275d03cdc69b703dd7e02ba0bbe15756e714e9ad185484773a6178dc09e1ee
5 5 include/qpdf/auto_job_c_enc.hh 72e138c7b96ed5aacdce78c1dec04b1c20d361faec4f8faf52f64c1d6be99265
... ... @@ -8,8 +8,8 @@ include/qpdf/auto_job_c_pages.hh 931840b329a36ca0e41401190e04537b47f2867671a6643
8 8 include/qpdf/auto_job_c_uo.hh 0585b7de459fa479d9e51a45fa92de0ff6dee748efc9ec1cedd0dde6cee1ad50
9 9 job.yml 1590fd16fd17ed40db9aa56b6713c844cfd61b3a6d0441a3ccd122b7371c68e9
10 10 libqpdf/qpdf/auto_job_decl.hh 9f79396ec459f191be4c5fe34cf88c265cf47355a1a945fa39169d1c94cf04f6
11   -libqpdf/qpdf/auto_job_help.hh 524e8123152df496794954d16a556d5fee9c76ec6a7f5a6b8f9d2b59c1719e10
  11 +libqpdf/qpdf/auto_job_help.hh 05cddfb81ed7fb58a8249b912890e560cb76bd51389d64eae6c662ca552c87d9
12 12 libqpdf/qpdf/auto_job_init.hh 3b6323189480a7d782563c9d2b5bc29b8dcd19c6dcc89840b207e38cb503d3f1
13 13 libqpdf/qpdf/auto_job_schema.hh 1c3b4b5488270f8d200ed345573e3a241f15baff6fb7e97ec3d044103b2546d9
14 14 manual/_ext/qpdf.py e9ac9d6c70642a3d29281ee5ad92ae2422dee8be9306fb8a0bc9dba0ed5e28f3
15   -manual/cli.rst 06785f88a28703da0f6d81b6983ae6c09aa1dd8cd958fb5058d56177da431c6c
  15 +manual/cli.rst 9aecd2905844fbda5cd528afd7fedef693ac0958bcb20e235f1c8e10a1896abe
... ...
libqpdf/qpdf/auto_job_help.hh
... ... @@ -54,8 +54,11 @@ ap.addOptionHelp("--completion-zsh", "completion", "enable zsh completion", R"(O
54 54 ap.addHelpTopic("help", "information about qpdf", R"(Help options provide some information about qpdf itself. Help
55 55 options are only valid as the first and only command-line argument.
56 56 )");
57   -ap.addOptionHelp("--help", "help", "provide help", R"(Display help information. Run qpdf --help for information about
58   -how to get help on various topics.
  57 +ap.addOptionHelp("--help", "help", "provide help", R"(--help[=--option|topic]
  58 +
  59 +--help: provide general information and a list of topics
  60 +--help=--option: provide help on a specific option
  61 +--help=topic: provide help on a topic
59 62 )");
60 63 ap.addOptionHelp("--version", "help", "show qpdf version", R"(Display the version of qpdf.
61 64 )");
... ... @@ -70,7 +73,7 @@ directly related to the operation it is performing.
70 73 ap.addOptionHelp("--password", "general", "specify password", R"(--password=password
71 74  
72 75 Specify a password for an encrypted, password-protected file.
73   -Not needed for encrypted files with no password.
  76 +Not needed for encrypted files without a password.
74 77 )");
75 78 ap.addOptionHelp("--password-file", "general", "read password from a file", R"(--password-file=filename
76 79  
... ... @@ -119,9 +122,9 @@ ap.addOptionHelp("--password-is-hex-key", "advanced-control", "provide hex-encod
119 122 string rather than supplying a password. This is an expert
120 123 option.
121 124 )");
122   -ap.addOptionHelp("--suppress-password-recovery", "advanced-control", "don't try different password encodings", R"(Suppress qpdf's behavior of attempting different encodings of a
123   -password that contains non-ASCII Unicode characters if the first
124   -attempt doesn't succeed.
  125 +ap.addOptionHelp("--suppress-password-recovery", "advanced-control", "don't try different password encodings", R"(Suppress qpdf's usual behavior of attempting different encodings
  126 +of a password that contains non-ASCII Unicode characters if the
  127 +first attempt doesn't succeed.
125 128 )");
126 129 ap.addOptionHelp("--password-mode", "advanced-control", "tweak how qpdf encodes passwords", R"(--password-mode=mode
127 130  
... ... @@ -139,7 +142,7 @@ the structure without changing the content.
139 142 )");
140 143 ap.addOptionHelp("--linearize", "transformation", "linearize (web-optimize) output", R"(Create linearized (web-optimized) output files.
141 144 )");
142   -ap.addOptionHelp("--encrypt", "transformation", "start encryption options", R"(--encrypt user-password owner-password key-length [ options ] --
  145 +ap.addOptionHelp("--encrypt", "transformation", "start encryption options", R"(--encrypt user-password owner-password key-length [options] --
143 146  
144 147 Run qpdf --help=encryption for details.
145 148 )");
... ... @@ -159,12 +162,12 @@ If the file named in --copy-encryption requires a password, use
159 162 this option to supply the password.
160 163 )");
161 164 ap.addOptionHelp("--qdf", "transformation", "enable viewing PDF code in a text editor", R"(Create a PDF file suitable for viewing in a text editor and even
162   -editing. This is to edit the PDF code, not the page contents.
  165 +editing. This is for editing the PDF code, not the page contents.
163 166 All streams that can be uncompressed are uncompressed, and
164 167 content streams are normalized, among other changes. The
165 168 companion tool "fix-qdf" can be used to repair hand-edited QDF
166   -files. QDF is a feature specific to the qpdf tool. There is a
167   -chapter about it in the manual.
  169 +files. QDF is a feature specific to the qpdf tool. Please see
  170 +the "QDF Mode" chapter in the manual.
168 171 )");
169 172 ap.addOptionHelp("--no-original-object-ids", "transformation", "omit original object IDs in qdf", R"(Omit comments in a QDF file indicating the object ID an object
170 173 had in the original file.
... ... @@ -256,8 +259,11 @@ default is 1,024. Use 0 for no minimum.
256 259 )");
257 260 ap.addOptionHelp("--min-version", "transformation", "set minimum PDF version", R"(--min-version=version
258 261  
259   -Force the PDF version of the output to be at least the
260   -specified version.
  262 +Force the PDF version of the output to be at least the specified
  263 +version. The version number format is
  264 +"major.minor[.extension-level]", which sets the version header
  265 +to "major.minor" and the extension level, if specified, to
  266 +"extension-level".
261 267 )");
262 268 ap.addOptionHelp("--force-version", "transformation", "set output PDF version", R"(--force-version=version
263 269  
... ... @@ -281,7 +287,7 @@ from the resulting set, not based on the original page numbers.
281 287 ap.addHelpTopic("modification", "change parts of the PDF", R"(Modification options make systematic changes to certain parts of
282 288 the PDF, causing the PDF to render differently from the original.
283 289 )");
284   -ap.addOptionHelp("--pages", "modification", "begin page selection", R"(--pages file [ --password=password ] [ page-range ] [ ... ] --
  290 +ap.addOptionHelp("--pages", "modification", "begin page selection", R"(--pages file [--password=password] [page-range] [...] --
285 291  
286 292 Run qpdf --help=page-selection for details.
287 293 )");
... ... @@ -312,12 +318,12 @@ File names are generated from the specified output file as follows:
312 318 Page ranges are single page numbers for single-page groups or first-last
313 319 for multi-page groups.
314 320 )");
315   -ap.addOptionHelp("--overlay", "modification", "begin overlay options", R"(--overlay file [ options ] --
  321 +ap.addOptionHelp("--overlay", "modification", "begin overlay options", R"(--overlay file [options] --
316 322  
317 323 Overlay pages from another file on the output.
318 324 Run qpdf --help=overlay-underlay for details.
319 325 )");
320   -ap.addOptionHelp("--underlay", "modification", "begin underlay options", R"(--underlay file [ options ] --
  326 +ap.addOptionHelp("--underlay", "modification", "begin underlay options", R"(--underlay file [options] --
321 327  
322 328 Underlay pages from another file on the output.
323 329 Run qpdf --help=overlay-underlay for details.
... ... @@ -375,7 +381,7 @@ ap.addOptionHelp("--remove-page-labels", "modification", "remove explicit page n
375 381 )");
376 382 ap.addHelpTopic("encryption", "create encrypted files", R"(Create encrypted files. Usage:
377 383  
378   ---encrypt user-password owner-password key-length [ options ] --
  384 +--encrypt user-password owner-password key-length [options] --
379 385  
380 386 Either or both of user-password and owner-password may be empty
381 387 strings. key-length may be 40, 128, or 256. Encryption options are
... ... @@ -523,13 +529,13 @@ should not be used except for compatibility testing.
523 529 )");
524 530 ap.addHelpTopic("page-selection", "select pages from one or more files", R"(Use the --pages option to select pages from multiple files. Usage:
525 531  
526   -qpdf in.pdf --pages input-file [ --password=password ] [ page-range ] \
527   - [ ... ] -- out.pdf
  532 +qpdf in.pdf --pages input-file [--password=password] [page-range] \
  533 + [...] -- out.pdf
528 534  
529 535 Between --pages and the -- that terminates pages option, repeat
530 536 the following:
531 537  
532   -filename [ --password=password ] [ page-range ]
  538 +filename [--password=password] [page-range]
533 539  
534 540 Document-level information, such as outlines, tags, etc., is taken
535 541 from in.pdf and is preserved in out.pdf. You can use --empty in place
... ... @@ -571,10 +577,10 @@ the destination page and may obscure the page. Underlaid pages are
571 577 drawn below the destination page. Usage:
572 578  
573 579 {--overlay | --underlay } file
574   - [ --password=password ]
575   - [ --to=page-range ]
576   - [ --from=[page-range] ]
577   - [ --repeat=page-range ]
  580 + [--password=password]
  581 + [--to=page-range]
  582 + [--from=[page-range]]
  583 + [--repeat=page-range]
578 584 --
579 585  
580 586 Note the use of "--" by itself to terminate overlay/underlay options.
... ...
manual/cli.rst
... ... @@ -84,7 +84,7 @@ Basic Invocation
84 84  
85 85 ::
86 86  
87   - Usage: qpdf infile [ options ] [ outfile ]
  87 + Usage: qpdf infile [options] [outfile]
88 88  
89 89 The :command:`qpdf` command reads the PDF file :samp:`{infile}`,
90 90 applies various transformations or modifications to the file in
... ... @@ -294,14 +294,17 @@ are only valid as the first and only command-line argument.
294 294 Related Options
295 295 ~~~~~~~~~~~~~~~
296 296  
297   -.. qpdf:option:: --help
  297 +.. qpdf:option:: --help[=--option|topic]
298 298  
299 299 .. help: provide help
300 300  
301   - Display help information. Run qpdf --help for information about
302   - how to get help on various topics.
  301 + --help: provide general information and a list of topics
  302 + --help=--option: provide help on a specific option
  303 + --help=topic: provide help on a topic
303 304  
304   - Display command-line invocation help.
  305 + Display command-line invocation help. Use :samp:`--help={--option}`
  306 + for help on a specific option and :samp:`--help={topic}` for help
  307 + on a help topic and also provides a list of available help topics.
305 308  
306 309 .. qpdf:option:: --version
307 310  
... ... @@ -357,7 +360,7 @@ Related Options
357 360 .. help: specify password
358 361  
359 362 Specify a password for an encrypted, password-protected file.
360   - Not needed for encrypted files with no password.
  363 + Not needed for encrypted files without a password.
361 364  
362 365 Specifies a password for accessing encrypted, password-protected
363 366 files. To read the password from a file or standard input, you can
... ... @@ -385,7 +388,8 @@ Related Options
385 388 password for accessing encrypted files. :samp:`{filename}` may be
386 389 ``-`` to read the password from standard input, but if you do that
387 390 the password is echoed and there is no prompt, so use ``-`` with
388   - caution.
  391 + caution. Note that leading and trailing spaces are not stripped
  392 + from the password.
389 393  
390 394 .. qpdf:option:: --verbose
391 395  
... ... @@ -407,9 +411,9 @@ Related Options
407 411 Indicate progress when writing files.
408 412  
409 413 Indicate progress while writing output files. Progress indication
410   - does not start until writing starts, so if complicated
411   - transformations are being applied before the write process begins,
412   - there may be a delay before progress indicators are seen.
  414 + does not start until writing starts, so there may be a delay before
  415 + progress indicators are seen if complicated transformations are
  416 + being applied before the write process begins.
413 417  
414 418 .. qpdf:option:: --no-warn
415 419  
... ... @@ -435,23 +439,25 @@ Related Options
435 439 information, such as the page contents. Does not use the file's
436 440 name or attributes or the current time.
437 441  
438   - Generate of a secure, random document ID using deterministic
439   - values. This prevents use of timestamp and output file name
440   - information in the ID generation. Instead, at some slight
441   - additional runtime cost, the ID field is generated to include a
442   - digest of the significant parts of the content of the output PDF
443   - file. This means that a given qpdf operation should generate the
444   - same ID each time it is run, which can be useful when caching
445   - results or for generation of some test data. Use of this flag is
446   - not compatible with creation of encrypted files.
447   -
448   - Note that there is *no guarantee* that different versions of qpdf
449   - will generate the same deterministic ID given the same generation
450   - code and input. While care is taken to avoid gratuitous changes,
451   - new versions of qpdf may include changes that affect the output.
452   - This option can be useful for testing. See also
  442 + Generate a secure, random document ID using deterministic values.
  443 + This prevents use of timestamp and output file name information in
  444 + the ID generation. Instead, at some slight additional runtime cost,
  445 + the ID field is generated to include a digest of the significant
  446 + parts of the content of the output PDF file. This means that a
  447 + given qpdf operation should generate the same ID each time it is
  448 + run, which can be useful when caching results or for generation of
  449 + some test data. Use of this flag is not compatible with creation of
  450 + encrypted files. This option can be useful for testing. See also
453 451 :qpdf:ref:`--static-id`.
454 452  
  453 + While qpdf will generate the same deterministic ID given the same
  454 + output PDF, there is no guarantee that different versions of qpdf
  455 + will generate exactly the same PDF output for the same input and
  456 + options. While care is taken to avoid gratuitous changes to qpdf's
  457 + PDF generation, new versions of qpdf may include changes or bug
  458 + fixes that cause slightly different PDF code to be generated. Such
  459 + changes are noted in the release notes.
  460 +
455 461 .. qpdf:option:: --allow-weak-crypto
456 462  
457 463 .. help: allow insecure cryptographic algorithms
... ... @@ -561,9 +567,9 @@ Related Options
561 567  
562 568 .. help: don't try different password encodings
563 569  
564   - Suppress qpdf's behavior of attempting different encodings of a
565   - password that contains non-ASCII Unicode characters if the first
566   - attempt doesn't succeed.
  570 + Suppress qpdf's usual behavior of attempting different encodings
  571 + of a password that contains non-ASCII Unicode characters if the
  572 + first attempt doesn't succeed.
567 573  
568 574 Ordinarily, qpdf attempts to automatically compensate for passwords
569 575 encoded with the wrong character encoding. This option suppresses
... ... @@ -666,8 +672,8 @@ The options discussed in this section tell qpdf to apply
666 672 transformations that change the structure of a PDF file without
667 673 changing its content. Examples include creating linearized
668 674 (web-optimized) files, adding or removing encryption, restructuring
669   -files for older viewers, and rewriting files for human inspection,
670   -among others. See also :ref:`modification-options`.
  675 +files for older viewers, and rewriting files for human inspection. See
  676 +also :ref:`modification-options`.
671 677  
672 678 Related Options
673 679 ~~~~~~~~~~~~~~~
... ... @@ -685,17 +691,14 @@ Related Options
685 691 important cross-reference information typically appears at the end
686 692 of the file.
687 693  
688   -.. qpdf:option:: --encrypt user-password owner-password key-length [ options ] --
  694 +.. qpdf:option:: --encrypt user-password owner-password key-length [options] --
689 695  
690 696 .. help: start encryption options
691 697  
692 698 Run qpdf --help=encryption for details.
693 699  
694 700 This flag starts encryption options, used to create encrypted
695   - files.
696   -
697   - Please see :ref:`encryption-options` for details about creating
698   - encrypted files.
  701 + files. Please see :ref:`encryption-options` for details.
699 702  
700 703 .. qpdf:option:: --decrypt
701 704  
... ... @@ -720,19 +723,19 @@ Related Options
720 723 preserving the input file's encryption. Use --encryption-file-password
721 724 to specify the encryption file's password.
722 725  
723   - Copy encryption parameters, including the user password, the owner
724   - password, and all security restrictions, from the specified file
725   - instead of preserving encryption details from the input file. This
726   - works even if only one of the user password or owner password is
727   - known. If the encryption file requires a password, use the
728   - :qpdf:ref:`--encryption-file-password` option to set it. Note that
729   - copying the encryption parameters from a file also copies the first
730   - half of ``/ID`` from the file since this is part of the encryption
731   - parameters. This option can be useful if you need to decrypt a file
732   - to make manual changes to it or to change it outside of qpdf, and
733   - then want to restore the original encryption on the file
734   - without having to manual specify all the individual settings. See
735   - also :qpdf:ref:`--decrypt`.
  726 + Copy all encryption parameters, including the user password, the
  727 + owner password, and all security restrictions, from the specified
  728 + file instead of preserving the encryption details from the input
  729 + file. This works even if only one of the user password or owner
  730 + password is known. If the encryption file requires a password, use
  731 + the :qpdf:ref:`--encryption-file-password` option to set it. Note
  732 + that copying the encryption parameters from a file also copies the
  733 + first half of ``/ID`` from the file since this is part of the
  734 + encryption parameters. This option can be useful if you need to
  735 + decrypt a file to make manual changes to it or to change it outside
  736 + of qpdf, and then want to restore the original encryption on the
  737 + file without having to manual specify all the individual settings.
  738 + See also :qpdf:ref:`--decrypt`.
736 739  
737 740 .. qpdf:option:: --encryption-file-password=password
738 741  
... ... @@ -752,12 +755,12 @@ Related Options
752 755 .. help: enable viewing PDF code in a text editor
753 756  
754 757 Create a PDF file suitable for viewing in a text editor and even
755   - editing. This is to edit the PDF code, not the page contents.
  758 + editing. This is for editing the PDF code, not the page contents.
756 759 All streams that can be uncompressed are uncompressed, and
757 760 content streams are normalized, among other changes. The
758 761 companion tool "fix-qdf" can be used to repair hand-edited QDF
759   - files. QDF is a feature specific to the qpdf tool. There is a
760   - chapter about it in the manual.
  762 + files. QDF is a feature specific to the qpdf tool. Please see
  763 + the "QDF Mode" chapter in the manual.
761 764  
762 765 Create a PDF file suitable for viewing and editing in a text
763 766 editor. This is to edit the PDF code, not the page contents. To
... ... @@ -766,13 +769,13 @@ Related Options
766 769 and content streams are normalized, among other changes. The
767 770 companion tool :command:`fix-qdf` can be used to repair hand-edited
768 771 QDF files. QDF is a feature specific to the qpdf tool. For
769   - additional information about QDF mode, see :ref:`qdf`. Note that
  772 + additional information, see :ref:`qdf`. Note that
770 773 :qpdf:ref:`--linearize` disables QDF mode.
771 774  
772 775 QDF mode has full support for object streams, but sometimes it's
773 776 easier to locate a specific object if object streams are disabled.
774 777 When trying to understand some PDF construct by inspecting an
775   - existing file, it can often be useful to combine :samp:`--qdf` with
  778 + existing file, it can be useful to combine :samp:`--qdf` with
776 779 :samp:`--object-streams=disable`.
777 780  
778 781 This flag changes some of the defaults of other options: stream
... ... @@ -788,10 +791,10 @@ Related Options
788 791  
789 792 When normalizing content, if qpdf runs into any lexical errors, it
790 793 will print a warning indicating that content may be damaged. If you
791   - want to create QDF files without content normalization, can you run
792   - with :samp:`--qdf --normalize-content=n`. You can also create a
793   - non-QDF file with uncompressed streams using
794   - :samp:`--stream-data=uncompress`. These will both uncompress all
  794 + want to create QDF files without content normalization, specify
  795 + :samp:`--qdf --normalize-content=n`. You can also create a non-QDF
  796 + file with uncompressed streams using
  797 + :samp:`--stream-data=uncompress`. Either option will uncompress all
795 798 the streams but will not attempt to normalize content. Please note
796 799 that if you are using content normalization or QDF mode for the
797 800 purpose of manually inspecting files, you don't have to care about
... ... @@ -872,15 +875,15 @@ Related Options
872 875 These are left untouched regardless of the option. Future versions
873 876 of qpdf may support additional filters.
874 877  
875   - Because the default value is ``generalized``, by default, when a stream
876   - is encoded using non-lossy filters that qpdf understands and is not
877   - already compressed using a good compression scheme, qpdf will
878   - uncompress the stream. If ``--compress-streams=y`` is also in
879   - effect, which is the default (see :qpdf:ref:`--compress-streams`),
880   - the overall effect is that qpdf will recompress streams with
881   - generalized filters using flate compression, effectively
882   - eliminating LZW and ASCII-based filters. This is usually desirable
883   - behavior but can be disabled with ``--decode-level=none``.
  878 + Because the default value is ``generalized``, qpdf's default
  879 + behavior is to uncompress any stream that is encoded using
  880 + non-lossy filters that qpdf understands. If
  881 + ``--compress-streams=y`` is also in effect, which is the default
  882 + (see :qpdf:ref:`--compress-streams`), the overall effect is that
  883 + qpdf will recompress streams with generalized filters using flate
  884 + compression, effectively eliminating LZW and ASCII-based filters.
  885 + This is usually desirable behavior but can be disabled with
  886 + ``--decode-level=none``.
884 887  
885 888 As a special case, streams already compressed with ``/FlateDecode``
886 889 are not uncompressed and recompressed. You can change this behavior
... ... @@ -956,7 +959,8 @@ Related Options
956 959 already compressed streams, you should also specify
957 960 :qpdf:ref:`--recompress-flate`. If your goal is to shrink the size
958 961 of PDF files, you should also use
959   - :samp:`--object-streams=generate`.
  962 + :samp:`--object-streams=generate`. If you omit this option, qpdf
  963 + defers to the compression library's default behavior.
960 964  
961 965 .. qpdf:option:: --normalize-content=[yn]
962 966  
... ... @@ -1002,10 +1006,10 @@ Related Options
1002 1006 - create object streams, and compress objects when possible
1003 1007  
1004 1008 Object streams are PDF streams that contain other objects. Putting
1005   - objects in object streams allows the PDF objects themselves to be
  1009 + objects into object streams allows the PDF objects themselves to be
1006 1010 compressed, which can result in much smaller PDF files. Combining
1007 1011 this option with :qpdf:ref:`--compression-level` and
1008   - :qpdf:ref:`--recompress-flate` can often result in creation of
  1012 + :qpdf:ref:`--recompress-flate` can often result in the creation of
1009 1013 smaller PDF files.
1010 1014  
1011 1015 Object streams, also known as compressed objects, were introduced
... ... @@ -1014,7 +1018,7 @@ Related Options
1014 1018 used to transform files with object streams into files without object
1015 1019 streams or vice versa.
1016 1020  
1017   - In :samp:`preserve` mode, the relationship to objects and the
  1021 + In :samp:`preserve` mode, the relationship between objects and the
1018 1022 streams that contain them is preserved from the original file. If
1019 1023 the file has no object streams, qpdf will not add any. In
1020 1024 :samp:`disable` mode, all objects are written as regular,
... ... @@ -1040,7 +1044,7 @@ Related Options
1040 1044 objects.
1041 1045  
1042 1046 This flag is ignored for linearized files and has the effect of
1043   - causing objects in the new file to be written in order by object ID
  1047 + causing objects in the new file to be written ordered by object ID
1044 1048 from the original file. This does not mean that object numbers will
1045 1049 be the same since qpdf may create stream lengths as direct or
1046 1050 indirect differently from the original file, and the original file
... ... @@ -1157,8 +1161,11 @@ Related Options
1157 1161  
1158 1162 .. help: set minimum PDF version
1159 1163  
1160   - Force the PDF version of the output to be at least the
1161   - specified version.
  1164 + Force the PDF version of the output to be at least the specified
  1165 + version. The version number format is
  1166 + "major.minor[.extension-level]", which sets the version header
  1167 + to "major.minor" and the extension level, if specified, to
  1168 + "extension-level".
1162 1169  
1163 1170 Force the PDF version of the output file to be at least
1164 1171 :samp:`{version}`. In other words, if the input file has a lower
... ... @@ -1169,12 +1176,13 @@ Related Options
1169 1176 when adding features that require newer PDF readers.
1170 1177  
1171 1178 The version number may be expressed in the form
1172   - :samp:`{major.minor.extension-level}`, in which case the version is
1173   - interpreted as :samp:`{major.minor}` at extension level
1174   - :samp:`{extension-level}`. For example, version ``1.7.8``
1175   - represents version 1.7 at extension level 8. Note that minimal
1176   - syntax checking is done on the command line. :command:`qpdf` does
1177   - not check whether the specified version is actually required.
  1179 + :samp:`{major}.{minor}[.{extension-level}]`. If
  1180 + :samp:`.{extension-level}`, is given, version is interpreted as
  1181 + :samp:`{major.minor}` at extension level :samp:`{extension-level}`.
  1182 + For example, version ``1.7.8`` represents version 1.7 at extension
  1183 + level 8. Note that minimal syntax checking is done on the command
  1184 + line. :command:`qpdf` does not check whether the specified version
  1185 + is actually required.
1178 1186  
1179 1187 .. qpdf:option:: --force-version=version
1180 1188  
... ... @@ -1192,22 +1200,22 @@ Related Options
1192 1200 version to be lower than that of the input file will cause qpdf to
1193 1201 disable certain features of the document. Specifically, 256-bit
1194 1202 keys are disabled if the version is less than 1.7 with extension
1195   - level 8 (except R5 is disabled if less than 1.7 with extension
1196   - level 3), AES encryption is disabled if the version is less than
1197   - 1.6, cleartext metadata and object streams are disabled if less
1198   - than 1.5, 128-bit encryption keys are disabled if less than 1.4,
1199   - and all encryption is disabled if less than 1.3. Even with these
1200   - precautions, qpdf won't be able to do things like eliminate use of
1201   - newer image compression schemes, transparency groups, or other
1202   - features that may have been added in more recent versions of PDF.
  1203 + level 8 (except the deprecated, unsupported "R5" format is allowed
  1204 + with extension levels 3 through 7), AES encryption is disabled if
  1205 + the version is less than 1.6, cleartext metadata and object streams
  1206 + are disabled if less than 1.5, 128-bit encryption keys are disabled
  1207 + if less than 1.4, and all encryption is disabled if less than 1.3.
  1208 + Even with these precautions, qpdf won't be able to do things like
  1209 + eliminate use of newer image compression schemes, transparency
  1210 + groups, or other features that may have been added in more recent
  1211 + versions of PDF.
1203 1212  
1204 1213 As a general rule, with the exception of big structural things like
1205 1214 the use of object streams or AES encryption, PDF viewers are
1206   - supposed to ignore features in files that they don't support from
1207   - newer versions. This means that forcing the version to a lower
1208   - version may make it possible to open your PDF file with an older
1209   - version, though bear in mind that some of the original document's
1210   - functionality may be lost.
  1215 + supposed to ignore features they don't support. This means that
  1216 + forcing the version to a lower version may make it possible to open
  1217 + your PDF file with an older version, though bear in mind that some
  1218 + of the original document's functionality may be lost.
1211 1219  
1212 1220 .. _page-ranges:
1213 1221  
... ... @@ -1310,7 +1318,7 @@ PDF, causing the PDF to render differently from the original. See also
1310 1318 Related Options
1311 1319 ~~~~~~~~~~~~~~~
1312 1320  
1313   -.. qpdf:option:: --pages file [ --password=password ] [ page-range ] [ ... ] --
  1321 +.. qpdf:option:: --pages file [--password=password] [page-range] [...] --
1314 1322  
1315 1323 .. help: begin page selection
1316 1324  
... ... @@ -1405,7 +1413,7 @@ Related Options
1405 1413 if you don't require the document-level data. A future version of
1406 1414 qpdf may support preservation of some document-level information.
1407 1415  
1408   -.. qpdf:option:: --overlay file [ options ] --
  1416 +.. qpdf:option:: --overlay file [options] --
1409 1417  
1410 1418 .. help: begin overlay options
1411 1419  
... ... @@ -1416,7 +1424,7 @@ Related Options
1416 1424  
1417 1425 See :ref:`overlay-underlay` for details.
1418 1426  
1419   -.. qpdf:option:: --underlay file [ options ] --
  1427 +.. qpdf:option:: --underlay file [options] --
1420 1428  
1421 1429 .. help: begin underlay options
1422 1430  
... ... @@ -1674,7 +1682,7 @@ Encryption
1674 1682  
1675 1683 Create encrypted files. Usage:
1676 1684  
1677   - --encrypt user-password owner-password key-length [ options ] --
  1685 + --encrypt user-password owner-password key-length [options] --
1678 1686  
1679 1687 Either or both of user-password and owner-password may be empty
1680 1688 strings. key-length may be 40, 128, or 256. Encryption options are
... ... @@ -1741,7 +1749,7 @@ To create an encrypted file, use
1741 1749  
1742 1750 ::
1743 1751  
1744   - --encrypt user-password owner-password key-length [ options ] --
  1752 + --encrypt user-password owner-password key-length [options] --
1745 1753  
1746 1754 Either or both of :samp:`{user-password}` and :samp:`{owner-password}`
1747 1755 may be empty strings. :samp:`{key-length}` may be ``40``, ``128``, or
... ... @@ -1780,7 +1788,6 @@ encryption from the file entirely.
1780 1788 Here is a summary of encryption options. Details are provided in the
1781 1789 help for each option.
1782 1790  
1783   -
1784 1791 .. list-table:: Options for 40-bit Encryption Only
1785 1792 :widths: 30 70
1786 1793 :header-rows: 0
... ... @@ -2154,13 +2161,13 @@ Page Selection
2154 2161  
2155 2162 Use the --pages option to select pages from multiple files. Usage:
2156 2163  
2157   - qpdf in.pdf --pages input-file [ --password=password ] [ page-range ] \
2158   - [ ... ] -- out.pdf
  2164 + qpdf in.pdf --pages input-file [--password=password] [page-range] \
  2165 + [...] -- out.pdf
2159 2166  
2160 2167 Between --pages and the -- that terminates pages option, repeat
2161 2168 the following:
2162 2169  
2163   - filename [ --password=password ] [ page-range ]
  2170 + filename [--password=password] [page-range]
2164 2171  
2165 2172 Document-level information, such as outlines, tags, etc., is taken
2166 2173 from in.pdf and is preserved in out.pdf. You can use --empty in place
... ... @@ -2200,12 +2207,12 @@ Page Selection
2200 2207 split and merge PDF files by selecting pages from one or more input
2201 2208 files.
2202 2209  
2203   -Usage: :samp:`qpdf {in.pdf} --pages input-file [ --password={password} ] [ {page-range} ] [ ... ] -- {out.pdf}`
  2210 +Usage: :samp:`qpdf {in.pdf} --pages input-file [--password={password}] [{page-range}] [...] -- {out.pdf}`
2204 2211  
2205 2212 Between ``--pages`` and the ``--`` that terminates pages option,
2206 2213 repeat the following:
2207 2214  
2208   -:samp:`{filename} [ --password={password} ] [ {page-range} ]`
  2215 +:samp:`{filename} [--password={password}] [{page-range}]`
2209 2216  
2210 2217 Notes:
2211 2218 - The password option is needed only for password-protected files.
... ... @@ -2424,10 +2431,10 @@ Overlay and Underlay
2424 2431 drawn below the destination page. Usage:
2425 2432  
2426 2433 {--overlay | --underlay } file
2427   - [ --password=password ]
2428   - [ --to=page-range ]
2429   - [ --from=[page-range] ]
2430   - [ --repeat=page-range ]
  2434 + [--password=password]
  2435 + [--to=page-range]
  2436 + [--from=[page-range]]
  2437 + [--repeat=page-range]
2431 2438 --
2432 2439  
2433 2440 Note the use of "--" by itself to terminate overlay/underlay options.
... ... @@ -2447,7 +2454,7 @@ as follows:
2447 2454  
2448 2455 ::
2449 2456  
2450   - { --overlay | --underlay } file [ options ] --
  2457 + { --overlay | --underlay } file [options] --
2451 2458  
2452 2459 Overlay and underlay options are processed late, so they can be
2453 2460 combined with other options like merging and will apply to the final
... ...
manual/qdf.rst
... ... @@ -3,6 +3,8 @@
3 3 QDF Mode
4 4 ========
5 5  
  6 +.. Help text for --qdf refers to the name of this chapter.
  7 +
6 8 In QDF mode, qpdf creates PDF files in what we call *QDF
7 9 form*. A PDF file in QDF form, sometimes called a QDF
8 10 file, is a completely valid PDF file that has ``%QDF-1.0`` as its third
... ...