Skip to content

Keep the whole of a form when a plan is built, and open a file in time - #2

Merged
tannevaled merged 1 commit into
mainfrom
bump-pdfkit-deps
Aug 27, 2026
Merged

Keep the whole of a form when a plan is built, and open a file in time#2
tannevaled merged 1 commit into
mainfrom
bump-pdfkit-deps

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

Measurements are being run now and will be added to this body before review.

ops v0.4.0 -> v0.6.0, reader v0.4.0 -> v0.4.2, pdffont -> v0.3.0 indirect.

A plan becomes a file through Plan.Build, and the ops release underneath it
used to keep a form's widgets while throwing away the field list that gives
them meaning: half a form, which is worse than none, because the boxes are
still on the page and nothing knows what they are. The same release keeps
what a document says about itself -- its language, and the flag saying it
was marked up for a screen reader.

reader v0.4.2 brings two fixes with it. It walks the objects a file has
rather than every number up to the largest of them: a 219-byte file naming
object 2 147 483 647 took 21.2 s to open and allocated nothing, so no
memory limit caught it. And InlineImage.Expanded no longer lets Go's
randomised map iteration order decide between both spellings of a key --
/W beside /Width -- which a page carried through a plan inherits.

pdffont is raised with them because it is compiled into this package
through ops and forms, and v0.3.0 is where a 10 655-byte /ToUnicode map
stops producing 13 million entries and 1 054 MB.
@tannevaled
tannevaled merged commit febb589 into main Aug 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant