pdfcraft/crates
Brandon Thomas 48f1495ac2 Tests: take split part names with Path::file_name so the test passes on Windows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 12:48:43 -04:00
..
a11y M12: Add alternate text: figures one by one with a preview, alternate text or Decorative (content becomes an artifact); accessibility_figures / accessibility_set_alt 2026-10-02 05:36:39 -04:00
annot CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
automation Tests: take split part names with Path::file_name so the test passes on Windows 2026-10-04 12:48:43 -04:00
compare M12: Compare files: visual differences (pages rendered and compared region by region), shaded orange; doc_compare visual option 2026-10-03 05:37:23 -04:00
content M8.5/M8.6/M8.7: Redact a PDF: new content crate (L2: content-stream operators with spans, inline images, serializer, matrices) and redact crate (L4): Redact annotations; apply removes glyphs (TJ displacement keeps the rest in place; simple, composite/CMap and Type 3 fonts), clears covered image pixels (or removes images it can't re-encode), removes or clips vectors and shadings, rewrites form XObjects copy-on-write, removes overlapping comments, links and fields, draws the boxes with overlay text, then verifies and fails closed; redacted documents save as a full rewrite. Search & Redact text and patterns (phone, e-mail, credit card, SSN, dates). UI: Redact tool (text or box), Redact pages, Find text and redact, Set properties, Clear all / Redact all with confirmation; redact_mark/redact_apply/redact_clear tools (57 tools). Fix: deleting a field when /AcroForm is a direct dictionary 2026-10-02 00:24:29 -04:00
cos CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
create CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
crypt Session 4: M1.6 encryption (crypt crate R2-R6), M4 command registry, combine/extract/split, autosave + crash recovery, asset policy + xtask assets, README screenshots 2026-09-30 23:12:34 -04:00
edit M7: Justify, underline, line spacing, character spacing and horizontal scale for existing paragraphs (and justify for added text); Lucide align-justify icon 2026-10-03 03:16:03 -04:00
engine CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
export M10: Export to Word (.docx), HTML and RTF (new export crate with a small zip writer): paragraphs, headings, bold/italic, images, page breaks; doc_export_office tool 2026-10-03 09:40:46 -04:00
filters more progress, roadmap, wip 2026-09-30 11:00:02 -04:00
fonts M7: PDF font tables move to the fonts crate with Unicode decoding/encoding (ToUnicode, WinAnsi/MacRoman/Standard, Differences glyph names, subset glyph checks) 2026-10-03 00:42:57 -04:00
forms M6: Prepare a form detects fields (underscore blanks, rules, boxes, check squares) and names them from their labels; form.detect, form_detect_fields 2026-10-03 05:21:01 -04:00
geom one-shot first ver 2026-09-30 05:17:08 -04:00
js M6: Acrobat JavaScript: sandboxed boa engine with the forms object model (printcraft-js); custom keystroke/validate/calculate/format scripts, button scripts, document JavaScripts, JavaScript console (⌘J), Preferences ▸ Enable JavaScript; js_run, js_document_scripts, js_set_document_script, form_set_script, js_enabled tools 2026-10-03 04:41:47 -04:00
model M7.6: header & footer, watermark, background: new model (L2: page tree with inheritance, display geometry) and edit (L4) crates; marks drawn in display space on rotated pages, artifact-tagged and /PCMark-tagged (found without decompressing), original content wrapped in q/Q, page resources copied not shared; Acrobat tokens (page numbers, dates, Bates); Add/Update/Remove with exact restore of the original content; dialogs with page range options (subsets) and previews; 9 commands; tools doc_header_footer/doc_watermark/doc_background/doc_remove_marks (44 tools); dialogs outline their controls 2026-10-01 23:03:20 -04:00
ocr CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
optimize M11: Optimizer Clean Up removes invalid links and bookmark destinations and unreferenced named destinations 2026-10-02 07:40:51 -04:00
organize CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
preflight M11: PDF/A (new preflight crate): verify PDF/A-2b/3b structural rules, Save as PDF/A (XMP identification, generated sRGB output intent, forbidden actions, annotation flags, interpolation, encryption), PDF/A dialog; pdfa_verify, pdfa_convert tools 2026-10-03 07:19:54 -04:00
print M10.5: Print: new print crate (L4) imposes the pages to print onto sheets (Fit/Actual/Shrink/Custom, Multiple pages per sheet with order, borders and auto-rotate, Booklet, Poster with overlap and cut marks, orientation, Comments & Forms honouring the Print flag) as a fresh print-ready PDF; page ranges with labels, odd/even, reverse; CUPS spooler (printers, copies, collation, duplex, monochrome). Print dialog (⌘P) with a live sheet preview from page thumbnails and Save as PDF; print permission enforced; printers/doc_print tools (61 tools) 2026-10-02 00:40:57 -04:00
redact CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
render CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
sign CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
ui-egui CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
xfdf CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00