-
Introduce a new `--remove-acroform` option to remove the interactive form dictionary from the document catalog. Update related documentation, tests, and release notes to reflect this new feature. Fixes #1403
-
Fix identification of radio button widgets by relying on the absence of `Kids` arrays. Fix the exclusion of RadioButtonFields with parents. Fixes #1449
-
Tighten named destination validation in `QPDFOutlineDocumentHelper::r…
-
…Dest`: instead of accepting any Dictionary require a `/D` entry.
-
Reorder `no_ci_stop_if` call to avoid insertion of an invalid object into the object cache if the hint stream is invalid
-
…t resource handling in `generateTextAppearance`.
-
…ance`: copy stream data if shared references exceed threshold, ensuring safe updates.
-
…r replace the appearance stream content with the generated appearance.
-
…g: ensure checks for dictionary annotations, streamline appearance creation flow, and replace manual key access with methods.
-
…ification; update release notes accordingly. Fixes #1628
-
…hecks, replace manual key access with `FormNode` methods, and enhance maintainability.
-
… presence of a `/Parent` attribute as evidence that the node a form fields; however, it is also a (sometimes required) attribute of a pure widget annotation.
-
…roFormDocumentHelper` to use them instead of manual key checks
-
…_if` for improved error handling in `QPDFWriter::writeLinearized` and adjust argv parsing in `objects.cc`tests.
-
Fixes #1620
-
- Automatically repair missing or invalid `/Type` entries by setting them to `/Catalog`, unless in inspection mode. - Update related documentation and warnings to reflect this behavior.
-
…r improved clarity and safety. Update related methods and references accordingly.
-
…ed modularity and reusability. - Move methods from `QPDFAcroFormDocumentHelper` to `AcroForm` (`validate`, `invalidateCache`, `addFormField`, and more) to reduce duplication. - Update function calls and improve encapsulation by leveraging `AcroForm`. - Enhance comments and align with PDF specifications for better clarity.
-
…ion and improve code clarity.
-
- Move AcroForm-related methods (`analyze`, `traverseField`, `getOrCreateAcroForm`, etc.) from `QPDFAcroFormDocumentHelper` to the `AcroForm` class. - Update method calls across files to reflect changes. - Improve comments for methods to align with PDF specifications.
-
…s for consistency with refactored AcroForm structure.
-
…ion and leveraging shared components.
-
- Update class name and references in `FormField.hh` and `QPDFFormFieldObjectHelper.cc`. - Enhance comments to align with PDF specification, providing clearer descriptions of class functionality and attributes.
-
Add a new configurable limit `--max-stream-filters` to address excessive stream filters in damaged or specially constructed PDFs. Update related documentation, tests, and release notes to reflect this feature.
-
Introduce `qpdf::global::inspection_mode` for analyzing and repairing damaged PDFs with a restricted feature set. Update relevant code to enforce restrictions and add supporting test cases.
-
- Add warning with associated documentation links. - Update tests to reflect the new warning messages.
-
- Introduce `limits_error` method in `QPDFParser` for centralized limit-related error handling. - Enhance warnings and error messages with detailed limit identifiers (e.g., `parser-max-nesting`). - Refactor limit checks to improve maintainability and ensure uniformity in error reporting. - Update tests and output to reflect adjusted error handling approach.
-
…ted tests, documentation, and references across the codebase.
-
Enhance the `global` namespace by introducing `limit_errors` for tracking the number of exceeded limits. Update related tests and documentation to ensure functionality and clarity.
-
…pport for configurable global limits via `qpdf_global_get_uint32` and `qpdf_global_set_uint32`.
-
It is the user's responsibility to autoload bashcompinit. If we do it, we may overwrite a custom complete function. If we don't do it at all, it won't work out of the box. This fixes debian bug 1111509, reported by Vincent Lefèvre.