pdf_manipulator 1.0.6
pdf_manipulator: ^1.0.6 copied to clipboard
Cross-platform PDF toolkit for Flutter. Merge, split, render, extract, search, sign, encrypt, convert, build from scratch. Rust engine, off the main thread.
Changelog #
1.0.6 #
- Fixed release build routing for consumer builds (PR #80, @Binary-Parse)
- Fixed Windows NDK linker
.cmdextension for Android cross-compilation (PR #81, @Binary-Parse) - Added CI verify tests — release builds now verified on all 6 targets (Android, iOS, macOS, Linux, Windows, Web)
Commits since v1.0.5 (9)
- f53de02 stamp: asset hashes for v1.0.6
- 9ea4073 release: v1.0.6
- c8ff236 chore: promote dev to prod (#88)
- cc4f9b8 Merge branch 'prod' into dev
- 0679c51 chore: add 1.0.6 changelog entries (#86)
- ce9d7ec fix(ci): release gate only triggers on new changelog versions (#85)
- 5083450 refactor(ci): capability-based architecture + verify release builds (#82)
- 0132518 fix(hook): append .cmd to the NDK clang linker on Windows hosts (Android cross-compile fails) (#81)
- 453b39e fix(hook): add link.dart passthrough, build.json, release-build tests (#80)
1.0.5 #
- Fixed README version not stamped on pub.dev
- Updated tracking links for web build hook support
Commits since v1.0.4 (4)
- 8d3e363 stamp: asset hashes for v1.0.5
- 86ade5b release: v1.0.5
- 1288d12 chore: promote dev to prod (#79)
- 694c96e chore: 1.0.5 release — fix README stamp + tracking links (#78)
1.0.4 #
- Web setup now verifies all assets against release hashes — detects stale files automatically
setupsupports--forceto re-download everything,--nativeto pre-fetch the native binary
Commits since v1.0.3 (6)
- 902cf4f stamp: asset hashes for v1.0.4
- d1266fb release: v1.0.4
- 5cd981f chore: promote dev to prod (#77)
- cdabb02 Merge branch 'prod' into dev
- 8dbad3b chore: add 1.0.4 changelog entries (#76)
- d912aa1 feat: unified asset resolver — same waterfall for native and web (#75)
1.0.3 #
- Fixed changelog on pub.dev
Commits since v1.0.2 (10)
- 6bbaaa8 stamp: asset hashes for v1.0.3
- 1339dc4 release: v1.0.3
- 9b228dc chore: promote dev to prod (#73)
- 223c1a4 Merge branch 'prod' into dev
- 3e0ebd8 chore: add 1.0.3 changelog entries (#72)
- 6a33c47 chore: promote dev to prod (#71)
- 77c8738 feat(ci): preview filtered changelog in CI logs before publish approval (#70)
- c7ffae8 docs: move slopfairy manual comments to workspace rule
- d4471ac docs: add slopfairy manual comments + changelog preview recipes
- ab0a74e fix(ci): same-file read-write race in stamp-changelog + bash 3.2 compat
1.0.2 #
- Fixed changelog on pub.dev missing commit history between versions
Commits since v1.0.1 (10)
- e420ba0 stamp: asset hashes for v1.0.2
- 1154d43 release: v1.0.2
- 0b610c0 fix(ci): edit asset_hashes.dart between markers instead of overwriting
- 91bd9ad fix(ci): add doc comment to generated asset_hashes.dart constant
- bd78225 fix(ci): version-scoped staging branch + updated UPDATING.md
- eb2e822 fix(ci): delete stale _release-staging before push to avoid lock conflicts
- 6990128 fix(ci): fall back to HEAD when tag doesn't exist yet in commits_collapsible
- 0ddc9ce fix(ci): correct repo fallback to whuppi/pdf_manipulator
- 83b44cb feat(ci): rewrite release pipeline — single release.sh, changelog builder, idempotent (#68)
- 392aaa8 fix(ci): version-level release concurrency + branch-file gate (#67)
1.0.1 #
- Added public API doc comments across all exported classes and methods
- Minimum Android API corrected from 35 to 21 (Android 5.0)
- Setup command is now
flutter pub run pdf_manipulator:setup(avoids triggering native build hooks withdart run)
Commits since v1.0.0 (48)
- 4ed5b3b release: v1.0.1
- 722b2dd chore: add 1.0.1 changelog entry (#65)
- d04b556 chore: add 1.0.1-dev.0 prerelease changelog entry (#64)
- 52b6d52 ci: bump the actions group across 1 directory with 5 updates (#57)
- 9c798ee fix(ci): notify maintainer to recreate dependabot PRs on new pushes
- 4ade698 docs: explain Windows DLL lock in dispose test (#60)
- e8dee7b fix: analyzer clean + web CI + native dispose safety
- ea9c961 ci: write bore port to artifact for API access
- 88197b4 ci: split setup/keepalive steps so SSH port shows immediately
- 07749ec ci: fix bore version (0.6.0), serveo was dead
- 4b4d6e5 ci: raw sshd + serveo.net tunnel (no binary downloads)
- 4a4bd3a ci: raw sshd + bore tunnel, no tmate, 5hr timeout
- 015b951 ci: update debug-ssh workflow
- 5b71adf ci: add debug-ssh workflow for interactive CI debugging
- 5874c1a chore: bump Flutter 3.44.0 → 3.44.1 (#50)
- a26b3c2 chore: add Dependabot for GitHub Actions updates (#56)
- 684b840 docs: fix rendering + add fvmrc pinning section (#54)
- c06e2d9 fix: flutter-upgrade PRs created as draft (#53)
- 9d18776 fix: slopfairy PR#51 suggestions — printf credentials + remove redundant gitignore (#52)
- a548f42 feat: secrets.sh + per-env pub.dev credentials (#51)
- 8ac73ea fix: add vendor false_secrets at stamp-tag time (#49)
- 53c52aa fix: force-add Cargo.lock in stamp-tag (gitignored in vendor) (#48)
- cbae62b fix: auto-detect wasm-bindgen-cli version from Cargo.lock (#47)
- 3e4e5f6 fix: force-push temp branch + stale comment refs (#46)
- 81a789f fix: push stamped commit before creating release tag (#45)
- 90617d2 fix: mode guard was rejecting --github-notes (#44)
- a07b935 fix: install snippets on release, generic version, cancel-in-progress (#43)
- 8b4387f feat: unified release pipeline with approval gate (#42)
- 7b1fac9 fix: move asset_hashes.dart to lib/src/hook/ (#41)
- 7637a29 fix: false_secrets for test PEM keys + pin example .fvmrc (#40)
- b16ccc4 fix: single stamp_release.sh for all pre-publish stamping (#39)
- 51c845b fix: API-based asset hashes, MSVC-first Windows, git identity (#38)
- 6d44016 fix: publish fails on dirty git + create-release YAML syntax (#36)
- 5909946 fix: YAML syntax error in create-release.yml (#35)
- ab2e79f fix: auto-generate commit lists + asset hashes at publish time (#34)
- 6adbed3 docs: add rebuild-release recovery flow to UPDATING.md (#33)
- 193c460 fix: compile per-platform — CI builds only the targets it installed (#32)
- f874171 fix: add validation gate to publish.yml (#31)
- 8da554d fix: quote YAML expression in publish.yml (#30)
- 7fc4ae6 fix: publish.yml errors on branch push — replace all bare inputs.tag (#29)
- d5630a0 docs: fix UPDATING.md release section — correct workflow names, document auto-trigger chain
- 2d6d65c fix: publish.yml fails on branch push due to inputs.tag in concurrency
- 26ce093 feat!: cross-platform Rust engine, streaming I/O, web WASM (#28)
- 7456369 chore: rename main → prod (workflows, docs, ruleset) (#26)
- 8dcc13f ci: commit-msg hook (merge blocker + printf), promotion-check, hooksPath docs (#23)
- 074868f ci: fix release-please config and PR formatting (#21)
- 945a51f ci: add release-please + tag-triggered release pipeline (#19)
- e5e698e ci: enforce conventional commits via hook + PR title check (#17)
1.0.0 #
Complete ground-up rewrite. New engine, new API, cross-platform. See the migration guide for upgrading from the old Android-only version.
What changed #
- Engine: pdf_oxide (Rust, MIT/Apache-2.0) replaces the previous Android-only backend
- Targets: iOS, Android, macOS, Windows, Linux, Web — previously Android only
- API: Instance-based
Pdf()withdispose(). Batch editing viapdf.edit(source). Create from scratch viapdf.build() - I/O:
DataSourcein,DataSinkout — no file paths, nodart:io. Same code on every target. Engine reads only what it needs, never the full file - Errors: Typed
PdfErrorsealed class — no morePlatformException - Performance: Every operation runs off the main thread. Zero UI jank. No full-file buffers
- SDK: Requires Dart >=3.10.0
Capabilities #
- Open and inspect (page count, version, dimensions, metadata, encryption, permissions)
- Merge, split, split by size, split by bookmarks
- Extract pages, delete pages, reorder, move page
- Rotate (per-page and all pages)
- Compress with image optimization
- Watermark (styled, positioned — sealed PdfWatermarkPosition with center/corner/tiled/exact, foreground/background layer)
- Encrypt (4 algorithms, 8 permission flags) and decrypt
- Digital signatures (inspect, verify, sign via PKCS12/PEM)
- Extract text, Markdown, HTML
- Search text with bounding rectangles
- Render pages to RGBA images (Stream)
- Extract embedded images (Stream)
- PDF/A and PDF/UA validation
- Page and document classification
- Convert to/from DOCX, PPTX, XLSX
- PdfEditor — open once, mutate many, save once (full rewrite or incremental)
- PdfBuilder — create PDFs from scratch (text, headings, images, form fields, links, columns, footnotes)
- Form fields: text, checkbox, combo box, push button, signature
- Stamp annotations (14 built-in types + image stamps)
- Font unembedding, image resize, crop margins
- Embed files, erase regions, flatten forms/annotations
- Redaction (add, count, apply, scrub metadata)
- PDF/A conversion
- Resource pruning on GC save
- Images to PDF
- 21 sugar methods on PdfOperations extension
Commits since initial (75)
- d391001 release: v1.0.0
- 4d37d8e feat!: v1.0.0 — cross-platform Rust engine, streaming I/O, web WASM (#55)
- 67edc60 add pre-commit hook: reject commits with gitignored files
- da16d8a untrack example/pubspec.lock (gitignored, should never have been tracked)
- 9a3dc68 fix: .pubignore for vendor/ + compile WASM before web tests
- 02e92a5 fix(ci): checkout in workflows before local composite actions
- 55d9e58 ci: 10 composite actions, zero duplication, test-first flow
- e6bf54b release: manual re-trigger + overwrite existing releases
- 9328919 ci: split WASM into its own compile job
- dfcd65f fix: WASM target + Rust warnings in release CI
- 2dbb00e hook: rewrite using native_toolchain_rust patterns
- 28daa58 hook: use StaticLinking for iOS + install both device and sim targets
- c8f4bfe hook: set NDK linker for Android cargo cross-compilation
- 4e72a4a ci: add x86_64-linux-android rust target for Android emulator tests
- c9c26ab ci: fix android emulator-runner cd not persisting between commands
- eef11c8 ci: commit .metadata, remove destructive flutter create
- f144ba5 ci: fix Android + iOS integration test failures
- 6b9e7d7 updating.md: add submodule commit discipline (3-step sequence)
- bf50a39 submodule: update to include all Rust patches
- 8fcec5f ci: fix pub get failure — skip example deps in Dart-only jobs
- a62a36b roadmap: add upstream v0.3.48 office conversion features
- 621f091 fix upstream URL + expand S1 bump recipe
- 8e67064 provenance: link to fork repo + branch, document fork convention
- b93b9ec v1.0.0 API redesign + web feature parity + doc cleanup
- e7e0338 editor: add missing addStamp + addWatermarkPositioned wrappers
- 4ba4264 fix migration guide + expand contributing
- 0374c59 readme: feature×platform matrix, docs table, community files
- c0e712c bump to 1.0.0, fix stale README references
- 581e844 v1.0.0 — complete ground-up rewrite
- a99fbdb Make plugin compatible with Gradle 8+ while keeping support for older versions
- 4a0102b Update issue templates
- 257bc10 Update issue templates
- 9dc0251 * Fixed error "Build file '\pdf_manipulator\android\build.gradle' should not contain a package statement".
- 8d17db2 * Attempts to fix "x + width must be <= bitmap.width()" exception on some devices in some case of PDF compressing. * Updated documentation regarding PlatformException in Release build: AbstractITextEvent is only for internal usage #2.
- 8e7c094 Update README.md
- 51a54b6 Update README.md
- 939c73f Update README.md
- bbf346f Update README.md
- ad48def Update README.md
- 51eac08 * Updated pub version.
- 5531a95 * Updated dependency.
- 4a787c1 * Pub version update.
- 2a40976 Merge remote-tracking branch 'origin/master'
- bd9155e * Added new description.
- 30ab01b Update README.md
- 2603470 * Updated documentation. * Improved example app.
- bf5ca20 Merge branch 'master' of https://github.com/chaudharydeepanshu/pdf_manipulator
- 083f86c Update README.md
- aab073a Merge branch 'master' of https://github.com/chaudharydeepanshu/pdf_manipulator
- c8b771e Create LICENSE
- 76e31b2 Update README.md
- 64d4388 * Fixes crash on
pdfCompressorwithunEmbedFontsset true for some pdfs. - bcf78e3 * Removed unnecessary catch blocks.
- dc681b6 * Now
pdfDecryptionfinishes with error on BadPasswordException and PdfException. - 22e58a9 * Fixed
imagesToPdfsmethod not working for absolute file paths of files with names containing:. - 0d0a83f * Fixed
imagesToPdfsmethod not working for android absolute file paths. - a31774e * Fixed
imagesToPdfsmethod not working for android uris. * FixedimagesToPdfsadding unnecessary padding to pdfs whencreateSinglePdfis set to false or default. * Updated example and example dependency. - 1dea7a8 * Added
imagesToPdfsmethod for converting images to single pdf or multiple pdfs. - c21c1f1 * Added
pdfEncryptionmethod for pdf encryption. * AddedpdfDecryptionmethod for pdf decryption. * AddedpdfValidityAndProtectionmethod for getting pdf validity and protection info. - c28db0a * Fixed
pdfPagesSizemethod OOM issue also removed redundant properties. - 81ae92c * Added
positionTypeinpdfWatermarkmethod which provides various predefined and allows providing custom watermark positions.* AddedpdfPagesSizemethod for getting size info of pages of pdf. * AddedcustomPositionXCoordinatesList,customPositionYCoordinatesListinpdfWatermark` method for more fine controlling of watermark position. - 18a5dc9 * Added
pdfWatermarkmethod for watermarking pdf. - 6886f97 * Added
unEmbedFontsforpdfCompressor. - c192813 * Added
pdfCompressormethod for compressing pdf. - 48df0f6 *
pdfUriis replaced withpdfPathas nowpdfPathis capable of taking care both URI path and absolute file path. *pdfsUrisis replaced withpdfsPathsas nowpdfsPathsis capable of taking care both URI paths and absolute file paths. * Fixed issue of not being able to use absolute file paths. * Flushing pdfWriters when splitting documents for trying to fix OOfM error in some cases. - db77334 * Support for rotating, deleting and reordering pdf pages. * Fixes OOfM error in some cases. * Fixes few errors in splitting by byte size.
- 439b37d new pub.dev version
- dcd3568 typo fix
- 42ea493 dependencies updated
- b4143c9 Update README.md
- cb740ed Update LICENSE
- 1bb42a3 Update README.md
- 87a7c36 added pdf page deleter functionality
- 90aff66 added other split pdf functions
- d903a62 Initial commit