Commit Graph

1189 Commits

Author SHA1 Message Date
Brandon Thomas 294cbd6716 M8: Applying redactions cleans the tags: elements of changed marked content lose Alt/ActualText/E, empty marked content leaves them
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 07:48:43 -04:00
Brandon Thomas 1d8b1ecb02 M1/M4: Hybrid-reference files: /XRefStm entries replace the table's free entries; signed documents refuse edits that would force a full rewrite
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 07:45:20 -04:00
Brandon Thomas ba4a7a6d42 M11: Optimizer Clean Up removes invalid links and bookmark destinations and unreferenced named destinations
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 07:40:51 -04:00
Brandon Thomas 763cd70ece M11: PDF Optimizer ▸ Audit space usage: bytes and share of the file per kind of content; doc_audit_space
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 07:37:48 -04:00
Brandon Thomas 55275cd935 M3: Advanced Search panel (⇧⌘F): every match with its context, by page; click to go; shares the find bar's search
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 05:40:22 -04:00
Brandon Thomas e9322b597b M12: Add alternate text: figures one by one with a preview, alternate text or Decorative (content becomes an artifact); accessibility_figures / accessibility_set_alt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 05:36:39 -04:00
Brandon Thomas 095a17610f M12: Heading-nesting findings read naturally ("H3 follows an H1")
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 05:30:38 -04:00
Brandon Thomas e8bc0db811 M5: Custom stamps: create from a PDF page or an image under a category and name, kept in the stamp library, placed at natural size; stamp_custom tool
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 05:24:28 -04:00
Brandon Thomas d5c659812c M6: Image fields: Prepare a form ▸ Image field places an icon-only button that asks for a picture when clicked (buttonImportIcon recognised natively); form_set_image
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 05:16:42 -04:00
Brandon Thomas 8486a35207 M4: Combine files lists the files first: reorder, remove, add more, and choose each file's pages (doc_combine pages)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 05:11:25 -04:00
Brandon Thomas 0b628d5515 M12: Accessibility Checker: new a11y crate with Acrobat's 32 rules in 7 categories, HTML report, fixes (language, title, tab order); options dialog and results panel (Fix, Skip Rule, Explain, Check Again, Show Report); accessibility_check / _report / _fix tools
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 05:05:56 -04:00
Brandon Thomas 1e69a92c41 M10: Export a PDF ▸ Export all images: JPEGs unchanged, other images as PNG with alpha; skipped images reported; doc_export_all_images
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:47:45 -04:00
Brandon Thomas f1817459f2 M10: MCP resources for open documents: information, text, page text and page images (resources/list, templates, read)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:42:21 -04:00
Brandon Thomas 19b5b1d6d2 M1: List document revisions and open an earlier one (Document Properties ▸ Advanced; doc_revisions, doc_open_revision); PDF version reads 1.7, not 17
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:40:25 -04:00
Brandon Thomas 6a9dd32ef9 M3: Tabs and the window title show the document title when Initial View asks for it (DisplayDocTitle); parity for setting the document language
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:34:26 -04:00
Brandon Thomas d26821fdcd M3: View ▸ Zoom ▸ Fit visible (⌘3): zoom so the current page's visible content spans the window
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:32:03 -04:00
Brandon Thomas c0f9c73ae9 M6: Prepare a form ▸ Preview (fill the form as a reader would; Edit fields goes back) and Field Properties ▸ Locked (annotation Locked flag; properties greyed out until unlocked, values still fillable); form_set_props takes locked
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:28:19 -04:00
Brandon Thomas 4df7a73a1a M6: Several fields at once in Prepare a form: Shift/⌘-click to select, then right-click to Align (left, right, top, bottom, centres), Distribute evenly, or Set Fields to Same Size, anchored on the right-clicked field; one undo step each. Test fix: the area-highlight test waits for the text layer before dragging over text
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:23:22 -04:00
Brandon Thomas aac0db461d M6: Duplicate a field across pages (right-click ▸ Duplicate…, all pages or a range): widgets of the same field share one value; a field that is its own widget is split into a field and a widget kid. Prepare mode gets a field context menu (Properties, Duplicate, Delete)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:20:26 -04:00
Brandon Thomas cce71c7607 M6: Date picker: date fields show a month calendar while focused; the picked day is written in the field's own format
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:17:02 -04:00
Brandon Thomas e0d954f10a M5: Eraser for drawings (Draw flyout): rubs out the parts of ink strokes it passes over, splitting strokes and deleting emptied drawings, in one undo step
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:12:36 -04:00
Brandon Thomas 968d26a41e M5: Attach a file as a comment (push pin, paperclip, graph or tag icon in PrintCraft's own drawings; the file is embedded and listed under Attachments); comment_add type attachment
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:09:44 -04:00
Brandon Thomas bf58d1f6bf M5: Area highlight (drag the highlighter off text) and Replace Text (strikeout plus a grouped caret holding the replacement; Highlight flyout, comment_add type replace)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:05:25 -04:00
Brandon Thomas e61f75d69a M3: Marquee zoom (drag to fill the window with an area, click to zoom in) and Take a Snapshot (copies an area at the current zoom to the clipboard as an image)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 04:00:12 -04:00
Brandon Thomas 7515170103 M4: Cut, copy and paste pages in Organize Pages (⌘C/⌘X/⌘V and a thumbnail context menu; paste after the selection, across documents; the last page can't be cut)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:57:11 -04:00
Brandon Thomas 4991a59479 M5/M6: Make Current Properties Default for comments (colour, opacity, width become the tool's default); required fields get a red border when fields are highlighted
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:53:59 -04:00
Brandon Thomas c6d82ab62a M4: Initial View: Document Properties ▸ Initial View (navigation panel, page layout, magnification, open-to page, window and interface options) and Advanced ▸ reading options (binding, language), honoured when a document opens; script open actions are kept; Bookmarks panel options expand all, expand top-level or collapse all; doc_initial_view tool (85 tools)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:50:56 -04:00
Brandon Thomas 05195a2af6 M7: Backgrounds and watermarks from a file: an image or a page of a PDF (imported as a form XObject that draws upright, inherited resources included), scaled relative to the page, with rotation, opacity and placement; Source ▸ File in the dialogs; doc_watermark / doc_background take file, file_page and scale
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:44:22 -04:00
Brandon Thomas d97711302c M6: Order tabs manually: the Fields panel lists fields in tab order and, while preparing a form, moves a field earlier or later on its page (widgets reordered in /Annots, other annotations keep their places, page switches to annotation order); form_tab_order takes field + move
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:37:13 -04:00
Brandon Thomas 17e3eb255d M8: Redaction Properties: overlay text font (Helvetica, Times, Courier), size or auto-size, colour, alignment and repeat, written as /DA, /Q and /Repeat and drawn on apply; overlay fonts are added to the page only when used
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:33:01 -04:00
Brandon Thomas dfae15ec67 M6: Field Properties ▸ Options for every field type: text alignment, default value, scroll long text, rich text, password, file selection, spell check, comb of characters (with its rules); choice defaults, sort items (the list is reordered), custom text, multiple selection, commit immediately; check box / radio checked by default and radios in unison. Reset form restores defaults. form_set_props takes align, default and flags
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:28:44 -04:00
Brandon Thomas 09c1404d95 M4/M1: Drag page thumbnails to reorder (selection or the grabbed page, insertion bar, one undo step); damaged files say they were repaired, and Document Properties ▸ Advanced lists the repairs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:22:58 -04:00
Brandon Thomas 9fcece8afb M11.1: PDF Optimizer: new optimize crate measures each image's effective resolution where pages draw it and resamples (bicubic) and recompresses (JPEG quality steps or ZIP) colour and grayscale images, soft masks with them, only when smaller; discards thumbnails, alternate images, tags and print settings; Flate for unencoded streams. Reduce File Size now downsamples like Acrobat (150 ppi above 225, JPEG medium); Optimize PDF dialog (Images, Discard Objects, Discard User Data, Clean Up) composes Remove Hidden Information; doc_optimize tool (84 tools)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:18:47 -04:00
Brandon Thomas 68ea2a068a M9 perf: signature revalidation after edits reuses the signed ranges' digests and the parsed signed revision (DigestCache per document) and no longer scans the file for revision markers: a comment edit on a 120 MB signed file takes 6 ms instead of 84 ms; cos exposes xref entries so unchanged objects are skipped when diffing revisions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:08:51 -04:00
Brandon Thomas 7ff3053fda M9.6: --dialog sign|certify opens Sign with a Digital ID (headless screenshots, control channel)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:00:04 -04:00
Brandon Thomas bb1d9a0d8a M9.6: Use a certificate in the app: Digitally sign / Certify (draw a rectangle, or click an empty signature field) and Certify (invisible); Sign with a Digital ID, Configure New Digital ID (create a self-signed ID or use a .p12/.pfx) and Sign as dialogs with appearance preview, reason, location and certification permissions; signing saves; Signatures panel (status, details, trust, view signed version, export certificate); signature message bar; digital IDs and trusted certificates persist. Fix: locate signature placeholders by their unique ByteRange marker (full saves renumber objects)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 02:59:19 -04:00
Brandon Thomas 64e900f270 M9.5: Signatures in the engine and for agents: every document carries its validated signature fields (revalidated on edits and against the session's trusted certificates); Session::sign/mark_signed (signing saves; history before signing is dropped); full rewrites of signed documents are refused; certificates load from PEM/DER; sign_list, sign_id_create, sign_document and sign_trust tools (83 tools)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 02:50:12 -04:00
Brandon Thomas e06a98adaa M9.1–M9.3: new sign crate: DER, X.509, CMS SignedData, PKCS #12 (PBES2 and legacy, MAC) on RustCrypto with aws-lc-rs for RSA private keys; PAdES B-B signing (new or existing field, visible or invisible, DocMDP certification) with an incremental placeholder save; validation (digest, signature, chain against a trust store, changes after signing classified under DocMDP); checked against pdfsig and OpenSSL
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 02:43:46 -04:00
Brandon Thomas fb3eca5dcc M5/M10: Comments panel filters by colour (named swatches) and checkmark; Create PDF from clipboard (image at its size, or text)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 02:14:50 -04:00
Brandon Thomas 7616535dd1 M5: Polygon, Connected lines, Cloud (cloudy border appearance), Callout (leader line with arrow, /RD text box, resize re-attaches the leader) and Insert text (caret) comments: annot shapes and appearances, click-to-place-points and drag-to-callout tools in the Comment/Highlight/Draw flyouts, /IT carried to the comment list (Callout, Cloud labels), comment_add types polygon/cloud/polyline/callout/caret
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 02:11:52 -04:00
Brandon Thomas 859f03d26e M5: Comment polish: Mark with checkmark (hidden /StateModel /Marked reply; card toggle and menus), Locked comments (Properties ▸ Locked; refuse move/resize/restyle/delete), Copy text, Hide/Show all comments (render setting, vendored hayro patch), Summarize comments (Comments only layout, sort by page/author/date/type); comments panel "…" menu gains hide, summary, export, import; card menu anchored to its button; comment_mark/comment_lock/comments_hide/comments_summarize tools (79 tools)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 02:02:14 -04:00
Brandon Thomas ed8a002465 M7: Links: Link tool (drag to create; outlines, select, double-click for Link Properties, Delete), Link Properties (visible/invisible, highlight, thickness, style, colour; go to a page or open a web page), Create links from URLs in the text, Remove all links; link_list/link_add/link_edit/link_delete/links_from_urls/links_remove tools (75 tools)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 01:49:33 -04:00
Brandon Thomas dfc940b8f1 M4: Organize extras: split by top-level bookmarks (named after them) and by file size; Extract options (separate files, delete after extracting); Rotate Pages dialog with range, even/odd and landscape/portrait filters; Organize ▸ Select odd/even/landscape/portrait; doc_split bookmarks/max_mb, page_extract separate/delete, page_rotate subset/orientation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 01:42:38 -04:00
Brandon Thomas f31d89bc9d M5: Add a stamp: palette of Dynamic (By author at time, date), Sign Here and Standard Business stamps in PrintCraft's own design (ISO stamp names where defined; foreign stamps keep their artwork); click to place; comment_add type stamp
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 01:37:13 -04:00
Brandon Thomas 22a8691475 M5.6/M6.7: Comment and form data exchange: new xfdf crate (L4): XFDF (ISO 19444-1) export/import of comments (replies, pop-ups, ink, quads, line ends, flags, colours) and nested field values; FDF both ways; form data as Acrobat XML, CSV and tab-delimited text. Import replaces comments with the same name and sets values through formats/validation (read-only fields take data). Import/Export commands; doc_export_data/doc_import_data tools (69 tools)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 01:31:56 -04:00
Brandon Thomas 6c921fd8dd M3: Viewer conveniences: Close all (asks only for changed documents), Revert with confirmation, Fit to height, previous/next view (⌘[ ⌘]), page box takes page labels, Select all (⌘A), find options (whole words, case-sensitive), cover page in two-page view, follow the system theme
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 01:26:00 -04:00
Brandon Thomas 098d9ed4e1 M7.5: Edit image for added images: rotate (the box turns around its centre), flip horizontal/vertical, crop each side (clipped), replace the picture keeping box and transforms; Edit panel tools, content_update rotate/flip/crop/image; pixel-checked rendering
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 01:18:31 -04:00
Brandon Thomas 92d37ca696 M6.6/M6.8: Field Properties Appearance tab (border/fill colour, thickness, solid/dashed/beveled/inset/underline, text colour, Helvetica/Times/Courier); tab order by rows/columns/structure (page /Tabs) honoured by Tab; push buttons run Reset form, Named (print, page navigation), URI, Go to and common one-line scripts (this.print, this.resetForm, app.alert, pageNum) without a JS engine; form_tab_order tool and appearance in form_set_props (67 tools)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 01:15:02 -04:00
Brandon Thomas 24f5768be4 M6.3/M6.6: Form formats, validation and calculation without a JavaScript engine: Acrobat's AF calls (AFNumber/AFPercent/AFDate/AFTime/AFSpecial format and keystroke, AFRange_Validate, AFSimple_Calculate, simplified field notation) recognised and run natively in Acrobat's event order (keystroke on commit, validate with Acrobat's messages, calculate in /CO order, format for display); Field Properties Format/Validate/Calculate tabs write the same scripts; form_set_props format/validate/calculate, form_fields reports them
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 01:07:37 -04:00
Brandon Thomas 0d21de431a M3.10: Frame-time budget tests on a 500-page document (scrolling, Comments with 500 cards, Pages thumbnails, Fields)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 00:59:17 -04:00