Open .ai files whose non-native art has ASCII85 lines starting with %_

A letterhead saved by Illustrator 28 without PDF compatibility wouldn't
open: "its editing data can't be read (it ends inside a layer)". Its
layer starts with a /ForeignObject (non-native art: the content of a
placed PDF), whose /Data entry is the PDF as ASCII85 in comment lines.
ASCII85 includes `_`, so about one line in 85 starts with `%_`, which
the lexer reads as hidden tokens; a `(` in such a line opened a string
that swallowed the dictionary's end, the rest of the art and the
layer's LB.

The reader now skips to the data's `~>` after `/Data ,` in a
/ForeignObject, as it already did for a /Binary dictionary's ASCII85,
and leaves the non-native art out with a note (nothing draws its PDF
from the editing data yet).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017ZwZjADUZP4VzvrFGpiZch
This commit is contained in:
Reinhard Schuerer
2026-10-10 08:25:35 +07:00
committed by bflatastic
co-authored by Claude Fable 5.1
parent 57932f1204
commit f2ba41d1c1
3 changed files with 27 additions and 3 deletions
+2 -1
View File
@@ -450,7 +450,8 @@ CMYK too.
PostScript files (`.eps`, and `.ai` files saved in older formats or without PDF compatibility) open through the EPS
reader (see EPS and PostScript import). An `.ai` saved without PDF compatibility (its PDF part is only a placeholder
page) opens from its editing data alone: its type is made from the file's text document where it can be (point type), and
what can't be is left out with a warning; without editing data it says it can't be opened.
what can't be is left out with a warning; so is non-native art (the content of a placed PDF, which Illustrator shows but
doesn't edit and keeps as a PDF inside the editing data); without editing data it says it can't be opened.
What a PDF holds comes in as editable art: soft masks become opacity masks (an alpha mask as a white copy of its art;
the backdrop colour gives Clip, an inverting transfer function Invert), transparency groups keep isolation and knockout,