pdf_manipulator 1.0.6 copy "pdf_manipulator: ^1.0.6" to clipboard
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 .cmd extension 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
  • setup supports --force to re-download everything, --native to 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 with dart 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() with dispose(). Batch editing via pdf.edit(source). Create from scratch via pdf.build()
  • I/O: DataSource in, DataSink out — no file paths, no dart:io. Same code on every target. Engine reads only what it needs, never the full file
  • Errors: Typed PdfError sealed class — no more PlatformException
  • 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 pdfCompressor with unEmbedFonts set true for some pdfs.
  • bcf78e3 * Removed unnecessary catch blocks.
  • dc681b6 * Now pdfDecryption finishes with error on BadPasswordException and PdfException.
  • 22e58a9 * Fixed imagesToPdfs method not working for absolute file paths of files with names containing :.
  • 0d0a83f * Fixed imagesToPdfs method not working for android absolute file paths.
  • a31774e * Fixed imagesToPdfs method not working for android uris. * Fixed imagesToPdfs adding unnecessary padding to pdfs when createSinglePdf is set to false or default. * Updated example and example dependency.
  • 1dea7a8 * Added imagesToPdfs method for converting images to single pdf or multiple pdfs.
  • c21c1f1 * Added pdfEncryption method for pdf encryption. * Added pdfDecryption method for pdf decryption. * Added pdfValidityAndProtection method for getting pdf validity and protection info.
  • c28db0a * Fixed pdfPagesSize method OOM issue also removed redundant properties.
  • 81ae92c * Added positionType in pdfWatermark method 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 pdfWatermark method for watermarking pdf.
  • 6886f97 * Added unEmbedFonts for pdfCompressor.
  • c192813 * Added pdfCompressor method for compressing pdf.
  • 48df0f6 * pdfUri is replaced with pdfPath as now pdfPath is capable of taking care both URI path and absolute file path. * pdfsUris is replaced with pdfsPaths as now pdfsPaths is 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
69
likes
160
points
1.37k
downloads

Documentation

API reference

Publisher

verified publisherwhuppi.com

Weekly Downloads

Cross-platform PDF toolkit for Flutter. Merge, split, render, extract, search, sign, encrypt, convert, build from scratch. Rust engine, off the main thread.

Repository (GitHub)
View/report issues
Contributing

Topics

#pdf #ffi #wasm #document #encryption

License

MIT (license)

Dependencies

code_assets, crypto, ffi, hooks, logging, meta, package_config, path, web

More

Packages that depend on pdf_manipulator