Commit fb86d2819e2f75abb084da8ff910a12d5b5382e6

Authored by Jay Berkenbilt
1 parent 8fc453b7

Clean up 10.2 release notes

Showing 1 changed file with 60 additions and 65 deletions
manual/qpdf-manual.xml
... ... @@ -5071,6 +5071,19 @@ print "\n";
5071 5071 <itemizedlist>
5072 5072 <listitem>
5073 5073 <para>
  5074 + Operations that work on combining pages are much better
  5075 + about protecting form fields. In particular,
  5076 + <option>--split-pages</option> and <option>--pages</option>
  5077 + now preserve interaction form functionality by copying the
  5078 + relevant form field information from the original files.
  5079 + Additionally, if you use <option>--pages</option> to select
  5080 + only some pages from the original input file, unused form
  5081 + fields are removed, which prevents lots of unused
  5082 + annotations from being retained.
  5083 + </para>
  5084 + </listitem>
  5085 + <listitem>
  5086 + <para>
5074 5087 By default, <command>qpdf</command> no longer allows
5075 5088 creation of encrypted PDF files whose user password is
5076 5089 non-empty and owner password is empty when a 256-bit key is
... ... @@ -5145,6 +5158,23 @@ print &quot;\n&quot;;
5145 5158 </listitem>
5146 5159 <listitem>
5147 5160 <para>
  5161 + Page splitting and merging operations, as well as
  5162 + <option>--flatten-rotation</option>, are better behaved
  5163 + with respect to annotations and interactive form fields. In
  5164 + most cases, interactive form field functionality and proper
  5165 + formatting and functionality of annotations is preserved by
  5166 + these operations. There are still some cases that aren't
  5167 + perfect, such as when functionality of annotations depends
  5168 + on document-level data that qpdf doesn't yet understand or
  5169 + when there are problems with referential integrity among
  5170 + form fields and annotations (e.g., when a single form field
  5171 + object or its associated annotations are shared across
  5172 + multiple pages, a case that is out of spec but that works in
  5173 + most viewers anyway).
  5174 + </para>
  5175 + </listitem>
  5176 + <listitem>
  5177 + <para>
5148 5178 The option
5149 5179 <option>--password-file=<replaceable>filename</replaceable></option>
5150 5180 can now be used to read the decryption password from a file.
... ... @@ -5190,6 +5220,15 @@ print &quot;\n&quot;;
5190 5220 <itemizedlist>
5191 5221 <listitem>
5192 5222 <para>
  5223 + This release includes numerous additions to the API. Not all
  5224 + changes are listed here. Please see the
  5225 + <filename>ChangeLog</filename> file in the source
  5226 + distribution for a comprehensive list. Highlights appear
  5227 + below.
  5228 + </para>
  5229 + </listitem>
  5230 + <listitem>
  5231 + <para>
5193 5232 Add <function>QPDFObjectHandle::ditems()</function> and
5194 5233 <function>QPDFObjectHandle::aitems()</function> that enable
5195 5234 C++-style iteration, including range-for iteration, over
... ... @@ -5208,14 +5247,6 @@ print &quot;\n&quot;;
5208 5247 </listitem>
5209 5248 <listitem>
5210 5249 <para>
5211   - Add <function>QUtil::get_current_qpdf_time</function>,
5212   - <function>QUtil::pdf_time_to_qpdf_time</function>, and
5213   - <function>QUtil::qpdf_time_to_pdf_time</function> for
5214   - working with PDF timestamp strings.
5215   - </para>
5216   - </listitem>
5217   - <listitem>
5218   - <para>
5219 5250 Add new helper classes for supporting file attachments, also
5220 5251 known as embedded files. New classes are
5221 5252 <classname>QPDFEmbeddedFileDocumentHelper</classname>,
... ... @@ -5228,19 +5259,6 @@ print &quot;\n&quot;;
5228 5259 </listitem>
5229 5260 <listitem>
5230 5261 <para>
5231   - Add <function>warn</function> to
5232   - <classname>QPDF</classname>'s public API.
5233   - </para>
5234   - </listitem>
5235   - <listitem>
5236   - <para>
5237   - <function>QPDFObjectHandle::is*</function> methods now return
5238   - false rather than crashing when called with an uninitialized
5239   - <classname>QPDFObjectHandle</classname> object.
5240   - </para>
5241   - </listitem>
5242   - <listitem>
5243   - <para>
5244 5262 Add a version of
5245 5263 <function>QPDFObjectHandle::parse</function> that takes a
5246 5264 <classname>QPDF</classname> pointer as context so that it
... ... @@ -5261,29 +5279,13 @@ print &quot;\n&quot;;
5261 5279 </listitem>
5262 5280 <listitem>
5263 5281 <para>
5264   - Add new functions <function>QUtil::pipe_file</function> and
5265   - <function>QUtil::file_provider</function> for sending the
5266   - contents of a file through a pipeline as binary data.
5267   - </para>
5268   - </listitem>
5269   - <listitem>
5270   - <para>
5271 5282 Add new versions of
5272 5283 <function>QPDFObjectHandle::replaceStreamData</function>
5273 5284 that take <classname>std::function</classname> objects for
5274 5285 cases when you need something between a static string and a
5275 5286 full-fledged StreamDataProvider. Using this with
5276   - QUtil::file_provider is a very easy way to create a stream
5277   - from the contents of a file.
5278   - </para>
5279   - </listitem>
5280   - <listitem>
5281   - <para>
5282   - Add option to <function>QUtil::double_to_string</function>
5283   - to trim trailing zeroes, which is on by default. Within the
5284   - qpdf library, this causes changes to output the from code
5285   - that places form XObjects and the code that flattens
5286   - rotations.
  5287 + <function>QUtil::file_provider</function> is a very easy way
  5288 + to create a stream from the contents of a file.
5287 5289 </para>
5288 5290 </listitem>
5289 5291 <listitem>
... ... @@ -5292,28 +5294,19 @@ print &quot;\n&quot;;
5292 5294 private, internal class, has been added to the public API.
5293 5295 See <filename>include/qpdf/QPDFMatrix.hh</filename> for
5294 5296 details. This class is for working with transformation
5295   - matrices.
  5297 + matrices. Some methods in
  5298 + <classname>QPDFPageObjectHelper</classname> make use of this
  5299 + to make information about transformation matrices available.
  5300 + For an example, see
  5301 + <filename>examples/pdf-overlay-page.cc</filename>.
5296 5302 </para>
5297 5303 </listitem>
5298 5304 <listitem>
5299 5305 <para>
5300   - Add
5301   - <function>QPDFPageObjectHelper::getMatrixForFormXObjectPlacement</function>,
5302   - which returns the transformation matrix required to map from
5303   - a form field's coordinate system into a specific rectangle
5304   - within the page. Also add a version of
5305   - <function>QPDFPageObjectHelper::placeFormXObject</function>
5306   - that initializes a <classname>QPDFMatrix</classname>
5307   - reference. For example, see
5308   - <filename>examples/pdf-overlay-page.cc</filename>.
5309   - </para>
5310   - </listitem>
5311   - <listitem>
5312   - <para>
5313   - Add method
5314   - <function>QPDFAcroFormDocumentHelper::addFormField</function>,
5315   - which adds a new form field, initializing the AcroForm
5316   - dictionary if needed.
  5306 + Several new methods were added to
  5307 + <classname>QPDFAcroFormDocumentHelper</classname> for
  5308 + adding, removing, getting information about, and enumerating
  5309 + form fields.
5317 5310 </para>
5318 5311 </listitem>
5319 5312 <listitem>
... ... @@ -5332,12 +5325,6 @@ print &quot;\n&quot;;
5332 5325 rectangles.
5333 5326 </para>
5334 5327 </listitem>
5335   - <listitem>
5336   - <para>
5337   - Add <function>QUtil::path_basename</function> to return the
5338   - last element of a path.
5339   - </para>
5340   - </listitem>
5341 5328 </itemizedlist>
5342 5329 </listitem>
5343 5330 <listitem>
... ... @@ -5362,7 +5349,7 @@ print &quot;\n&quot;;
5362 5349 <itemizedlist>
5363 5350 <listitem>
5364 5351 <para>
5365   - The <option>--flatten-rotations</option> option applies
  5352 + The <option>--flatten-rotation</option> option applies
5366 5353 transformations to any annotations that may be on the page.
5367 5354 </para>
5368 5355 </listitem>
... ... @@ -5373,7 +5360,15 @@ print &quot;\n&quot;;
5373 5360 containing page. This is compliant with older PDF versions.
5374 5361 Also detect if any form XObjects have any unresolved names
5375 5362 and, if so, don't remove unreferenced resources from them or
5376   - from the page that contains them.
  5363 + from the page that contains them. Unfortunately this has the
  5364 + side effect of preventing removal of unreferenced resources
  5365 + in some cases where names appear that don't refer to
  5366 + resources, such as with tagged PDF. This is a bit of a
  5367 + corner case that is not likely to cause a significant
  5368 + problem in practice, but the only side effect would be lack
  5369 + of removal of shared resources. A future version of qpdf may
  5370 + be more sophisticated in its detection of names that refer
  5371 + to resources.
5377 5372 </para>
5378 5373 </listitem>
5379 5374 <listitem>
... ...