Commit c97bd6323e7f8988b4ff24b913a37e683eeaacf6

Authored by Jay Berkenbilt
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>&lt;&lt;</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>
... ...