Commit c97bd6323e7f8988b4ff24b913a37e683eeaacf6
1 parent
4cbf32bf
Add release notes for changes from 10.0.4 so far
Showing
1 changed file
with
122 additions
and
0 deletions
manual/qpdf-manual.xml
| ... | ... | @@ -4819,6 +4819,128 @@ print "\n"; |
| 4819 | 4819 | </varlistentry> |
| 4820 | 4820 | --> |
| 4821 | 4821 | <varlistentry> |
| 4822 | + <term>10.1.0: XXX Month dd, YYYY</term> | |
| 4823 | + <listitem> | |
| 4824 | + <itemizedlist> | |
| 4825 | + <listitem> | |
| 4826 | + <para> | |
| 4827 | + CLI Enhancements | |
| 4828 | + </para> | |
| 4829 | + <itemizedlist> | |
| 4830 | + <listitem> | |
| 4831 | + <para> | |
| 4832 | + Add <option>--flatten-rotation</option> command-line option, | |
| 4833 | + which causes all pages that are rotated using parameters in | |
| 4834 | + the page's dictionary to instead be identically rotated in | |
| 4835 | + the page's contents. The change is not user-visible for | |
| 4836 | + compliant PDF readers but can be used to work around broken | |
| 4837 | + PDF applications that don't properly handle page rotation. | |
| 4838 | + </para> | |
| 4839 | + </listitem> | |
| 4840 | + </itemizedlist> | |
| 4841 | + </listitem> | |
| 4842 | + <listitem> | |
| 4843 | + <para> | |
| 4844 | + Library Enhancements | |
| 4845 | + </para> | |
| 4846 | + <itemizedlist> | |
| 4847 | + <listitem> | |
| 4848 | + <para> | |
| 4849 | + Support for user-provided (pluggable, modular) stream | |
| 4850 | + filters. It is now possible to derive a class from | |
| 4851 | + <classname>QPDFStreamFilter</classname> and register it with | |
| 4852 | + <classname>QPDF</classname> so that regular library methods, | |
| 4853 | + including those used by <classname>QPDFWriter</classname>, | |
| 4854 | + can decode streams with filters not directly supported by | |
| 4855 | + the library. The example | |
| 4856 | + <filename>examples/pdf-custom-filter.cc</filename> | |
| 4857 | + illustrates how to use this capability. | |
| 4858 | + </para> | |
| 4859 | + </listitem> | |
| 4860 | + <listitem> | |
| 4861 | + <para> | |
| 4862 | + Add the optional <function>allow_streams</function> | |
| 4863 | + parameter <function>QPDFObjectHandle::makeDirect</function>. | |
| 4864 | + When <function>QPDFObjectHandle::makeDirect</function> is | |
| 4865 | + called in this way, it preserves references to streams | |
| 4866 | + rather than throwing an exception. | |
| 4867 | + </para> | |
| 4868 | + </listitem> | |
| 4869 | + <listitem> | |
| 4870 | + <para> | |
| 4871 | + Add <function>QPDFObjectHandle::setFilterOnWrite</function> | |
| 4872 | + method. Calling this on a stream prevents | |
| 4873 | + <function>QPDFWriter</function> from attempting to | |
| 4874 | + uncompress, recompress, or otherwise filter a stream even if | |
| 4875 | + it could. Developers can use this to protect streams that | |
| 4876 | + are optimized should be protected from | |
| 4877 | + <classname>QPDFWriter</classname>'s default behavior for any | |
| 4878 | + other reason. | |
| 4879 | + </para> | |
| 4880 | + </listitem> | |
| 4881 | + <listitem> | |
| 4882 | + <para> | |
| 4883 | + Add <classname>ostream</classname> | |
| 4884 | + <literal><<</literal> operator for | |
| 4885 | + <classname>QPDFObjGen</classname>. This is useful to have | |
| 4886 | + for debugging. | |
| 4887 | + </para> | |
| 4888 | + </listitem> | |
| 4889 | + <listitem> | |
| 4890 | + <para> | |
| 4891 | + Add method | |
| 4892 | + <function>QPDFPageObjectHelper::flattenRotation</function>, | |
| 4893 | + which replaces a page's <literal>/Rotate</literal> keyword | |
| 4894 | + by rotating the page within the content stream and altering | |
| 4895 | + the page's bounding boxes so the rendering is the same. This | |
| 4896 | + can be used to work around buggy PDF readers that can't | |
| 4897 | + properly handle page rotation. | |
| 4898 | + </para> | |
| 4899 | + </listitem> | |
| 4900 | + </itemizedlist> | |
| 4901 | + </listitem> | |
| 4902 | + <listitem> | |
| 4903 | + <para> | |
| 4904 | + C API Enhancements | |
| 4905 | + </para> | |
| 4906 | + <itemizedlist> | |
| 4907 | + <listitem> | |
| 4908 | + <para> | |
| 4909 | + Add several new functions to the C API for working with | |
| 4910 | + objects. These are wrappers around many of the methods in | |
| 4911 | + <classname>QPDFObjectHandle</classname>. Their inclusion | |
| 4912 | + adds considerable new capability to the C API. | |
| 4913 | + </para> | |
| 4914 | + </listitem> | |
| 4915 | + <listitem> | |
| 4916 | + <para> | |
| 4917 | + Add <function>qpdf_register_progress_reporter</function> to | |
| 4918 | + the C API, corresponding to | |
| 4919 | + <function>QPDFWriter::registerProgressReporter</function>. | |
| 4920 | + </para> | |
| 4921 | + </listitem> | |
| 4922 | + </itemizedlist> | |
| 4923 | + </listitem> | |
| 4924 | + <listitem> | |
| 4925 | + <para> | |
| 4926 | + Performance Enhancements | |
| 4927 | + </para> | |
| 4928 | + <itemizedlist> | |
| 4929 | + <listitem> | |
| 4930 | + <para> | |
| 4931 | + Improve steps <classname>QPDFWriter</classname> takes to | |
| 4932 | + prepare a <classname>QPDF</classname> object for writing, | |
| 4933 | + resulting in about an 8% improvement in write performance | |
| 4934 | + while allowing indirect objects to appear in | |
| 4935 | + <literal>/DecodeParms</literal>. | |
| 4936 | + </para> | |
| 4937 | + </listitem> | |
| 4938 | + </itemizedlist> | |
| 4939 | + </listitem> | |
| 4940 | + </itemizedlist> | |
| 4941 | + </listitem> | |
| 4942 | + </varlistentry> | |
| 4943 | + <varlistentry> | |
| 4822 | 4944 | <term>10.0.4: November 21, 2020</term> |
| 4823 | 4945 | <listitem> |
| 4824 | 4946 | <itemizedlist> | ... | ... |