Skip to content

Releases: PDFToolkit/pdf-reader

0.2.3 — Resolve optional declarations safely

Choose a tag to compare

@roukmoute roukmoute released this 14 Oct 22:50

Optional encryption and catalog-version declarations now use the bounded document resolver before feature validation. An absent or null /Encrypt, including an indirect null, does not request authentication. Malformed values remain parse errors; a non-null encryption dictionary raises the dedicated EncryptedPdfException without decrypting the source.

Indirect catalog /Version names and null values are accepted while preserving the original header and explicitly rejecting unsupported versions.

Validation: 342 tests and 813 assertions on PHP 8.3, 8.4 and 8.5, PHPStan, format checks, Composer platform/audit checks and independent pypdf/qpdf fixtures. Exact candidate: 8c7d013dafd6c5821eecc27af8c8af225d4de584, CI.

Changelog · Security boundary · Documentation

v0.2.2

Choose a tag to compare

@roukmoute roukmoute released this 14 Oct 22:19

Verified encrypted PDF trailers now raise EncryptedPdfException, which remains compatible with UnsupportedPdfFeature handlers. Applications can route authentication by the exception type without matching words in diagnostic messages.

Validation: 291 PHPUnit tests, PHPStan and PSR-12; exact candidate CI on PHP 8.3, 8.4 and 8.5, including independent pypdf/qpdf PDF fixtures. English and French security documentation is updated.

Reader 0.2.1 — Scope documentation

Choose a tag to compare

@roukmoute roukmoute released this 14 Oct 18:05

Correct a stale PDF 2.0 rejection sentence in both README editions and align the development branch alias with 0.2. No PHP runtime change.

Quality CI passed for the exact candidate a349dbd on PHP 8.3, 8.4 and 8.5, including all reader tests, analysis, formatting and independent PDF validation.

Reader 0.2.0 — PDF 2.0 object syntax

Choose a tag to compare

@roukmoute roukmoute released this 14 Oct 17:55

Accept PDF 2.0 headers and catalog version overrides in the bounded object reader. This enables optional PDF-to-HTML interpretation without coupling the core to external reading. Existing explicit rejections, including encrypted files, remain in place.

Add independently generated PDF 2.0 fixtures for classic cross-reference data, catalog overrides and object streams, with pypdf/qpdf validation. Update English and French scope documentation.

Validated candidate: 6af6805; 291 tests / 678 assertions locally on PHP 8.3, 8.4 and 8.5; Quality CI passed for all three versions with static analysis, formatting and independent PDF validators.

This is syntactic object reading, not automatic rendering, accessibility validation, encryption support or complete interpretation of every PDF 2.0 mechanism.

Reader 0.1.9 — Stable reference download

Choose a tag to compare

@roukmoute roukmoute released this 14 Oct 16:52

English

The English and French README now link to the stable PDF 1.7 standard download on the shared documentation site. Moving reference documents inside the core repository therefore preserves this reader documentation link. The downloaded PDF retains the original bytes and SHA-256.

This documentation release preserves the PHP API, reading behaviour, dependency constraints and locked versions.

Changelog: https://github.com/PDFToolkit/pdf-reader/blob/v0.1.9/CHANGELOG.md
Documentation: https://pdftoolkit.github.io/modules/reader/

Français

Les README anglais et français pointent désormais vers le téléchargement stable de la norme PDF 1.7 sur le site documentaire commun. Le rangement des documents de référence dans le dépôt du core conserve ainsi ce lien de la documentation du lecteur. Le PDF téléchargé garde ses octets et son empreinte SHA-256 d’origine.

Cette version documentaire conserve l’API PHP, le comportement de lecture, les contraintes de dépendances et leurs versions verrouillées.

Changelog : https://github.com/PDFToolkit/pdf-reader/blob/v0.1.9/CHANGELOG.fr.md
Documentation : https://pdftoolkit.github.io/fr/modules/reader/

v0.1.8

Choose a tag to compare

@roukmoute roukmoute released this 14 Oct 14:00

Accepts stable roukmoute/pdf:^0.7 alongside the existing supported core releases, while retaining an explicit, bounded reader for PDF 1.0–1.7. Core writer additions do not add PDF 2.0 parsing, decryption or import to this package.

Publication checks lock the already released core 0.6.2; runtime constraints stay stable and development tool versions are unchanged. README and architecture guides explain the boundary in English and French. PHP 8.3+ is required.

Validation: complete quality checks on PHP 8.3, 8.4 and 8.5, independent qpdf/pypdf structure and nested-page fixtures, and executable reader examples. Local compatibility checks also exercise the module with the core 0.7 candidate.

Changelog · Documentation · Packagist

v0.1.7

Choose a tag to compare

@roukmoute roukmoute released this 14 Oct 10:26

Accepts core 0.6 alongside the existing 0.2, 0.3, 0.4 and 0.5 series. The release lock uses published core 0.5.5; every other dependency version and commit is preserved.

Reading remains limited to PDF 1.0–1.7. A PDF 2.0 header or catalog version is explicitly refused. Module PHP sources, tests, fixtures and examples retain their exact bytes. Installation and compatibility guidance are updated in English and French.

Compatibility preflight against the local core 0.6 candidate passes 285 tests and 654 assertions on each of PHP 8.3, 8.4 and 8.5. PHPStan level 8, formatting, strict Composer validation, locked platform requirements and advisory checks pass.

Changelog · Documentation


Accepte le core 0.6 avec les séries existantes 0.2, 0.3, 0.4 et 0.5. Le lock de publication utilise le core publié 0.5.5 ; chaque autre version et commit de dépendance est conservé.

La lecture reste limitée aux PDF 1.0 à 1.7. Un en-tête ou une version de catalogue PDF 2.0 est explicitement refusé. Les sources PHP du module, tests, fixtures et exemples conservent leurs octets exacts. Les informations d’installation et de compatibilité sont mises à jour en anglais et en français.

La vérification de compatibilité avec le candidat local du core 0.6 réussit 285 tests et 654 assertions sur chacune des versions PHP 8.3, 8.4 et 8.5. PHPStan niveau 8, formatage, validation Composer stricte, exigences de plateforme du lock et contrôle des avis de sécurité réussissent.

Changelog · Documentation

v0.1.6

Choose a tag to compare

@roukmoute roukmoute released this 14 Oct 07:12

English is now the default for the README, module guides and complete release history. Full French versions are available through reciprocal language links, including security, example assets and fixture documentation.

Explanatory example comments are in English; executable tokens, output data, original binaries and the PHP API are unchanged. Validation locks use published roukmoute/pdf:0.5.4; other dependency versions and commits remain unchanged.

Validation: Composer strict metadata, platform requirements, locked advisory audit, tests, static analysis and formatting on PHP 8.3, 8.4 and 8.5; independent module fixture/example checks with qpdf and pypdf; local Markdown links and executable snippet parity.

English documentation · Documentation française · Packagist

See the English changelog and the French changelog.

v0.1.5

Choose a tag to compare

@roukmoute roukmoute released this 14 Oct 00:27

pdf-reader 0.1.5 is available through Packagist. A consumer now installs it with composer require pdftoolkit/pdf-reader:^0.1; the core is resolved automatically from the default Composer repositories.

Composer metadata links to the centralized module documentation. The development lock selects the published core 0.5.3 (74a03e821cfa1e9c78a2f86ade7a2bc26cfa05b8) while keeping all other locked tool versions. The PHP API, mechanisms and limits are unchanged.

Validation: Composer strict manifest, platform requirements and locked advisory audit; PHPUnit, PHPStan and coding style on PHP 8.3, 8.4 and 8.5; the repository's independent PDF checks. Published-source installation is verified through Packagist without VCS or path repositories.

v0.1.4

Choose a tag to compare

@roukmoute roukmoute released this 13 Oct 23:30

Publication de documentation pour pdftoolkit/pdf-reader.

  • La documentation commune est publiée à la racine.
  • La documentation du module lecteur possède une entrée stable.
  • Les guides communs, l'outillage et la publication du site appartiennent à PDFToolkit/pdftoolkit.github.io. Les guides des modules restent près du code et le site les construit depuis leurs versions publiées et leurs commits exacts.
  • Le README reflète la contrainte existante roukmoute/pdf:^0.2 || ^0.3 || ^0.4 || ^0.5.

L'API, les mécanismes du module, les dépendances et leurs versions verrouillées restent inchangés.

Validation : Composer strict, installation, exigences de plateforme, audit verrouillé, tests, analyse statique et formatage réussis. Le workflow Quality a réussi sur PHP 8.3, 8.4 et 8.5 pour le commit 866ae76621cd0ddea360f4121eb92767032b2233, avec les validations PDF indépendantes du dépôt. Les liens Markdown relatifs et git diff --check ont aussi été vérifiés.

Changelog de cette version