mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-31 15:49:36 +00:00
"Export ▸ Images reads byte-aligned Group 3 whichever way its fill falls" read byte-aligned rows unaligned whenever /EndOfLine was set. That broke byte-aligned Group 4 with /EndOfLine (refused); read Group 3 that says /EndOfLine but has no codes unaligned, and wrongly; and read codes with the fill before them, but no /EndOfLine, on bytes: every row, the wrong picture, nothing said. Now: - Group 4, and rows not on bytes, read as the parameters say; - Group 3 rows on bytes are read by the data: T.4 sends an end-of-line code before the first row when it sends them at all, and no other code starts with more than eight zeros. Data that starts with 11 zeros or more (fill included) and a 1 has codes, and is read unaligned, where the codes mark the rows whether the fill starts each code on a byte or ends it on one; other data is read on bytes, whatever /EndOfLine says. A reading that comes up short is reported rather than tried the other way, where data cut short would read as other rows. The Group 3 test exports nine pictures, stripes and eight of random text-like runs (how a misreading comes out depends on the picture), coded with T.4's terminating codes at /K 0 and 1: no codes, with /EndOfLine and without; codes each starting on a byte or ending on one, with /EndOfLine and without. Each exports as its picture, and each a byte short is reported; at /K 1, codes with none before the first row (not as T.4 sends them) export as their picture or are reported. Byte-aligned Group 4 still reads with and without /EndOfLine. The create.export-all-images parity note says what is still limited: such codes may export wrong at /K 0, as the create README says. A rule tried first, reading both ways and refusing an image that gave every row both ways differently, failed on the stripes without codes (TIFF's Modified Huffman layout): its unaligned reading gives every row too, wrongly. So did one that read the other way when the first reading came up short: it drew data cut short as other rows. cargo-mutants leaves no mutant of the new lines alive. From reviews with the pdfcraft-review skill. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P6yUtvWGPsJpMLyh6pxSXG