Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: fulgur-rs/flpdf

v0.1.6

07 Jun 12:39
@github-actions github-actions
595a7d4
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

  • fix(outline_dest_remap): saturating /Count accumulation (flpdf-35z) by @mitsuru in #273
  • feat(default_appearance): /DA parser (font/size/color) [flpdf-9hc.9.3] by @mitsuru in #274
  • feat(standard_font_metrics): Adobe Core14 glyph width tables [flpdf-9hc.9.4] by @mitsuru in #275
  • feat(appearance): Tx text-field appearance stream renderer [flpdf-9hc.9.5] by @mitsuru in #276
  • feat(outline): OutlineDocumentHelper — Pdf::outline() iterable outline tree handle (flpdf-9hc.18.5) by @mitsuru in #287
  • feat(appearance): Btn checkbox/radio/pushbutton appearance renderer [flpdf-9hc.9.6] by @mitsuru in #277
  • feat(appearance): Ch combo/list appearance renderer [flpdf-9hc.9.7] by @mitsuru in #278
  • feat(page_annotation_enum): per-page annotation enumeration + widget→field linkage [flpdf-9hc.9.2] by @mitsuru in #279
  • feat(page_annotation_flatten): flatten annotations into page content [flpdf-9hc.9.8] by @mitsuru in #280
  • feat(cli): --flatten-annotations / --generate-appearances / --flatten-rotation [flpdf-9hc.9.10] by @mitsuru in #281
  • test(cli): observable-equivalence suite for AcroForm/annotation transforms [flpdf-9hc.9.11] by @mitsuru in #282
  • feat(filters): passthrough codecs + show-stream binary marker (flpdf-9hc.7.4) by @mitsuru in #283
  • fix(outline): resolve indirect /Title + decode UTF-16BE titles [flpdf-289y] by @mitsuru in #288
  • feat(filters): explicit passthrough + LZWEncode-unsupported in dispatch (flpdf-9hc.7.5) by @mitsuru in #284
  • test(filters): multi-filter chains for LZW/passthrough codecs (flpdf-9hc.7.6) by @mitsuru in #285
  • test(cli): --stream-data x {LZW,DCT,JBIG2,JPX,CCITT} coverage (flpdf-9hc.7.7) by @mitsuru in #286
  • fix(resources): degrade gracefully on undecodable page /Contents [flpdf-s9s] by @mitsuru in #289
  • fix(cli): requires-password returns 3 for weak-crypto file with correct password (flpdf-63g) by @mitsuru in #290
  • docs(signed-pdf): add signed-PDF policy & scope doc [flpdf-9hc.22.9] by @mitsuru in #291
  • docs(rules): add public-API documentation review patterns [flpdf-l90q] by @mitsuru in #292
  • docs: sweep internal tracker noise from public-API doc comments [flpdf-cmlw] by @mitsuru in #294
  • fix(linearization): share QPDF_BINARY_MARKER so --linearize emits qpdf marker [flpdf-9hc.30] by @mitsuru in #295
  • feat(extract): single-page extract primitive [flpdf-5h5.3] by @mitsuru in #293
  • docs: complete public-API doc — # Errors / # Examples / intra-doc links [flpdf-xvv5] by @mitsuru in #297

Full Changelog: v0.1.5...v0.1.6

Contributors

mitsuru
Assets 2
Loading

v0.1.5

06 Jun 07:25
@github-actions github-actions
5b4986b
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

  • feat(reader): add borrowed object resolution by @mitsuru in #246
  • Refactor internal resolve call sites to borrow objects by @mitsuru in #247
  • fix(linearization): match qpdf nbits_shared_identifier formula (flpdf-9hc.20.22) by @mitsuru in #248
  • fix(linearization): always populate shared_hints to match qpdf (flpdf-vvl) by @mitsuru in #249
  • fix(json,cli): apply DecodeLevel to inline/file stream payloads (flpdf-5st) by @mitsuru in #207
  • feat(page_closure): per-page transitive object closure walker by @mitsuru in #250
  • feat(page_splice): surgical /Pages /Kids splice with /Count maintenance by @mitsuru in #251
  • Add signature field inspection API by @mitsuru in #252
  • feat(object_copy): cross-document object copier (renumber + cycle handling) by @mitsuru in #253
  • [codex] Add signature rewrite impact checks by @mitsuru in #254
  • Add AcroForm document helper by @mitsuru in #255
  • feat(signatures): /AcroForm /SigFlags read, preserve, surface, clear (flpdf-9hc.22.6) by @mitsuru in #256
  • feat(signatures): assert incremental write preserves signed /ByteRange (flpdf-9hc.22.4) by @mitsuru in #259
  • Strip signatures with remove-restrictions by @mitsuru in #258
  • Refuse full rewrites of signed PDFs by @mitsuru in #257
  • CLI: signed-PDF flag plumbing — Error::Signed mapping + AC matrix (flpdf-9hc.22.7) by @mitsuru in #260
  • docs: add Gemini review pattern rules (.claude/rules) by @mitsuru in #262
  • fix(signatures): resolve indirect /FT in walk_signature_rewrite_field (flpdf-967) by @mitsuru in #264
  • Add AcroForm field metadata traversal by @mitsuru in #261
  • /Rotate flattening (CTM + box transform) (flpdf-9hc.9.9) by @mitsuru in #263
  • fix(acroform): bound reference-chain depth in collect_reachable_refs (flpdf-qjx) by @mitsuru in #265
  • perf(page_closure): use resolve_borrowed in BFS to avoid full clone (flpdf-do3) by @mitsuru in #266
  • feat(name_number_tree): generic name/number tree iteration (flpdf-9hc.18.4) by @mitsuru in #267
  • feat(page_labels): PageLabelDocumentHelper + build_number_tree (flpdf-9hc.18.6) by @mitsuru in #268
  • docs(flpdf-5h5.8): page-op API rustdoc + runnable examples by @mitsuru in #269
  • test(outline_dest_remap): recursion-guard regression tests (flpdf-ypq) by @mitsuru in #270
  • docs(flpdf): fix broken rustdoc intra-doc links under -D warnings (flpdf-q8w) by @mitsuru in #271

Full Changelog: v0.1.4...v0.1.5

Contributors

mitsuru
Loading

v0.1.4

30 May 09:42
@github-actions github-actions

Choose a tag to compare

  • flpdf-9hc.12.1: Content stream tokenizer (operators + operands) by @mitsuru in #140
  • flpdf-9hc.12.2: --normalize-content writer by @mitsuru in #141
  • flpdf-9hc.12.3: --coalesce-contents (combine /Contents array) by @mitsuru in #142
  • flpdf-9hc.12.4: --remove-unreferenced-resources=auto/yes/no by @mitsuru in #143
  • flpdf-9hc.12.5: --compress-streams=y/n by @mitsuru in #144
  • flpdf-9hc.12.6: --newline-before-endstream emitter by @mitsuru in #145
  • flpdf-9hc.12.7: CLI wiring for 5 optimization flags by @mitsuru in #146
  • flpdf-9hc.12.8: E2E optimization flag matrix tests by @mitsuru in #147
  • [8.1] Page range syntax parser (:odd/:even position-based, qpdf-verified) (flpdf-9hc.8.1) by @mitsuru in #148
  • [8.4] /Rotate manipulation (set/add, i64-normalized) (flpdf-9hc.8.4) by @mitsuru in #161
  • [8.2] Page selection plan (single document) (flpdf-9hc.8.2) by @mitsuru in #150
  • [8.5] --rotate flag parser (flpdf-9hc.8.5) by @mitsuru in #151
  • [8.3] Multi-input page list combiner (flpdf-9hc.8.3) by @mitsuru in #152
  • [8.7] --split-pages chunked output (flpdf-9hc.8.7) by @mitsuru in #153
  • [8.8] Page tree rebuild after extraction/merge/rotate (flpdf-9hc.8.8) by @mitsuru in #154
  • [8.6] --collate combinator (round-robin) (flpdf-9hc.8.6) by @mitsuru in #155
  • [8.9] Resource pruning on extracted subsets (flpdf-9hc.8.9) by @mitsuru in #156
  • [8.10] Outline / named-destination remap (indirect/dict/direct forms) (flpdf-9hc.8.10) by @mitsuru in #157
  • [8.11] AcroForm field preservation across extract (flpdf-9hc.8.11) by @mitsuru in #158
  • [8.12] CLI: --pages/--rotate/--split-pages/--collate plumbing (flpdf-9hc.8.12) by @mitsuru in #159
  • [8.13] Tests: page-op matrix vs qpdf 11.9.0 (flpdf-9hc.8.13) by @mitsuru in #160
  • flpdf-9hc.18.1: PageDocumentHelper (pages traversal/mutation API) by @mitsuru in #162
  • flpdf-9hc.18.3: PageObjectHelper (per-page typed accessors) by @mitsuru in #163
  • flpdf-9hc.18.7: FileSpec + EmbeddedFileStream typed helpers by @mitsuru in #164
  • flpdf-9hc.18.8: Annotation + FormField typed object helpers by @mitsuru in #165
  • [flpdf-9hc.10.1] /Names /EmbeddedFiles name tree reader by @mitsuru in #166
  • [flpdf-9hc.10.2] /Names /EmbeddedFiles name tree writer (insert/delete with rebalance) by @mitsuru in #167
  • [flpdf-9hc.10.3] /Filespec dict construction (/F /UF /Type /EF /Params /Desc /AFRelationship) by @mitsuru in #168
  • [flpdf-9hc.10.4] Add attachment from disk (FlateDecode, observable-equivalent) by @mitsuru in #169
  • [flpdf-9hc.10.5] Remove attachment by key (reachability-based GC, /AF cleanup) by @mitsuru in #170
  • [flpdf-9hc.10.6] List attachments (with --verbose detail) by @mitsuru in #176
  • [flpdf-9hc.10.7] Show / extract attachment to stdout or file by @mitsuru in #172
  • [flpdf-9hc.10.8] Copy attachments from another document (with --prefix) by @mitsuru in #173
  • [flpdf-9hc.10.9] CLI: --add/-remove/-list/-show/-copy-attachments flags by @mitsuru in #174
  • [flpdf-9hc.10.10] Tests: attachment lifecycle round-trip + qpdf cross-check by @mitsuru in #175
  • remove_attachment GC: replace ad-hoc exclude-set logic with /Root mark-and-sweep (flpdf-eg3) by @mitsuru in #177
  • page_split: --split-pages=1 emits single-number -N.pdf (qpdf parity, flpdf-s5e) by @mitsuru in #178
  • Support Unicode attachment filenames by @mitsuru in #179
  • ci: mirror fulgur test platform matrix (arm Linux, macOS, coverage) by @mitsuru in #180
  • flpdf-9hc.13.1: --min-version / --force-version honored on incremental path by @mitsuru in #181
  • flpdf-9hc.13.2: default /ID is fresh random per save (ISO 32000-1 §14.4) by @mitsuru in #182
  • flpdf-9hc.13.4: --static-id warns it is test-only; pin qpdf byte parity by @mitsuru in #183
  • flpdf-9hc.13.5: accept --no-original-object-ids (top-level + rewrite) by @mitsuru in #184
  • [sub-1] flpdf-9hc.6.1 — Stream decompression in QDF mode (safe filters) + LZWDecode + WriteOptions::qdf by @mitsuru in #196
  • [sub-2] flpdf-9hc.6.2 — Force ObjectStreamMode::Disable in QDF by @mitsuru in #185
  • [sub-4] flpdf-9hc.6.4 — Emit %QDF-1.0 header marker by @mitsuru in #186
  • [sub-5] flpdf-9hc.6.5 — Emit %% Original object ID comments (qpdf wording) by @mitsuru in #187
  • [sub-6] flpdf-9hc.6.6 — Force classic xref table in QDF by @mitsuru in #188
  • [sub-3] flpdf-9hc.6.3 — QDF body+trailer formatting (sorted keys, multiline) by @mitsuru in #189
  • [sub-7] flpdf-9hc.6.7 — fix_qdf library (Length/xref/Size/startxref repair) by @mitsuru in #190
  • [sub-12] flpdf-9hc.6.12 — QDF writer indirect /Length H 0 R + holder by @mitsuru in #191
  • [sub-m41] flpdf-m41 — parser recovers indirect /Length via endstream scan by @mitsuru in #192
  • [sub-13] flpdf-9hc.6.13 — qdf_fix.rs token-aware hardening by @mitsuru in #193
  • [sub-8] flpdf-9hc.6.8 — CLI --qdf flag + qdf-fix subcommand by @mitsuru in #194
  • [sub-9] flpdf-9hc.6.9 — QDF round-trip + qdf-fix end-to-end matrix by @mitsuru in #198
  • [sub-10] flpdf-9hc.6.10 — QDF framing parity (object-0 suppression + inter-object blank line) by @mitsuru in #197
  • QDF followups: write_qdf canonical, fix_qdf holder validation, xref-authoritative indirect /Length (flpdf-9hc.24/.25/.27) by @mitsuru in #199
  • QDF followups 2: per-invocation temp dirs + whole-file QDF detection (flpdf-9hc.26/.28) by @mitsuru in #200
  • fix(cli): silence --static-id warning on top-level qpdf-shaped alias (flpdf-4x6) by @mitsuru in #201
  • feat(writer): incremental generate-mode ObjStm packing (flpdf-9hc.5.9) by @mitsuru in #202
  • [flpdf-jcd.4] feat(filters): add PNG predictor encode path by @mitsuru in #203
  • [flpdf-jcd.6] feat(writer,cli): add --stream-data flag by @mitsuru in #204
  • fix(linearization/plan): propagate /Parent-walk resolve errors (flpdf-ws2) by @mitsuru in #206
  • [flpdf-jcd.7] test: multi-filter chain coverage by @mitsuru in #205
  • fix(cli,json_inspect): side-file naming uses bare object number (flpdf-rq1) by @mitsuru in #208
  • fix(test,ci): tolerate qpdf 12 zero-page --check crash, re-enable qpdf on Windows/macOS CI (flpdf-d4k) by @mitsuru in #209
  • test(compat_matrix_baseline): scope /ID elision to trailer/xref-stream dicts (flpdf-d6j) by @mitsuru in #210
  • chore(license): align LICENSE-APACHE with canonical Apache 2.0 text by @mitsuru in #212
  • feat(linearization): variable-width param dict integers (flpdf-9hc.20.25) by @mitsuru in #211
  • test(writer): combined-paths regression for incremental Generate ObjStm (flpdf-9hc.5.12) by @mitsuru in #213
  • test(json-diff): qpdf JSON v2 schema-diff corpus runner (flpdf-9hc.11.14) by @mitsuru in #215
  • docs(linearization): correct shared-hint table to "1-object-per-group" (M=N) (flpdf-9hc.20.21) by @mitsuru in #214
  • fix(json-inspect): emit b: for non-text PDF strings per qpdf JSON v2 by @mitsuru in #216
  • feat(linearization): populate per-page content_length hint fields (flpdf-602) by @mitsuru in #217
  • docs(spec): align core design with shipped decrypt + deferred re-encrypt (flpdf-p64.8) by @mitsuru in #218
  • feat(security): /Encrypt dictionary builder for V=1/V=2 (flpdf-9hc.4.1) by @mitsuru in #219
  • feat(security): /Encrypt di...
Read more

Contributors

mitsuru
Loading

v0.1.3

16 May 06:07
@github-actions github-actions

Choose a tag to compare

  • Move flpdf publish dry-run from CI to release-prepare by @mitsuru in #92
  • flpdf-9hc.5.1: ObjStm eligibility predicate (per-object) by @mitsuru in #93
  • flpdf-9hc.5.2: ObjStm packing planner: group eligible objects into batches by @mitsuru in #94
  • flpdf-9hc.5.3: ObjStm body emitter (header pairs + object bodies) by @mitsuru in #95
  • flpdf-9hc.5.4: ObjStm stream wrapping with /FlateDecode by @mitsuru in #96
  • flpdf-9hc.5.5: Mode dispatch: WriteOptions.object_streams field by @mitsuru in #97
  • flpdf-9hc.5.6: Writer integration: route eligible objects through ObjStm packer by @mitsuru in #98
  • flpdf-9hc.5.7: Force-upgrade xref form to Stream when ObjStm batches are present by @mitsuru in #99
  • flpdf-9hc.5.10: CLI: --object-streams=preserve|disable|generate flag by @mitsuru in #100
  • flpdf-9hc.5.11: Tests: 3 modes vs multi-ObjStm fixtures + qpdf cross-check by @mitsuru in #101
  • Add pages::page_content_bytes helper (flpdf-avm.1) by @mitsuru in #102
  • Add pages::resolve_inherited_resources helper (flpdf-avm.2) by @mitsuru in #105
  • Add Pdf::open_mem / open_mem_owned in-memory openers (flpdf-avm.3) by @mitsuru in #104
  • Fix encode_stream_data Array filter order (flpdf-fh8) by @mitsuru in #106
  • Add flpdf::json emitter with order-preserving objects (flpdf-9hc.11.1) by @mitsuru in #107
  • Add qpdf JSON v2 envelope builder (flpdf-9hc.11.2) by @mitsuru in #108
  • Add pdf_object_to_json + build_qpdf_key (flpdf-9hc.11.3) by @mitsuru in #109
  • Add /pages serializer (flpdf-9hc.11.4) by @mitsuru in #110
  • Add /pagelabels serializer + composite build_qpdf_json_v2 (flpdf-9hc.11.5) by @mitsuru in #111
  • Add /outlines serializer (flpdf-9hc.11.6) by @mitsuru in #112
  • Add /acroform serializer (flpdf-9hc.11.7) by @mitsuru in #116
  • Add /attachments serializer (flpdf-9hc.11.8) by @mitsuru in #114
  • Add /encrypt serializer + owner/user password tracking (flpdf-9hc.11.9) by @mitsuru in #115
  • Add StreamDataMode for qpdf JSON v2 stream payloads (flpdf-9hc.11.10) by @mitsuru in #117
  • Add JsonKey + filter_json_keys for --json-key (flpdf-9hc.11.11) by @mitsuru in #121
  • Add JsonObjectSelector + filter_json_objects (flpdf-9hc.11.12) by @mitsuru in #119
  • Wire --json and friends into flpdf-cli (flpdf-9hc.11.13) by @mitsuru in #120
  • flpdf-9hc.5.8.1: LinearizationPlan Part3/Part4 ObjStm batch planner by @mitsuru in #122
  • Resilient stacked-merge workflow: design + stacked-merge skill (flpdf-418, flpdf-1oe) by @mitsuru in #128
  • flpdf-9hc.5.8.2: Thread ObjStm batch plan into linearized Part3/Part4 emission by @mitsuru in #129
  • stacked-merge: standardize on --rebase merge + plain rebase (method B) (flpdf-b0o) by @mitsuru in #130
  • flpdf-9hc.5.8.3: Shared Object Hint Table ObjStm-awareness; defer Part-3 packing by @mitsuru in #124
  • flpdf-56u: Split first-page/main xref streams + RenumberMap ObjStm slots by @mitsuru in #125
  • flpdf-9hc.5.8.4: ObjStm-aware linearization check; keep Part-3 plain (qpdf-clean) by @mitsuru in #126
  • flpdf-9hc.5.8.5: Epic acceptance-gate integration tests + factual corrections by @mitsuru in #127
  • roborev-fix: apply_static_id values[1] guard + real /E placement assert (504/777 + stale triage) by @mitsuru in #131
  • flpdf-9hc.23.2: qpdf-compatible --check exit codes (0/2/3) [stack 1/6] by @mitsuru in #132
  • flpdf-9hc.3.21: V=5 auth error parity (BadPassword before weak-crypto) [stack 2/6] by @mitsuru in #133
  • flpdf-9hc.3.20: owner/user password-match test matrix [stack 3/6] by @mitsuru in #134
  • flpdf-9hc.3.17: encryption inspection CLI subcommands [stack 4/6] by @mitsuru in #135
  • flpdf-9hc.3.18: rewrite --remove-restrictions [stack 5/6] by @mitsuru in #136
  • flpdf-9hc.3.19: --password-is-hex-key / --suppress-password-recovery [stack 6/6] by @mitsuru in #137
  • Fix release-prepare dry-run failing on uncommitted version bump by @mitsuru in #138

Full Changelog: v0.1.2...v0.1.3

Contributors

mitsuru
Loading

v0.1.2

14 May 13:05
@github-actions github-actions

Choose a tag to compare

  • Release automation: release-prepare.yml + release.yml + CHANGELOG seed by @mitsuru in #88
  • release: v0.1.1 by @github-actions[bot] in #90

New Contributors

  • @github-actions[bot] made their first contribution in #90

Full Changelog: v0.1.0...v0.1.2

Contributors

mitsuru
Loading

v0.1.0

13 May 20:08
@mitsuru mitsuru

Choose a tag to compare

Initial release of flpdf and flpdf-cli — pure-Rust PDF toolkit modeled on qpdf.

Published to crates.io 2026年05月13日 via manual bootstrap (cargo publish). Tag created retroactively to anchor future PR-based release notes; this release is intentionally minimal and the development history up to this point is summarised in CHANGELOG.md.

Subsequent releases use the automated release-prepare -> release workflow pair added in PR #88.

Loading

AltStyle によって変換されたページ (->オリジナル) /