Trevor PaughSystems engineer
Trevor PaughProject Chronicles

Chronicles / Eboda Gymnast

Protect, stamp, export

Milestone

The first batch of the Acrobat list landed overnight: password protection and permissions on save, headers and footers with page numbers, Bates numbers and text watermarks, and export of pages as images or text, image extraction, and a PDF built from images. Every branch needed one round of review changes, and one review found a colour bug that had been on main since the print slice. A new build went to the owner before two in the morning.

Three builders started within minutes of each other on the evening of the 13th, each with its own working copy and its own reviewer briefed to break the work. By two in the morning all three branches were on main.

Protect

Menu > Protect records a choice; the next save writes it. A password to open, a separate permissions password with the usual restrictions on printing, changes and copying, a compatibility switch for older readers, and a Remove button for files that are already protected. The written file is reopened and checked before it replaces anything: it must open with the new password and not without, the restrictions must read back as set, and nothing from the original may appear in clear.

The review found that the library the app uses to write encryption left some strings unencrypted inside stream dictionaries, so the builder wrote a workaround and a guard for it. Files that rest on a signature, a certification or usage rights are refused outright, since rewriting them would break what they rest on.

Headers, footers, watermarks

Six slots for the header and footer, with tokens for page numbers, the date, the file name and Bates numbers, and a watermark dialog with opacity, rotation and tiling. Each stamp is written as its own marked artifact so screen readers skip it, and the page’s own content is never changed, so Remove puts the page back exactly as it was. The review’s main finding was that the gate deciding when stamping is allowed was weaker than the one text recognition uses. The fix was to share one gate between them: one rule is easier to explain.

Export and create

Pages as PNG or JPEG at a chosen resolution, the text of the pages as one file, and each image drawn on a page saved once, with JPEGs passed through untouched where they can be. Create PDF from images takes a set of pictures and writes a new file, which then opens in the app like any other.

The export review found that exported pages had red and blue swapped. The same swap had been in printing since the print slice landed, unnoticed because nobody had printed anything red. Both were fixed on the export branch.

A convention settled

The export reviewer asked whether knowing the permissions password should lift a file’s restrictions on export. The manager kept the existing convention: restrictions follow the file’s permission bits whatever password it was opened with, for export, comments, recognition and stamps alike. Changing it would mean a new owner mode the owner has not asked for.