Commit 9a5d16a4039bd92024e57a2e00ffb5ec5a62adc4

Authored by Jay Berkenbilt
1 parent f80a0da3

Prepare for docbook -> rst: replace SGML entitles

We were using SGML entities for various non-ASCII characters so they
could convert properly for both HTML and print, but this is no longer
necessary as we move from docbook to RST, so just replace them. Note
that the conversions done by sphinx automatically handle "smart
quotes", so it works to just use regular quotes in place of “
and ”.
Showing 2 changed files with 61 additions and 72 deletions
@@ -25,12 +25,6 @@ Things to fix: @@ -25,12 +25,6 @@ Things to fix:
25 Entities/Unicode 25 Entities/Unicode
26 26
27 <!ENTITY lastreleased "November 16, 2021"> (not needed) 27 <!ENTITY lastreleased "November 16, 2021"> (not needed)
28 -<!ENTITY ldquo "&#x201C;">  
29 -<!ENTITY mdash "&#x2014;">  
30 -<!ENTITY nbsp "&#xA0;">  
31 -<!ENTITY ndash "&#x2013;">  
32 -<!ENTITY rdquo "&#x201D;">  
33 -<!ENTITY swversion "10.4.0"> -> |release|  
34 28
35 Elements: 29 Elements:
36 30
manual/qpdf-manual.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE book [ 2 <!DOCTYPE book [
3 -<!ENTITY ldquo "&#x201C;">  
4 -<!ENTITY rdquo "&#x201D;">  
5 -<!ENTITY mdash "&#x2014;">  
6 -<!ENTITY ndash "&#x2013;">  
7 -<!ENTITY nbsp "&#xA0;">  
8 <!ENTITY swversion "10.4.0"> 3 <!ENTITY swversion "10.4.0">
9 <!ENTITY lastreleased "November 16, 2021"> 4 <!ENTITY lastreleased "November 16, 2021">
10 ]> 5 ]>
@@ -265,7 +260,7 @@ make @@ -265,7 +260,7 @@ make
265 <para> 260 <para>
266 Starting with qpdf 9.1.0, the qpdf library can be built with 261 Starting with qpdf 9.1.0, the qpdf library can be built with
267 multiple implementations of providers of cryptographic functions, 262 multiple implementations of providers of cryptographic functions,
268 - which we refer to as &ldquo;crypto providers.&rdquo; At the time 263 + which we refer to as "crypto providers." At the time
269 of writing, a crypto implementation must provide MD5 and SHA2 264 of writing, a crypto implementation must provide MD5 and SHA2
270 (256, 384, and 512-bit) hashes and RC4 and AES256 with and without 265 (256, 384, and 512-bit) hashes and RC4 and AES256 with and without
271 CBC encryption. In the future, if digital signature is added to 266 CBC encryption. In the future, if digital signature is added to
@@ -588,7 +583,7 @@ make @@ -588,7 +583,7 @@ make
588 <para> 583 <para>
589 @1@option@1@outfilename@2@option@2@ does not have to be seekable, even 584 @1@option@1@outfilename@2@option@2@ does not have to be seekable, even
590 when generating linearized files. Specifying 585 when generating linearized files. Specifying
591 - &ldquo;@1@option@1@-@2@option@2@&rdquo; as @1@option@1@outfilename@2@option@2@ 586 + "@1@option@1@-@2@option@2@" as @1@option@1@outfilename@2@option@2@
592 means to write to standard output. If you want to overwrite the 587 means to write to standard output. If you want to overwrite the
593 input file with the output, use the option 588 input file with the output, use the option
594 @1@option@1@--replace-input@2@option@2@ and omit the output file name. 589 @1@option@1@--replace-input@2@option@2@ and omit the output file name.
@@ -1249,7 +1244,7 @@ make @@ -1249,7 +1244,7 @@ make
1249 1244
1250 <programlisting>@1@option@1@--encrypt @1@replaceable@1@user-password@2@replaceable@2@ @1@replaceable@1@owner-password@2@replaceable@2@ @1@replaceable@1@key-length@2@replaceable@2@ [ @1@replaceable@1@restrictions@2@replaceable@2@ ] --@2@option@2@ 1245 <programlisting>@1@option@1@--encrypt @1@replaceable@1@user-password@2@replaceable@2@ @1@replaceable@1@owner-password@2@replaceable@2@ @1@replaceable@1@key-length@2@replaceable@2@ [ @1@replaceable@1@restrictions@2@replaceable@2@ ] --@2@option@2@
1251 </programlisting> 1246 </programlisting>
1252 - Note that &ldquo;@1@option@1@--@2@option@2@&rdquo; terminates parsing of 1247 + Note that "@1@option@1@--@2@option@2@" terminates parsing of
1253 encryption flags and must be present even if no restrictions are 1248 encryption flags and must be present even if no restrictions are
1254 present. 1249 present.
1255 </para> 1250 </para>
@@ -1548,12 +1543,12 @@ make @@ -1548,12 +1543,12 @@ make
1548 Multiple input files may be specified. Each one is given as the 1543 Multiple input files may be specified. Each one is given as the
1549 name of the input file, an optional password (if required to open 1544 name of the input file, an optional password (if required to open
1550 the file), and the range of pages. Note that 1545 the file), and the range of pages. Note that
1551 - &ldquo;@1@option@1@--@2@option@2@&rdquo; terminates parsing of page 1546 + "@1@option@1@--@2@option@2@" terminates parsing of page
1552 selection flags. 1547 selection flags.
1553 </para> 1548 </para>
1554 <para> 1549 <para>
1555 Starting with qpf 8.4, the special input file name 1550 Starting with qpf 8.4, the special input file name
1556 - &ldquo;@1@filename@1@.@2@filename@2@&rdquo; can be used as a shortcut for the 1551 + "@1@filename@1@.@2@filename@2@" can be used as a shortcut for the
1557 primary input filename. 1552 primary input filename.
1558 </para> 1553 </para>
1559 <para> 1554 <para>
@@ -1581,8 +1576,8 @@ make @@ -1581,8 +1576,8 @@ make
1581 <para> 1576 <para>
1582 The page range is a set of numbers separated by commas, ranges of 1577 The page range is a set of numbers separated by commas, ranges of
1583 numbers separated dashes, or combinations of those. The character 1578 numbers separated dashes, or combinations of those. The character
1584 - &ldquo;z&rdquo; represents the last page. A number preceded by an  
1585 - &ldquo;r&rdquo; indicates to count from the end, so 1579 + "z" represents the last page. A number preceded by an
  1580 + "r" indicates to count from the end, so
1586 <literal>r3-r1</literal> would be the last three pages of the 1581 <literal>r3-r1</literal> would be the last three pages of the
1587 document. Pages can appear in any order. Ranges can appear with a 1582 document. Pages can appear in any order. Ranges can appear with a
1588 high number followed by a low number, which causes the pages to 1583 high number followed by a low number, which causes the pages to
@@ -1635,7 +1630,7 @@ make @@ -1635,7 +1630,7 @@ make
1635 <para> 1630 <para>
1636 Starting in qpdf version 8.3, you can specify the 1631 Starting in qpdf version 8.3, you can specify the
1637 @1@option@1@--collate@2@option@2@ option. Note that this option is 1632 @1@option@1@--collate@2@option@2@ option. Note that this option is
1638 - specified outside of @1@option@1@--pages&nbsp;...&nbsp;--@2@option@2@. 1633 + specified outside of @1@option@1@--pages ... --@2@option@2@.
1639 When @1@option@1@--collate@2@option@2@ is specified, it changes the 1634 When @1@option@1@--collate@2@option@2@ is specified, it changes the
1640 meaning of @1@option@1@--pages@2@option@2@ so that the specified files, 1635 meaning of @1@option@1@--pages@2@option@2@ so that the specified files,
1641 as modified by page ranges, are collated rather than concatenated. 1636 as modified by page ranges, are collated rather than concatenated.
@@ -1711,8 +1706,8 @@ make @@ -1711,8 +1706,8 @@ make
1711 1706
1712 <programlisting>@1@command@1@qpdf@2@command@2@ @1@option@1@--empty --pages infile.pdf 1-5 -- outfile.pdf@2@option@2@ 1707 <programlisting>@1@command@1@qpdf@2@command@2@ @1@option@1@--empty --pages infile.pdf 1-5 -- outfile.pdf@2@option@2@
1713 </programlisting> 1708 </programlisting>
1714 - If you wanted to take pages 1&ndash;5 from  
1715 - @1@filename@1@file1.pdf@2@filename@2@ and pages 11&ndash;15 from 1709 + If you wanted to take pages 1 through 5 from
  1710 + @1@filename@1@file1.pdf@2@filename@2@ and pages 11 through 15 from
1716 @1@filename@1@file2.pdf@2@filename@2@ in reverse, taking document-level 1711 @1@filename@1@file2.pdf@2@filename@2@ in reverse, taking document-level
1717 metadata from @1@filename@1@file2.pdf@2@filename@2@, you would run 1712 metadata from @1@filename@1@file2.pdf@2@filename@2@, you would run
1718 1713
@@ -1809,7 +1804,7 @@ outfile.pdf@2@option@2@ @@ -1809,7 +1804,7 @@ outfile.pdf@2@option@2@
1809 <para> 1804 <para>
1810 @1@option@1@--repeat=page-range@2@option@2@: an optional range of 1805 @1@option@1@--repeat=page-range@2@option@2@: an optional range of
1811 pages that specifies which pages in the overlay/underlay file 1806 pages that specifies which pages in the overlay/underlay file
1812 - will be repeated after the &ldquo;from&rdquo; pages are used 1807 + will be repeated after the "from" pages are used
1813 up. If you want to repeat a range of pages starting at the 1808 up. If you want to repeat a range of pages starting at the
1814 beginning, you can explicitly use @1@option@1@--from=@2@option@2@. 1809 beginning, you can explicitly use @1@option@1@--from=@2@option@2@.
1815 </para> 1810 </para>
@@ -1850,7 +1845,7 @@ outfile.pdf@2@option@2@ @@ -1850,7 +1845,7 @@ outfile.pdf@2@option@2@
1850 <term>@1@option@1@--list-attachments@2@option@2@</term> 1845 <term>@1@option@1@--list-attachments@2@option@2@</term>
1851 <listitem> 1846 <listitem>
1852 <para> 1847 <para>
1853 - Show the &ldquo;key&rdquo; and stream number for embedded 1848 + Show the "key" and stream number for embedded
1854 files. With @1@option@1@--verbose@2@option@2@, additional 1849 files. With @1@option@1@--verbose@2@option@2@, additional
1855 information, including preferred file name, description, 1850 information, including preferred file name, description,
1856 dates, and more are also displayed. The key is usually but not 1851 dates, and more are also displayed. The key is usually but not
@@ -2447,8 +2442,8 @@ outfile.pdf@2@option@2@ @@ -2447,8 +2442,8 @@ outfile.pdf@2@option@2@
2447 <listitem> 2442 <listitem>
2448 <para> 2443 <para>
2449 For text fields and list boxes, any characters that fall 2444 For text fields and list boxes, any characters that fall
2450 - outside of US-ASCII or, if detected, &ldquo;Windows  
2451 - ANSI&rdquo; or &ldquo;Mac Roman&rdquo; encoding, will be 2445 + outside of US-ASCII or, if detected, "Windows
  2446 + ANSI" or "Mac Roman" encoding, will be
2452 replaced by the <literal>?</literal> character. 2447 replaced by the <literal>?</literal> character.
2453 </para> 2448 </para>
2454 </listitem> 2449 </listitem>
@@ -2529,7 +2524,7 @@ outfile.pdf@2@option@2@ @@ -2529,7 +2524,7 @@ outfile.pdf@2@option@2@
2529 <listitem> 2524 <listitem>
2530 <para> 2525 <para>
2531 Avoid optimizing images whose pixel count 2526 Avoid optimizing images whose pixel count
2532 - (width&nbsp;×&nbsp;height) is below the specified amount. If 2527 + (width × height) is below the specified amount. If
2533 omitted, the default is 16,384 pixels. Use 0 for no minimum. 2528 omitted, the default is 16,384 pixels. Use 0 for no minimum.
2534 </para> 2529 </para>
2535 </listitem> 2530 </listitem>
@@ -2661,7 +2656,7 @@ outfile.pdf@2@option@2@ @@ -2661,7 +2656,7 @@ outfile.pdf@2@option@2@
2661 streams. This is generally safe but could, in some cases, cause 2656 streams. This is generally safe but could, in some cases, cause
2662 damage to the content streams. This option is intended for people 2657 damage to the content streams. This option is intended for people
2663 who wish to study PDF content streams or to debug PDF content. 2658 who wish to study PDF content streams or to debug PDF content.
2664 - You should not use this for &ldquo;production&rdquo; PDF files. 2659 + You should not use this for "production" PDF files.
2665 </para> 2660 </para>
2666 <para> 2661 <para>
2667 When normalizing content, if qpdf runs into any lexical errors, it 2662 When normalizing content, if qpdf runs into any lexical errors, it
@@ -2841,7 +2836,7 @@ outfile.pdf@2@option@2@ @@ -2841,7 +2836,7 @@ outfile.pdf@2@option@2@
2841 <para> 2836 <para>
2842 Show the contents of the given object. This is especially 2837 Show the contents of the given object. This is especially
2843 useful for inspecting objects that are inside of object 2838 useful for inspecting objects that are inside of object
2844 - streams (also known as &ldquo;compressed objects&rdquo;). 2839 + streams (also known as "compressed objects").
2845 </para> 2840 </para>
2846 </listitem> 2841 </listitem>
2847 </varlistentry> 2842 </varlistentry>
@@ -2934,7 +2929,7 @@ outfile.pdf@2@option@2@ @@ -2934,7 +2929,7 @@ outfile.pdf@2@option@2@
2934 <para> 2929 <para>
2935 This option is repeatable. If specified, only specified 2930 This option is repeatable. If specified, only specified
2936 objects will be shown in the 2931 objects will be shown in the
2937 - &ldquo;<literal>objects</literal>&rdquo; key of the JSON 2932 + "<literal>objects</literal>" key of the JSON
2938 output. If absent, all objects will be shown. 2933 output. If absent, all objects will be shown.
2939 </para> 2934 </para>
2940 </listitem> 2935 </listitem>
@@ -2952,7 +2947,7 @@ outfile.pdf@2@option@2@ @@ -2952,7 +2947,7 @@ outfile.pdf@2@option@2@
2952 conditions that @1@option@1@--check@2@option@2@ detects. These are 2947 conditions that @1@option@1@--check@2@option@2@ detects. These are
2953 issued as warnings instead of errors. If qpdf finds no errors 2948 issued as warnings instead of errors. If qpdf finds no errors
2954 but finds warnings, it will exit with a status of 3 (as of 2949 but finds warnings, it will exit with a status of 3 (as of
2955 - version&nbsp;2.0.4). When @1@option@1@--check@2@option@2@ is combined 2950 + version 2.0.4). When @1@option@1@--check@2@option@2@ is combined
2956 with other options, checks are always performed before any 2951 with other options, checks are always performed before any
2957 other options are processed. For erroneous files, 2952 other options are processed. For erroneous files,
2958 @1@option@1@--check@2@option@2@ will cause qpdf to attempt to 2953 @1@option@1@--check@2@option@2@ will cause qpdf to attempt to
@@ -3300,10 +3295,10 @@ outfile.pdf@2@option@2@ @@ -3300,10 +3295,10 @@ outfile.pdf@2@option@2@
3300 </para> 3295 </para>
3301 <variablelist> 3296 <variablelist>
3302 <varlistentry> 3297 <varlistentry>
3303 - <term>&ldquo;C&rdquo;</term> 3298 + <term>"C"</term>
3304 <listitem> 3299 <listitem>
3305 <para> 3300 <para>
3306 - The qpdf library includes a &ldquo;C&rdquo; language interface 3301 + The qpdf library includes a "C" language interface
3307 that provides a subset of the overall capabilities. The header 3302 that provides a subset of the overall capabilities. The header
3308 file @1@filename@1@qpdf/qpdf-c.h@2@filename@2@ includes information 3303 file @1@filename@1@qpdf/qpdf-c.h@2@filename@2@ includes information
3309 about its use. As long as you use a C++ linker, you can link C 3304 about its use. As long as you use a C++ linker, you can link C
@@ -3451,7 +3446,7 @@ outfile.pdf@2@option@2@ @@ -3451,7 +3446,7 @@ outfile.pdf@2@option@2@
3451 </para> 3446 </para>
3452 <para> 3447 <para>
3453 The top-level JSON structure contains a 3448 The top-level JSON structure contains a
3454 - &ldquo;<literal>version</literal>&rdquo; key whose value is 3449 + "<literal>version</literal>" key whose value is
3455 simple integer. The value of the <literal>version</literal> key 3450 simple integer. The value of the <literal>version</literal> key
3456 will be incremented if a non-compatible change is made. A 3451 will be incremented if a non-compatible change is made. A
3457 non-compatible change would be any change that involves removal 3452 non-compatible change would be any change that involves removal
@@ -3507,10 +3502,10 @@ outfile.pdf@2@option@2@ @@ -3507,10 +3502,10 @@ outfile.pdf@2@option@2@
3507 </listitem> 3502 </listitem>
3508 </itemizedlist> 3503 </itemizedlist>
3509 For example, the help output indicates includes a 3504 For example, the help output indicates includes a
3510 - &ldquo;<literal>pagelabels</literal>&rdquo; key whose value is 3505 + "<literal>pagelabels</literal>" key whose value is
3511 an array of one element. That element is a dictionary with keys 3506 an array of one element. That element is a dictionary with keys
3512 - &ldquo;<literal>index</literal>&rdquo; and  
3513 - &ldquo;<literal>label</literal>&rdquo;. In addition to 3507 + "<literal>index</literal>" and
  3508 + "<literal>label</literal>". In addition to
3514 describing the meaning of those keys, this tells you that the 3509 describing the meaning of those keys, this tells you that the
3515 actual JSON output will contain a <literal>pagelabels</literal> 3510 actual JSON output will contain a <literal>pagelabels</literal>
3516 array, each of whose elements is a dictionary that contains an 3511 array, each of whose elements is a dictionary that contains an
@@ -3546,7 +3541,7 @@ outfile.pdf@2@option@2@ @@ -3546,7 +3541,7 @@ outfile.pdf@2@option@2@
3546 <para> 3541 <para>
3547 Strings, names, and indirect object references in the original 3542 Strings, names, and indirect object references in the original
3548 PDF file are all converted to strings in the JSON 3543 PDF file are all converted to strings in the JSON
3549 - representation. In the case of a &ldquo;normal&rdquo; PDF file, 3544 + representation. In the case of a "normal" PDF file,
3550 you can tell the difference because a name starts with a slash 3545 you can tell the difference because a name starts with a slash
3551 (<literal>/</literal>), and an indirect object reference looks 3546 (<literal>/</literal>), and an indirect object reference looks
3552 like <literal>n n R</literal>, but if there were to be a string 3547 like <literal>n n R</literal>, but if there were to be a string
@@ -3631,11 +3626,11 @@ outfile.pdf@2@option@2@ @@ -3631,11 +3626,11 @@ outfile.pdf@2@option@2@
3631 <para> 3626 <para>
3632 The image information included in the <literal>page</literal> 3627 The image information included in the <literal>page</literal>
3633 section of the JSON output includes the key 3628 section of the JSON output includes the key
3634 - &ldquo;<literal>filterable</literal>&rdquo;. Note that the 3629 + "<literal>filterable</literal>". Note that the
3635 value of this field may depend on the 3630 value of this field may depend on the
3636 @1@option@1@--decode-level@2@option@2@ that you invoke qpdf with. The 3631 @1@option@1@--decode-level@2@option@2@ that you invoke qpdf with. The
3637 JSON output includes a top-level key 3632 JSON output includes a top-level key
3638 - &ldquo;<literal>parameters</literal>&rdquo; that indicates the 3633 + "<literal>parameters</literal>" that indicates the
3639 decode level used for computing whether a stream was 3634 decode level used for computing whether a stream was
3640 filterable. For example, jpeg images will be shown as not 3635 filterable. For example, jpeg images will be shown as not
3641 filterable by default, but they will be shown as filterable if 3636 filterable by default, but they will be shown as filterable if
@@ -3674,8 +3669,8 @@ outfile.pdf@2@option@2@ @@ -3674,8 +3669,8 @@ outfile.pdf@2@option@2@
3674 is to generating warnings for recoverable problems. Note that 3669 is to generating warnings for recoverable problems. Note that
3675 recovery will not always produce the desired results even if it is 3670 recovery will not always produce the desired results even if it is
3676 able to get through the file. Unlike most other PDF files that 3671 able to get through the file. Unlike most other PDF files that
3677 - produce generic warnings such as &ldquo;This file is  
3678 - damaged,&rdquo;, qpdf generally issues a detailed error message 3672 + produce generic warnings such as "This file is
  3673 + damaged,", qpdf generally issues a detailed error message
3679 that would be most useful to a PDF developer. This is by design as 3674 that would be most useful to a PDF developer. This is by design as
3680 there seems to be a shortage of PDF validation tools out there. 3675 there seems to be a shortage of PDF validation tools out there.
3681 This was, in fact, one of the major motivations behind the initial 3676 This was, in fact, one of the major motivations behind the initial
@@ -3918,7 +3913,7 @@ outfile.pdf@2@option@2@ @@ -3918,7 +3913,7 @@ outfile.pdf@2@option@2@
3918 </para> 3913 </para>
3919 <para> 3914 <para>
3920 Prior to qpdf version 8.1, higher level interfaces were added as 3915 Prior to qpdf version 8.1, higher level interfaces were added as
3921 - &ldquo;convenience functions&rdquo; in either 3916 + "convenience functions" in either
3922 <classname>QPDF</classname> or 3917 <classname>QPDF</classname> or
3923 <classname>QPDFObjectHandle</classname>. For compatibility, older 3918 <classname>QPDFObjectHandle</classname>. For compatibility, older
3924 convenience functions for operating with pages will remain in 3919 convenience functions for operating with pages will remain in
@@ -3954,7 +3949,7 @@ outfile.pdf@2@option@2@ @@ -3954,7 +3949,7 @@ outfile.pdf@2@option@2@
3954 immediately constructed from the single token and the parser 3949 immediately constructed from the single token and the parser
3955 returns. Otherwise, the parser iterates in a special mode in which 3950 returns. Otherwise, the parser iterates in a special mode in which
3956 it accumulates objects until it finds a balancing closer. During 3951 it accumulates objects until it finds a balancing closer. During
3957 - this process, the &ldquo;<literal>R</literal>&rdquo; keyword is 3952 + this process, the "<literal>R</literal>" keyword is
3958 recognized and an indirect <classname>QPDFObjectHandle</classname> 3953 recognized and an indirect <classname>QPDFObjectHandle</classname>
3959 may be constructed. 3954 may be constructed.
3960 </para> 3955 </para>
@@ -4008,7 +4003,7 @@ outfile.pdf@2@option@2@ @@ -4008,7 +4003,7 @@ outfile.pdf@2@option@2@
4008 </listitem> 4003 </listitem>
4009 <listitem> 4004 <listitem>
4010 <para> 4005 <para>
4011 - The parser sees &ldquo;<literal>&lt;&lt;</literal>&rdquo;, so 4006 + The parser sees "<literal>&lt;&lt;</literal>", so
4012 it calls itself recursively in dictionary creation mode. 4007 it calls itself recursively in dictionary creation mode.
4013 </para> 4008 </para>
4014 </listitem> 4009 </listitem>
@@ -4016,13 +4011,13 @@ outfile.pdf@2@option@2@ @@ -4016,13 +4011,13 @@ outfile.pdf@2@option@2@
4016 <para> 4011 <para>
4017 In dictionary creation mode, the parser keeps accumulating 4012 In dictionary creation mode, the parser keeps accumulating
4018 objects until it encounters 4013 objects until it encounters
4019 - &ldquo;<literal>&gt;&gt;</literal>&rdquo;. Each object that is 4014 + "<literal>&gt;&gt;</literal>". Each object that is
4020 read is pushed onto a stack. If 4015 read is pushed onto a stack. If
4021 - &ldquo;<literal>R</literal>&rdquo; is read, the last two 4016 + "<literal>R</literal>" is read, the last two
4022 objects on the stack are inspected. If they are integers, they 4017 objects on the stack are inspected. If they are integers, they
4023 are popped off the stack and their values are used to construct 4018 are popped off the stack and their values are used to construct
4024 an indirect object handle which is then pushed onto the stack. 4019 an indirect object handle which is then pushed onto the stack.
4025 - When &ldquo;<literal>&gt;&gt;</literal>&rdquo; is finally read, 4020 + When "<literal>&gt;&gt;</literal>" is finally read,
4026 the stack is converted into a 4021 the stack is converted into a
4027 <classname>QPDF_Dictionary</classname> which is placed in a 4022 <classname>QPDF_Dictionary</classname> which is placed in a
4028 <classname>QPDFObjectHandle</classname> and returned. 4023 <classname>QPDFObjectHandle</classname> and returned.
@@ -4296,7 +4291,7 @@ outfile.pdf@2@option@2@ @@ -4296,7 +4291,7 @@ outfile.pdf@2@option@2@
4296 other after adding them. Now it is possible to create a 4291 other after adding them. Now it is possible to create a
4297 @1@firstterm@1@reserved object@2@firstterm@2@ using 4292 @1@firstterm@1@reserved object@2@firstterm@2@ using
4298 <function>QPDFObjectHandle::newReserved</function>. This is an 4293 <function>QPDFObjectHandle::newReserved</function>. This is an
4299 - indirect object that stays &ldquo;unresolved&rdquo; even if it is 4294 + indirect object that stays "unresolved" even if it is
4300 queried for its type. So now, if you want to create a set of 4295 queried for its type. So now, if you want to create a set of
4301 mutually referential objects, you can create reservations for each 4296 mutually referential objects, you can create reservations for each
4302 one of them and use those reservations to construct the 4297 one of them and use those reservations to construct the
@@ -4317,7 +4312,7 @@ outfile.pdf@2@option@2@ @@ -4317,7 +4312,7 @@ outfile.pdf@2@option@2@
4317 <classname>QPDF</classname> object from a different 4312 <classname>QPDF</classname> object from a different
4318 <classname>QPDF</classname> object, which we refer to as 4313 <classname>QPDF</classname> object, which we refer to as
4319 @1@firstterm@1@foreign objects@2@firstterm@2@. This allows arbitrary 4314 @1@firstterm@1@foreign objects@2@firstterm@2@. This allows arbitrary
4320 - merging of PDF files. The &ldquo;from&rdquo; 4315 + merging of PDF files. The "from"
4321 <classname>QPDF</classname> object must remain valid after the 4316 <classname>QPDF</classname> object must remain valid after the
4322 copy as discussed in the note below. The @1@command@1@qpdf@2@command@2@ 4317 copy as discussed in the note below. The @1@command@1@qpdf@2@command@2@
4323 command-line tool provides limited support for basic page 4318 command-line tool provides limited support for basic page
@@ -4371,7 +4366,7 @@ outfile.pdf@2@option@2@ @@ -4371,7 +4366,7 @@ outfile.pdf@2@option@2@
4371 </para> 4366 </para>
4372 <para> 4367 <para>
4373 This outline was written prior to implementation and is not 4368 This outline was written prior to implementation and is not
4374 - exactly accurate, but it provides a correct &ldquo;notional&rdquo; 4369 + exactly accurate, but it provides a correct "notional"
4375 idea of how writing works. Look at the code in 4370 idea of how writing works. Look at the code in
4376 <classname>QPDFWriter</classname> for exact details. 4371 <classname>QPDFWriter</classname> for exact details.
4377 <itemizedlist> 4372 <itemizedlist>
@@ -4561,7 +4556,7 @@ outfile.pdf@2@option@2@ @@ -4561,7 +4556,7 @@ outfile.pdf@2@option@2@
4561 For general information about how to access instances of 4556 For general information about how to access instances of
4562 <classname>QPDFObjectHandle</classname>, please see the comments 4557 <classname>QPDFObjectHandle</classname>, please see the comments
4563 in @1@filename@1@QPDFObjectHandle.hh@2@filename@2@. Search for 4558 in @1@filename@1@QPDFObjectHandle.hh@2@filename@2@. Search for
4564 - &ldquo;Accessor methods&rdquo;. This section provides a more 4559 + "Accessor methods". This section provides a more
4565 in-depth discussion of the behavior and the rationale for the 4560 in-depth discussion of the behavior and the rationale for the
4566 behavior. 4561 behavior.
4567 </para> 4562 </para>
@@ -4807,8 +4802,8 @@ outfile.pdf@2@option@2@ @@ -4807,8 +4802,8 @@ outfile.pdf@2@option@2@
4807 <para> 4802 <para>
4808 Once a file is optimized, we have information about which objects 4803 Once a file is optimized, we have information about which objects
4809 access which other objects. We can then process these tables to 4804 access which other objects. We can then process these tables to
4810 - decide which part (as described in &ldquo;Linearized PDF Document  
4811 - Structure&rdquo; in the PDF specification) each object is 4805 + decide which part (as described in "Linearized PDF Document
  4806 + Structure" in the PDF specification) each object is
4812 contained within. This tells us the exact order in which objects 4807 contained within. This tells us the exact order in which objects
4813 are written. The <classname>QPDFWriter</classname> class asks for 4808 are written. The <classname>QPDFWriter</classname> class asks for
4814 this information and enqueues objects for writing in the proper 4809 this information and enqueues objects for writing in the proper
@@ -4923,7 +4918,7 @@ print &quot;\n&quot;; @@ -4923,7 +4918,7 @@ print &quot;\n&quot;;
4923 </para> 4918 </para>
4924 <para> 4919 <para>
4925 The PDF specification refers to objects in object streams as 4920 The PDF specification refers to objects in object streams as
4926 - &ldquo;compressed objects&rdquo; regardless of whether the object 4921 + "compressed objects" regardless of whether the object
4927 stream is compressed. 4922 stream is compressed.
4928 </para> 4923 </para>
4929 <para> 4924 <para>
@@ -5061,8 +5056,8 @@ print &quot;\n&quot;; @@ -5061,8 +5056,8 @@ print &quot;\n&quot;;
5061 by <literal>/W</literal> above. A 0 in <literal>/W</literal> 5056 by <literal>/W</literal> above. A 0 in <literal>/W</literal>
5062 indicates that the field is omitted and has the default value. 5057 indicates that the field is omitted and has the default value.
5063 The default value for the field type is 5058 The default value for the field type is
5064 - &ldquo;<literal>1</literal>&rdquo;. All other default values are  
5065 - &ldquo;<literal>0</literal>&rdquo;. 5059 + "<literal>1</literal>". All other default values are
  5060 + "<literal>0</literal>".
5066 </para> 5061 </para>
5067 <para> 5062 <para>
5068 PDF 1.5 has three field types: 5063 PDF 1.5 has three field types:
@@ -5226,7 +5221,7 @@ print &quot;\n&quot;; @@ -5226,7 +5221,7 @@ print &quot;\n&quot;;
5226 <listitem> 5221 <listitem>
5227 <para> 5222 <para>
5228 Overhaul error handling for the object handle functions in 5223 Overhaul error handling for the object handle functions in
5229 - the C API. See comments in the &ldquo;Object handling&rdquo; 5224 + the C API. See comments in the "Object handling"
5230 section of @1@filename@1@include/qpdf/qpdf-c.h@2@filename@2@ for 5225 section of @1@filename@1@include/qpdf/qpdf-c.h@2@filename@2@ for
5231 details. In particular, exceptions thrown by the underlying 5226 details. In particular, exceptions thrown by the underlying
5232 C++ code when calling object accessors are caught and 5227 C++ code when calling object accessors are caught and
@@ -7273,7 +7268,7 @@ print &quot;\n&quot;; @@ -7273,7 +7268,7 @@ print &quot;\n&quot;;
7273 are passed to the qpdf CLI in Windows, qpdf will now 7268 are passed to the qpdf CLI in Windows, qpdf will now
7274 correctly receive them. In the past, they would have 7269 correctly receive them. In the past, they would have
7275 either been encoded as Windows code page 1252 (also known 7270 either been encoded as Windows code page 1252 (also known
7276 - as &ldquo;Windows ANSI&rdquo; or as something 7271 + as "Windows ANSI" or as something
7277 unintelligible. In almost all cases, qpdf is able to 7272 unintelligible. In almost all cases, qpdf is able to
7278 properly interpret Unicode arguments now, whereas in the 7273 properly interpret Unicode arguments now, whereas in the
7279 past, it would almost never interpret them properly. The 7274 past, it would almost never interpret them properly. The
@@ -7356,7 +7351,7 @@ print &quot;\n&quot;; @@ -7356,7 +7351,7 @@ print &quot;\n&quot;;
7356 <listitem> 7351 <listitem>
7357 <para> 7352 <para>
7358 In the @1@option@1@--pages@2@option@2@ option, allow use of 7353 In the @1@option@1@--pages@2@option@2@ option, allow use of
7359 - &ldquo;.&rdquo; as a shortcut for the primary input file. 7354 + "." as a shortcut for the primary input file.
7360 That way, you can do @1@command@1@qpdf in.pdf --pages . 1-2 -- 7355 That way, you can do @1@command@1@qpdf in.pdf --pages . 1-2 --
7361 out.pdf@2@command@2@ instead of having to repeat 7356 out.pdf@2@command@2@ instead of having to repeat
7362 @1@filename@1@in.pdf@2@filename@2@ in the command. 7357 @1@filename@1@in.pdf@2@filename@2@ in the command.
@@ -7477,7 +7472,7 @@ print &quot;\n&quot;; @@ -7477,7 +7472,7 @@ print &quot;\n&quot;;
7477 <para> 7472 <para>
7478 Add new method 7473 Add new method
7479 <function>QPDFPageObjectHelper::shallowCopyPage()</function> 7474 <function>QPDFPageObjectHelper::shallowCopyPage()</function>
7480 - to copy a new page that is a &ldquo;shallow copy&rdquo; of a 7475 + to copy a new page that is a "shallow copy" of a
7481 page. The resulting object is an indirect object ready to be 7476 page. The resulting object is an indirect object ready to be
7482 passed to 7477 passed to
7483 <function>QPDFPageDocumentHelper::addPage()</function> for 7478 <function>QPDFPageDocumentHelper::addPage()</function> for
@@ -7689,7 +7684,7 @@ print &quot;\n&quot;; @@ -7689,7 +7684,7 @@ print &quot;\n&quot;;
7689 @1@option@1@--oi-min-height@2@option@2@, and 7684 @1@option@1@--oi-min-height@2@option@2@, and
7690 @1@option@1@--oi-min-area@2@option@2@ prevent recompression of 7685 @1@option@1@--oi-min-area@2@option@2@ prevent recompression of
7691 images whose width, height, or pixel area 7686 images whose width, height, or pixel area
7692 - (width&nbsp;&#xd7;&nbsp;height) are below a specified 7687 + (width &#xd7; height) are below a specified
7693 threshold. 7688 threshold.
7694 </para> 7689 </para>
7695 </listitem> 7690 </listitem>
@@ -8154,7 +8149,7 @@ print &quot;\n&quot;; @@ -8154,7 +8149,7 @@ print &quot;\n&quot;;
8154 </listitem> 8149 </listitem>
8155 <listitem> 8150 <listitem>
8156 <para> 8151 <para>
8157 - In &ldquo;newline before endstream&rdquo; mode, insert the 8152 + In "newline before endstream" mode, insert the
8158 required extra newline before the 8153 required extra newline before the
8159 <literal>endstream</literal> at the end of object streams. 8154 <literal>endstream</literal> at the end of object streams.
8160 This one case was previously omitted. 8155 This one case was previously omitted.
@@ -8169,7 +8164,7 @@ print &quot;\n&quot;; @@ -8169,7 +8164,7 @@ print &quot;\n&quot;;
8169 <itemizedlist> 8164 <itemizedlist>
8170 <listitem> 8165 <listitem>
8171 <para> 8166 <para>
8172 - The first round of higher level &ldquo;helper&rdquo; 8167 + The first round of higher level "helper"
8173 interfaces has been introduced. These are designed to 8168 interfaces has been introduced. These are designed to
8174 provide a more convenient way of interacting with certain 8169 provide a more convenient way of interacting with certain
8175 document features than using 8170 document features than using
@@ -8290,7 +8285,7 @@ print &quot;\n&quot;; @@ -8290,7 +8285,7 @@ print &quot;\n&quot;;
8290 <listitem> 8285 <listitem>
8291 <para> 8286 <para>
8292 On the command line when specifying page ranges, support 8287 On the command line when specifying page ranges, support
8293 - preceding a page number by &ldquo;r&rdquo; to indicate that it 8288 + preceding a page number by "r" to indicate that it
8294 should be counted from the end. For example, the range 8289 should be counted from the end. For example, the range
8295 <literal>r3-r1</literal> would indicate the last three pages 8290 <literal>r3-r1</literal> would indicate the last three pages
8296 of a document. 8291 of a document.
@@ -8337,8 +8332,8 @@ print &quot;\n&quot;; @@ -8337,8 +8332,8 @@ print &quot;\n&quot;;
8337 not of the expected type. In most cases, qpdf will be able 8332 not of the expected type. In most cases, qpdf will be able
8338 to warn for such cases rather than fail with an exception. 8333 to warn for such cases rather than fail with an exception.
8339 Previous versions of qpdf would sometimes fail with errors 8334 Previous versions of qpdf would sometimes fail with errors
8340 - such as &ldquo;operation for dictionary object attempted on  
8341 - object of wrong type&rdquo;. This situation should be mostly 8335 + such as "operation for dictionary object attempted on
  8336 + object of wrong type". This situation should be mostly
8342 or entirely eliminated now. 8337 or entirely eliminated now.
8343 </para> 8338 </para>
8344 </listitem> 8339 </listitem>
@@ -9142,8 +9137,8 @@ print &quot;\n&quot;; @@ -9142,8 +9137,8 @@ print &quot;\n&quot;;
9142 command line by specifying use of 256-bit keys. qpdf also 9137 command line by specifying use of 256-bit keys. qpdf also
9143 supports the deprecated encryption method used by Acrobat IX. 9138 supports the deprecated encryption method used by Acrobat IX.
9144 This encryption style has known security weaknesses and should 9139 This encryption style has known security weaknesses and should
9145 - not be used in practice. However, such files exist &ldquo;in  
9146 - the wild,&rdquo; so support for this scheme is still useful. 9140 + not be used in practice. However, such files exist "in
  9141 + the wild," so support for this scheme is still useful.
9147 New methods 9142 New methods
9148 <function>QPDFWriter::setR6EncryptionParameters</function> 9143 <function>QPDFWriter::setR6EncryptionParameters</function>
9149 (for the PDF 2.0 scheme) and 9144 (for the PDF 2.0 scheme) and
@@ -9340,7 +9335,7 @@ print &quot;\n&quot;; @@ -9340,7 +9335,7 @@ print &quot;\n&quot;;
9340 Bug fix: if an object stream ended with a scalar object not 9335 Bug fix: if an object stream ended with a scalar object not
9341 followed by space, qpdf would incorrectly report that it 9336 followed by space, qpdf would incorrectly report that it
9342 encountered a premature EOF. This bug has been in qpdf since 9337 encountered a premature EOF. This bug has been in qpdf since
9343 - version&nbsp;2.0. 9338 + version 2.0.
9344 </para> 9339 </para>
9345 </listitem> 9340 </listitem>
9346 </itemizedlist> 9341 </itemizedlist>
@@ -9881,12 +9876,12 @@ print &quot;\n&quot;; @@ -9881,12 +9876,12 @@ print &quot;\n&quot;;
9881 Žarko Gajić has written a Delphi wrapper for qpdf, which can 9876 Žarko Gajić has written a Delphi wrapper for qpdf, which can
9882 be downloaded from qpdf's download side. Žarko's Delphi 9877 be downloaded from qpdf's download side. Žarko's Delphi
9883 wrapper is released with the same licensing terms as qpdf 9878 wrapper is released with the same licensing terms as qpdf
9884 - itself and comes with this disclaimer: &ldquo;Delphi wrapper 9879 + itself and comes with this disclaimer: "Delphi wrapper
9885 unit @1@filename@1@qpdf.pas@2@filename@2@ created by Žarko Gajić 9880 unit @1@filename@1@qpdf.pas@2@filename@2@ created by Žarko Gajić
9886 (<ulink 9881 (<ulink
9887 url="http://zarko-gajic.iz.hr/">http://zarko-gajic.iz.hr/</ulink>). 9882 url="http://zarko-gajic.iz.hr/">http://zarko-gajic.iz.hr/</ulink>).
9888 Use at your own risk and for whatever purpose you want. No 9883 Use at your own risk and for whatever purpose you want. No
9889 - support is provided. Sample code is provided.&rdquo; 9884 + support is provided. Sample code is provided."
9890 </para> 9885 </para>
9891 </listitem> 9886 </listitem>
9892 <listitem> 9887 <listitem>
@@ -9982,7 +9977,7 @@ print &quot;\n&quot;; @@ -9982,7 +9977,7 @@ print &quot;\n&quot;;
9982 <listitem> 9977 <listitem>
9983 <para> 9978 <para>
9984 Include proper support for LZW streams encoded without the 9979 Include proper support for LZW streams encoded without the
9985 - &ldquo;early code change&rdquo; flag. Special thanks to Atom 9980 + "early code change" flag. Special thanks to Atom
9986 Smasher who reported the problem and provided an input file 9981 Smasher who reported the problem and provided an input file
9987 compressed in this way, which I did not previously have. 9982 compressed in this way, which I did not previously have.
9988 </para> 9983 </para>