diff --git a/manual/cli.rst b/manual/cli.rst index e8a07f5f..93dcf454 100644 --- a/manual/cli.rst +++ b/manual/cli.rst @@ -1,4 +1,4 @@ -.. _ref.using: +.. _using: Running QPDF ============ @@ -6,7 +6,7 @@ Running QPDF This chapter describes how to run the qpdf program from the command line. -.. _ref.invocation: +.. _invocation: Basic Invocation ---------------- @@ -26,7 +26,7 @@ place of :samp:`infilename`, the parameter :samp:`--empty` may be specified. This causes qpdf to use a dummy input file that contains zero pages. The only normal use case for using :samp:`--empty` would be if you were -going to add pages from another source, as discussed in :ref:`ref.page-selection`. +going to add pages from another source, as discussed in :ref:`page-selection`. If :samp:`@filename` appears as a word anywhere in the 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 Most options require an output file, but some testing or inspection commands do not. These are specifically noted. -.. _ref.exit-status: +.. _exit-status: Exit Status ~~~~~~~~~~~ @@ -80,7 +80,7 @@ Note that :command:`qpdf` never exists with status ``1``. If you get an exit status of ``1``, it was something else, like the shell not being able to find or execute :command:`qpdf`. -.. _ref.shell-completion: +.. _shell-completion: Shell Completion ---------------- @@ -100,7 +100,7 @@ to use completion with copy of qpdf that is built from source. You can specify a full path to the qpdf you want to use for completion in the ``QPDF_EXECUTABLE`` environment variable. -.. _ref.basic-options: +.. _basic-options: Basic Options ------------- @@ -119,7 +119,7 @@ needed transformations. :samp:`--show-crypto` Show a list of available crypto providers, each on a line by itself. - The default provider is always listed first. See :ref:`ref.crypto` for more information about crypto + The default provider is always listed first. See :ref:`crypto` for more information about crypto providers. :samp:`--completion-bash` @@ -225,10 +225,10 @@ needed transformations. Starting with version 10.4, qpdf issues warnings when requested to create files using RC4 encryption. This option suppresses those warnings. In future versions of qpdf, qpdf will refuse to create - files with weak cryptography when this flag is not given. See :ref:`ref.weak-crypto` for additional details. + files with weak cryptography when this flag is not given. See :ref:`weak-crypto` for additional details. :samp:`--encrypt options --` - Causes generation an encrypted output file. Please see :ref:`ref.encryption-options` for details on how to specify + Causes generation an encrypted output file. Please see :ref:`encryption-options` for details on how to specify encryption parameters. :samp:`--decrypt` @@ -260,7 +260,7 @@ needed transformations. Ordinarily, qpdf attempts to automatically compensate for passwords specified in the wrong character encoding. This option suppresses that behavior. Under normal conditions, there are no reasons to use - this option. See :ref:`ref.unicode-passwords` for a + this option. See :ref:`unicode-passwords` for a discussion :samp:`--password-mode={mode}` @@ -271,7 +271,7 @@ needed transformations. :samp:`hex-bytes` mode also applies to passwords specified for reading files. For additional discussion of the supported password modes and when you might want to use them, see - :ref:`ref.unicode-passwords`. The following modes + :ref:`unicode-passwords`. The following modes are supported: - :samp:`auto`: Automatically determine whether the @@ -311,7 +311,7 @@ needed transformations. :samp:`--rotate=[+|-]angle[:page-range]` Apply rotation to specified pages. The :samp:`page-range` portion of the option value has - the same format as page ranges in :ref:`ref.page-selection`. If the page range is omitted, the + the same format as page ranges in :ref:`page-selection`. If the page range is omitted, the rotation is applied to all pages. The :samp:`angle` portion of the parameter may be either 0, 90, 180, or 270. If preceded by :samp:`+` or :samp:`-`, @@ -358,14 +358,14 @@ needed transformations. :samp:`--keep-files-open` for details. :samp:`--pages options --` - Select specific pages from one or more input files. See :ref:`ref.page-selection` for details on how to do + Select specific pages from one or more input files. See :ref:`page-selection` for details on how to do page selection (splitting and merging). :samp:`--collate={n}` When specified, collate rather than concatenate pages from files specified with :samp:`--pages`. With a numeric argument, collate in groups of :samp:`{n}`. - The default is 1. See :ref:`ref.page-selection` for additional details. + The default is 1. See :ref:`page-selection` for additional details. :samp:`--flatten-rotation` For each page that is rotated using the ``/Rotate`` key in the page's @@ -418,11 +418,11 @@ needed transformations. require the global data. :samp:`--overlay options --` - Overlay pages from another file onto the output pages. See :ref:`ref.overlay-underlay` for details on + Overlay pages from another file onto the output pages. See :ref:`overlay-underlay` for details on overlay/underlay. :samp:`--underlay options --` - Overlay pages from another file onto the output pages. See :ref:`ref.overlay-underlay` for details on + Overlay pages from another file onto the output pages. See :ref:`overlay-underlay` for details on overlay/underlay. 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 fall outside of 7-bit US-ASCII, qpdf left the burden of supplying properly encoded encryption and decryption passwords to the user. Starting in qpdf 8.4.0, qpdf does this automatically in most cases. For -an in-depth discussion, please see :ref:`ref.unicode-passwords`. Previous versions of this manual +an in-depth discussion, please see :ref:`unicode-passwords`. Previous versions of this manual described workarounds using the :command:`iconv` command. Such workarounds are no longer required or recommended with qpdf 8.4.0. However, for backward compatibility, qpdf attempts to detect those workarounds and do the right thing in most cases. -.. _ref.encryption-options: +.. _encryption-options: Encryption Options ------------------ @@ -610,7 +610,7 @@ with the following exceptions: The default for each permission option is to be fully permissive. -.. _ref.page-selection: +.. _page-selection: Page Selection Options ---------------------- @@ -814,7 +814,7 @@ would create a file with two copies of the first page of the input, and the two copies would share any objects in common. This includes fonts, images, and anything else the page references. -.. _ref.overlay-underlay: +.. _overlay-underlay: Overlay and Underlay Options ---------------------------- @@ -849,7 +849,7 @@ between the :samp:`--overlay` or overlay/underlay file is encrypted. - :samp:`--to=page-range`: a range of pages in the same - form at described in :ref:`ref.page-selection` + form at described in :ref:`page-selection` indicates which pages in the output should have the overlay/underlay applied. If not specified, overlay/underlay are applied to all pages. @@ -880,7 +880,7 @@ Here are some examples. underlay page 2 of :file:`footer.pdf` on all even output pages. -.. _ref.attachments: +.. _attachments: Embedded Files/Attachments Options ---------------------------------- @@ -975,7 +975,7 @@ timezone offset in the form :samp:`{-hh'mm'}` or :samp:`{+hh'mm'}`. Examples: ``D:20210207161528-05'00'``, ``D:20210207211528Z``. -.. _ref.advanced-parsing: +.. _advanced-parsing: Advanced Parsing Options ------------------------ @@ -1011,7 +1011,7 @@ this feature is if you are testing creation of hybrid PDF files and wish to see how a PDF consumer that doesn't understand object and cross-reference streams would interpret such a file. -.. _ref.advanced-transformation: +.. _advanced-transformation: Advanced Transformation Options ------------------------------- @@ -1097,7 +1097,7 @@ following options are available: :samp:`--normalize-content=[yn]` Enables or disables normalization of content streams. Content - normalization is enabled by default in QDF mode. Please see :ref:`ref.qdf` for additional discussion of QDF mode. + normalization is enabled by default in QDF mode. Please see :ref:`qdf` for additional discussion of QDF mode. :samp:`--object-streams={mode}` Controls handling of object streams. The value of @@ -1304,7 +1304,7 @@ following options are available: Remove page labels from the output file. :samp:`--qdf` - Turns on QDF mode. For additional information on QDF, please see :ref:`ref.qdf`. Note that :samp:`--linearize` + Turns on QDF mode. For additional information on QDF, please see :ref:`qdf`. Note that :samp:`--linearize` disables QDF mode. :samp:`--min-version={version}` @@ -1413,9 +1413,9 @@ documents are interspersed with comments that make it easier for the user to find things and also make it possible for :command:`fix-qdf` to work properly. QDF mode is intended for people, mostly developers, who wish to inspect or modify PDF files -in a text editor. For details, please see :ref:`ref.qdf`. +in a text editor. For details, please see :ref:`qdf`. -.. _ref.testing-options: +.. _testing-options: Testing, Inspection, and Debugging Options ------------------------------------------ @@ -1519,7 +1519,7 @@ given. The following options are available: :samp:`--json` Generate a JSON representation of the file. This is described in - depth in :ref:`ref.json` + depth in :ref:`json` :samp:`--json-help` 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. This attempt will be made even if it is not a page content stream, in which case it will produce unusable results. -.. _ref.unicode-passwords: +.. _unicode-passwords: Unicode Passwords ----------------- diff --git a/manual/design.rst b/manual/design.rst index 73122943..2c1e66d9 100644 --- a/manual/design.rst +++ b/manual/design.rst @@ -1,9 +1,9 @@ -.. _ref.design: +.. _design: Design and Library Notes ======================== -.. _ref.design.intro: +.. _design.intro: Introduction ------------ @@ -33,7 +33,7 @@ This is by design as there seems to be a shortage of PDF validation tools out there. This was, in fact, one of the major motivations behind the initial creation of qpdf. -.. _ref.design-goals: +.. _design-goals: Design Goals ------------ @@ -118,9 +118,9 @@ full details, please see the header files :file:`QPDF.hh` and :file:`QPDFObjectHandle.hh`. There are also some additional helper classes that provide higher level API functions for -certain document constructions. These are discussed in :ref:`ref.helper-classes`. +certain document constructions. These are discussed in :ref:`helper-classes`. -.. _ref.helper-classes: +.. _helper-classes: Helper Classes -------------- @@ -219,7 +219,7 @@ remain in those classes even as alternatives are provided in helper classes. Going forward, new higher level interfaces will be provided using helper classes. -.. _ref.implementation-notes: +.. _implementation-notes: Implementation Notes -------------------- @@ -321,7 +321,7 @@ file. As the client continues to request objects, the same process is followed for each new requested object. -.. _ref.casting: +.. _casting: Casting Policy -------------- @@ -395,7 +395,7 @@ prevent this from being done. There are places in the code where adequate testing to assert that it is safe and will remain safe in qpdf's code. -.. _ref.encryption: +.. _encryption: Encryption ---------- @@ -467,7 +467,7 @@ created, even if the results are not useful to some readers. One use case for this would be for testing a PDF reader to ensure that it handles odd configurations of input files. -.. _ref.random-numbers: +.. _random-numbers: Random Number Generation ------------------------ @@ -484,7 +484,7 @@ details on how to do this, please refer to the top-level README.md file in the source distribution and to comments in :file:`QUtil.hh`. -.. _ref.adding-and-remove-pages: +.. _adding-and-remove-pages: Adding and Removing Pages ------------------------- @@ -497,7 +497,7 @@ individual pages and manipulation of the ``/Pages`` tree itself. For details, see ``addPage`` and surrounding methods in :file:`QPDF.hh`. -.. _ref.reserved-objects: +.. _reserved-objects: Reserving Object Numbers ------------------------ @@ -520,11 +520,11 @@ construct the references. When finished, you can call ``QPDF::replaceReserved`` to replace the reserved objects with the real ones. This functionality will never be needed by most applications, but it is used internally by QPDF when copying objects from other PDF files, -as discussed in :ref:`ref.foreign-objects`. For an example of how to use reserved +as discussed in :ref:`foreign-objects`. For an example of how to use reserved objects, search for ``newReserved`` in :file:`test_driver.cc` in qpdf's sources. -.. _ref.foreign-objects: +.. _foreign-objects: Copying Objects From Other PDF Files ------------------------------------ @@ -560,7 +560,7 @@ source ``QPDF`` object must remain valid until you have finished with the destination object. This is because the original object is still used to retrieve any referenced stream data from the copied object. -.. _ref.rewriting: +.. _rewriting: Writing PDF Files ----------------- @@ -568,9 +568,9 @@ Writing PDF Files The qpdf library supports file writing of ``QPDF`` objects to PDF files through the ``QPDFWriter`` class. The ``QPDFWriter`` class has two writing modes: one for non-linearized files, and one for linearized -files. See :ref:`ref.linearization` for a description of +files. See :ref:`linearization` for a description of linearization is implemented. This section describes how we write -non-linearized files including the creation of QDF files (see :ref:`ref.qdf`. +non-linearized files including the creation of QDF files (see :ref:`qdf`. This outline was written prior to implementation and is not exactly 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 trailer dictionary with appropriately computed /ID (see spec, 8.3, File Identifiers), the cross reference table offset, and ``%%EOF``. -.. _ref.filtered-streams: +.. _filtered-streams: Filtered Streams ---------------- @@ -670,7 +670,7 @@ should write to whatever type of output is required. The ``QPDF`` class has an interface to write raw or filtered stream contents to a given pipeline. -.. _ref.object-accessors: +.. _object-accessors: Object Accessor Methods ----------------------- diff --git a/manual/installation.rst b/manual/installation.rst index d7989e66..568c2e20 100644 --- a/manual/installation.rst +++ b/manual/installation.rst @@ -1,4 +1,4 @@ -.. _ref.installing: +.. _installing: Building and Installing QPDF ============================ @@ -7,7 +7,7 @@ This chapter describes how to build and install qpdf. Please see also the :file:`README.md` and :file:`INSTALL` files in the source distribution. -.. _ref.prerequisites: +.. _prerequisites: System Requirements ------------------- @@ -68,7 +68,7 @@ documentation, you need ``pdflatex``, ``latexmk``, and a fairly complete LaTeX installation. Detailed requirements can be found in the Sphinx documentation. -.. _ref.building: +.. _building: Build Instructions ------------------ @@ -112,7 +112,7 @@ hand-crafted non-recursive Makefile that requires gnu make. If you're really interested, please read the comments in the top-level :file:`Makefile`. -.. _ref.crypto: +.. _crypto: Crypto Providers ---------------- @@ -131,7 +131,7 @@ Additional implementations may be added if needed. It is also possible for a developer to provide their own implementation without modifying the qpdf library. -.. _ref.crypto.build: +.. _crypto.build: Build Support For Crypto Providers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -192,7 +192,7 @@ build, and you can ignore :file:`libqpdf/build.mk` to get the list of source files you need to build. -.. _ref.crypto.runtime: +.. _crypto.runtime: Runtime Crypto Provider Selection ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -211,7 +211,7 @@ to compare behavior of two different crypto providers while testing performance or reproducing a bug. It could also be useful for people who are implementing their own crypto providers. -.. _ref.crypto.develop: +.. _crypto.develop: Crypto Provider Information for Developers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -224,7 +224,7 @@ provider, you have to create a class derived from ``QPDFCryptoImpl`` and register it with ``QPDFCryptoProvider``. For additional information, see comments in :file:`include/qpdf/QPDFCryptoImpl.hh`. -.. _ref.crypto.design: +.. _crypto.design: Crypto Provider Design Notes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -298,7 +298,7 @@ Implementing the registration functions and internal storage of registered providers was also easier using C++-11's functional interfaces, which was another reason to require C++-11 at this time. -.. _ref.packaging: +.. _packaging: Notes for Packagers ------------------- @@ -311,7 +311,7 @@ some things you may want to keep in mind: However, qpdf still has a build-time dependency on perl. - Make sure you are getting the intended behavior with regard to crypto - providers. Read :ref:`ref.crypto.build` for details. + providers. Read :ref:`crypto.build` for details. - Passing :samp:`--enable-show-failed-test-output` to :command:`./configure` will cause any failed test diff --git a/manual/json.rst b/manual/json.rst index 660486ef..39bf9445 100644 --- a/manual/json.rst +++ b/manual/json.rst @@ -1,9 +1,9 @@ -.. _ref.json: +.. _json: QPDF JSON ========= -.. _ref.json-overview: +.. _json-overview: Overview -------- @@ -18,7 +18,7 @@ files programmatically from the command-line in languages that can't call or link with the qpdf library directly. Note that stream data can be extracted from PDF files using other qpdf command-line options. -.. _ref.json-guarantees: +.. _json-guarantees: JSON Guarantees --------------- diff --git a/manual/library.rst b/manual/library.rst index faaffa21..ef63a2bb 100644 --- a/manual/library.rst +++ b/manual/library.rst @@ -1,9 +1,9 @@ -.. _ref.using-library: +.. _using-library: Using the QPDF Library ====================== -.. _ref.using.from-cxx: +.. _using.from-cxx: Using QPDF from C++ ------------------- @@ -34,7 +34,7 @@ individual ``QPDF`` object instance (including ``QPDF``, thread at a time. Multiple threads may simultaneously work with different instances of these and all other QPDF objects. -.. _ref.using.other-languages: +.. _using.other-languages: Using QPDF from other languages ------------------------------- @@ -65,9 +65,9 @@ Other Languages command-line tool can produce a JSON representation of the PDF file's non-content data. This can facilitate interacting programmatically with PDF files through qpdf's command line interface. For more - information, please see :ref:`ref.json`. + information, please see :ref:`json`. -.. _ref.unicode-files: +.. _unicode-files: A Note About Unicode File Names ------------------------------- diff --git a/manual/license.rst b/manual/license.rst index 691aef13..d2ba5052 100644 --- a/manual/license.rst +++ b/manual/license.rst @@ -1,4 +1,4 @@ -.. _ref.license: +.. _license: License ======= diff --git a/manual/linearization.rst b/manual/linearization.rst index abac843a..89362bc2 100644 --- a/manual/linearization.rst +++ b/manual/linearization.rst @@ -1,4 +1,4 @@ -.. _ref.linearization: +.. _linearization: Linearization ============= @@ -6,7 +6,7 @@ Linearization This chapter describes how ``QPDF`` and ``QPDFWriter`` implement creation and processing of linearized PDFS. -.. _ref.linearization-strategy: +.. _linearization-strategy: Basic Strategy for Linearization -------------------------------- @@ -22,7 +22,7 @@ was first tested against linearized files created by external tools (Acrobat and pdlin) and then used to validate files created by ``QPDFWriter`` itself. -.. _ref.linearized.preparation: +.. _linearized.preparation: Preparing For Linearization --------------------------- @@ -34,7 +34,7 @@ tree). We also have to know which objects refer to which other objects, being concerned with page boundaries and a few other cases. We refer to this part of preparing the PDF file as *optimization*, discussed in -:ref:`ref.optimization`. Note the, in this context, the +:ref:`optimization`. Note the, in this context, the term *optimization* is a qpdf term, and the term *linearization* is a term from the PDF 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: - Filling in offsets and byte sizes -.. _ref.optimization: +.. _optimization: Optimization ------------ @@ -85,7 +85,7 @@ Note that pages and thumbnails have different object user types, so the above test on a page will not include objects referenced by the page's thumbnail dictionary and nothing else. -.. _ref.linearization.writing: +.. _linearization.writing: Writing Linearized Files ------------------------ @@ -131,7 +131,7 @@ Using this strategy, we can write linearized files to a non-seekable output stream with only a single pass to disk or wherever the output is going. -.. _ref.linearization-data: +.. _linearization-data: Calculating Linearization Data ------------------------------ @@ -147,7 +147,7 @@ object is encountered that has not already been queued. (This could happen only if there were a bug in the traversal code used to calculate the linearization data.) -.. _ref.linearization-issues: +.. _linearization-issues: Known Issues with Linearization ------------------------------- @@ -172,7 +172,7 @@ linearization appendix of the PDF specification. most of the information needed to create thumbnail hint tables. There are comments in the code about this. -.. _ref.linearization-debugging: +.. _linearization-debugging: Debugging Note -------------- diff --git a/manual/object-streams.rst b/manual/object-streams.rst index 6c2b3fc8..116b2b8f 100644 --- a/manual/object-streams.rst +++ b/manual/object-streams.rst @@ -1,4 +1,4 @@ -.. _ref.object-and-xref-streams: +.. _object-and-xref-streams: Object and Cross-Reference Streams ================================== @@ -6,7 +6,7 @@ Object and Cross-Reference Streams This chapter provides information about the implementation of object stream and cross-reference stream support in qpdf. -.. _ref.object-streams: +.. _object-streams: Object Streams -------------- @@ -27,7 +27,7 @@ if the file is encrypted, though this is not specifically disallowed by the specification. There are additional restrictions for linearized files. See -:ref:`ref.object-streams-linearization` for details. +:ref:`object-streams-linearization` for details. The PDF specification refers to objects in object streams as "compressed 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 first object in the stream, followed by the objects themselves, concatenated. -.. _ref.xref-streams: +.. _xref-streams: Cross-Reference Streams ----------------------- @@ -111,7 +111,7 @@ which are these: The other fields in the xref stream, which may be indirect if desired, are the union of those from the xref table's trailer dictionary. -.. _ref.xref-stream-data: +.. _xref-stream-data: Cross-Reference Stream Data ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -138,7 +138,7 @@ PDF 1.5 has three field types: It seems standard to have the first entry in the table be ``0 0 0`` instead of ``0 0 ffff`` if there are no deleted objects. -.. _ref.object-streams-linearization: +.. _object-streams-linearization: Implications for Linearized Files --------------------------------- @@ -161,7 +161,7 @@ When numbering objects, all shared objects within both the first and second halves of the linearized files must be numbered consecutively after all normal uncompressed objects in that half. -.. _ref.object-stream-implementation: +.. _object-stream-implementation: Implementation Notes -------------------- diff --git a/manual/overview.rst b/manual/overview.rst index 82c7057b..c9e86105 100644 --- a/manual/overview.rst +++ b/manual/overview.rst @@ -1,4 +1,4 @@ -.. _ref.overview: +.. _overview: What is QPDF? ============= diff --git a/manual/qdf.rst b/manual/qdf.rst index b7ee7813..e2098c47 100644 --- a/manual/qdf.rst +++ b/manual/qdf.rst @@ -1,4 +1,4 @@ -.. _ref.qdf: +.. _qdf: QDF Mode ======== diff --git a/manual/release-notes.rst b/manual/release-notes.rst index adb2a48d..31c78628 100644 --- a/manual/release-notes.rst +++ b/manual/release-notes.rst @@ -1,4 +1,4 @@ -.. _ref.release-notes: +.. _release-notes: Release Notes ============= @@ -34,7 +34,7 @@ For a detailed list of changes, please see the file error code of ``qpdf_e_object`` instead of ``qpdf_e_damaged_pdf``. Also, comments have been added to :file:`QPDFObjectHandle.hh` to explain in more detail what the - behavior is. See :ref:`ref.object-accessors` for a more in-depth + behavior is. See :ref:`object-accessors` for a more in-depth discussion. - Add ``Pl_Buffer::getMallocBuffer()`` to initialize a buffer @@ -88,7 +88,7 @@ For a detailed list of changes, please see the file acknowledgment moving forward. For qpdf 10.4, this change only affects the command-line tool. Starting in qpdf 11, there will be small API changes to require explicit acknowledgment in - those cases as well. For additional information, see :ref:`ref.weak-crypto`. + those cases as well. For additional information, see :ref:`weak-crypto`. - Bug Fixes @@ -243,7 +243,7 @@ For a detailed list of changes, please see the file - CLI Enhancements - Add new command line options for listing, saving, adding, - removing, and and copying file attachments. See :ref:`ref.attachments` for details. + removing, and and copying file attachments. See :ref:`attachments` for details. - Page splitting and merging operations, as well as :samp:`--flatten-rotation`, are better behaved @@ -654,7 +654,7 @@ For a detailed list of changes, please see the file expensive process of finding and removing unreferenced resources is likely to be of benefit. For most files, this new default will result in a significant performance improvement - for splitting pages. See :ref:`ref.advanced-transformation` for a more detailed + for splitting pages. See :ref:`advanced-transformation` for a more detailed discussion. - The :samp:`--preserve-unreferenced-resources` @@ -786,8 +786,8 @@ For a detailed list of changes, please see the file - A C++-11 compiler is now required to build qpdf. - A new crypto provider that uses gnutls for crypto functions is - now available and can be enabled at build time. See :ref:`ref.crypto` for more information about crypto - providers and :ref:`ref.crypto.build` for specific information about + now available and can be enabled at build time. See :ref:`crypto` for more information about crypto + providers and :ref:`crypto.build` for specific information about the build. - Library Enhancements @@ -811,12 +811,12 @@ For a detailed list of changes, please see the file This includes the addition of new classes ``QPDFCryptoProvider`` and ``QPDFCryptoImpl`` and the recognition of the ``QPDF_CRYPTO_PROVIDER`` environment - variable. Crypto providers are described in depth in :ref:`ref.crypto`. + variable. Crypto providers are described in depth in :ref:`crypto`. - CLI Enhancements - Addition of the :samp:`--show-crypto` option in - support of selectable crypto providers, as described in :ref:`ref.crypto`. + support of selectable crypto providers, as described in :ref:`crypto`. - Allow ``:even`` or ``:odd`` to be appended to numeric ranges 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 - The :samp:`--replace-input` option may be given in place of an output file name. This causes qpdf to overwrite the input file with the output. See the description of - :samp:`--replace-input` in :ref:`ref.basic-options` for more details. + :samp:`--replace-input` in :ref:`basic-options` for more details. - The :samp:`--recompress-flate` instructs :command:`qpdf` to recompress streams that are @@ -906,7 +906,7 @@ For a detailed list of changes, please see the file conversion methods do range checking to ensure that the cast can be performed with no loss of information. Every use of ``static_cast`` in the library was inspected to see if it could - use one of these safe converters instead. See :ref:`ref.casting` for additional details. + use one of these safe converters instead. See :ref:`casting` for additional details. - Method ``QPDF::anyWarnings`` tells whether there have been any warnings without clearing the list of warnings. @@ -1100,7 +1100,7 @@ For a detailed list of changes, please see the file previous releases when the passwords contain non-ASCII characters. In some cases, the behavior differs from previous releases. For a discussion of the current behavior, please see - :ref:`ref.unicode-passwords`. The + :ref:`unicode-passwords`. The incompatibilities are as follows: - On Windows, qpdf now receives all command-line options as @@ -1131,7 +1131,7 @@ For a detailed list of changes, please see the file the PDF spec requires. While this is almost always the correct behavior, it is possible to override the behavior if there is some reason to do so. This is discussed in more - depth in :ref:`ref.unicode-passwords`. + depth in :ref:`unicode-passwords`. - New options :samp:`--externalize-inline-images`, @@ -1140,12 +1140,12 @@ For a detailed list of changes, please see the file handling of inline images and possible conversion of them to regular images. By default, :samp:`--optimize-images` now also applies to - inline images. These options are discussed in :ref:`ref.advanced-transformation`. + inline images. These options are discussed in :ref:`advanced-transformation`. - Add options :samp:`--overlay` and :samp:`--underlay` for overlaying or underlaying pages of other files onto output pages. See - :ref:`ref.overlay-underlay` for + :ref:`overlay-underlay` for details. - When opening an encrypted file with a password, if the @@ -1154,12 +1154,12 @@ For a detailed list of changes, please see the file passwords to try to compensate for possible character encoding errors. This behavior can be suppressed with the :samp:`--suppress-password-recovery` option. - See :ref:`ref.unicode-passwords` for a full + See :ref:`unicode-passwords` for a full discussion. - Add the :samp:`--password-mode` option to fine-tune how qpdf interprets password arguments, especially - when they contain non-ASCII characters. See :ref:`ref.unicode-passwords` for more information. + when they contain non-ASCII characters. See :ref:`unicode-passwords` for more information. - In the :samp:`--pages` option, it is now 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 - Page collation: add new option :samp:`--collate`. When specified, the semantics of :samp:`--pages` change from - concatenation to collation. See :ref:`ref.page-selection` for examples and discussion. + concatenation to collation. See :ref:`page-selection` for examples and discussion. - Generation of information in JSON format, primarily to 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 :samp:`--json-object` to generate a JSON representation of the PDF file. Run :command:`qpdf --json-help` to get a description of the JSON - format. For more information, see :ref:`ref.json`. + format. For more information, see :ref:`json`. - The :samp:`--generate-appearances` flag will 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 - Notes for Packagers - A new section has been added to the documentation with notes - for packagers. Please see :ref:`ref.packaging`. + for packagers. Please see :ref:`packaging`. - The qpdf detects out-of-date automatically generated files. If your packaging system automatically refreshes libtool or @@ -1522,7 +1522,7 @@ For a detailed list of changes, please see the file :samp:`--keep-files-open={[yn]}` to override default determination of whether to keep files open when merging. Please see the discussion of - :samp:`--keep-files-open` in :ref:`ref.basic-options` for additional details. + :samp:`--keep-files-open` in :ref:`basic-options` for additional details. 8.2.0: August 16, 2018 - Command-line Enhancements @@ -1588,7 +1588,7 @@ For a detailed list of changes, please see the file page splitting is very slow, the old behavior (and speed) can be enabled by specifying :samp:`--preserve-unreferenced-resources`. For - additional details, please see :ref:`ref.advanced-transformation`. + additional details, please see :ref:`advanced-transformation`. - When merging multiple PDF files, qpdf no longer leaves all the 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 introduced. These are designed to provide a more convenient way of interacting with certain document features than using ``QPDFObjectHandle`` directly. For details on helpers, see - :ref:`ref.helper-classes`. Specific additional + :ref:`helper-classes`. Specific additional interfaces are described below. - Add two new document helper classes: ``QPDFPageDocumentHelper`` @@ -1718,7 +1718,7 @@ For a detailed list of changes, please see the file - Enhancements to the :command:`qpdf` Command-line Tool. All new options listed here are documented in more detail in - :ref:`ref.using`. + :ref:`using`. - The option :samp:`--linearize-pass1={file}` @@ -1774,7 +1774,7 @@ For a detailed list of changes, please see the file the encryption key used by a file. This is a non-standard operation, but it can be useful in certain situations. Please see the discussion of :samp:`--password-is-hex-key` in - :ref:`ref.basic-options` or the comments around + :ref:`basic-options` or the comments around ``QPDF::setPasswordIsHexKey`` in :file:`QPDF.hh` for additional details. @@ -1832,10 +1832,10 @@ For a detailed list of changes, please see the file - Enhancements to the :command:`qpdf` Command-line Tool. All new options listed here are documented in more detail in - :ref:`ref.using`. + :ref:`using`. - Command-line arguments can now be read from files or standard - input using ``@file`` or ``@-`` syntax. Please see :ref:`ref.invocation`. + input using ``@file`` or ``@-`` syntax. Please see :ref:`invocation`. - :samp:`--rotate`: request page rotation @@ -2147,7 +2147,7 @@ For a detailed list of changes, please see the file ``QPDFWriter::setMinimumPDFVersion`` and ``QPDFWriter::forcePDFVersion`` that accept an extension level, and extended syntax for specifying forced and minimum versions on - the command line as described in :ref:`ref.advanced-transformation`. Corresponding functions + the command line as described in :ref:`advanced-transformation`. Corresponding functions have been added to the C API as well. - 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 - Support for page selection (splitting and merging PDF files) has been added to the :command:`qpdf` command-line - tool. See :ref:`ref.page-selection`. + tool. See :ref:`page-selection`. - Options have been added to the :command:`qpdf` command-line tool for copying encryption parameters from another - file. See :ref:`ref.basic-options`. + file. See :ref:`basic-options`. - New methods have been added to the ``QPDF`` object for adding and - removing pages. See :ref:`ref.adding-and-remove-pages`. + removing pages. See :ref:`adding-and-remove-pages`. - New methods have been added to the ``QPDF`` object for copying - objects from other PDF files. See :ref:`ref.foreign-objects` + objects from other PDF files. See :ref:`foreign-objects` - A new method ``QPDFObjectHandle::parse`` has been added for constructing ``QPDFObjectHandle`` objects from a string diff --git a/manual/weak-crypto.rst b/manual/weak-crypto.rst index 8902f760..a75a1add 100644 --- a/manual/weak-crypto.rst +++ b/manual/weak-crypto.rst @@ -1,4 +1,4 @@ -.. _ref.weak-crypto: +.. _weak-crypto: Weak Cryptography =================