# Reproduce SVG → EPS experiments

Original synthetic inputs and actual browser downloads, October 31, 2026.
Use https://filepetal.com/svg-to-eps/ in a supported modern desktop browser.
1. Select a supplied SVG and choose Convert to EPS. The preview is generated from the EPS using Ghostscript WebAssembly at 72 DPI.
2. Download EPS and compare it to the supplied output. The deterministic writer excludes dates and filenames from the file.
3. Read %%BoundingBox / %%HiResBoundingBox and curveto operations in a text editor. The six supplied EPS outputs contain no image, colorimage or imagemask operators.
4. Run `python verify_outputs.py` with Python and Pillow to independently inspect the supplied downloaded EPS headers, hashes and rendered PNG sizes. This script inspects files; it does not simulate a browser conversion or prove arbitrary EPS safety.
5. units-mm.svg (50.8 × 25.4 mm) and units-px.svg (192 × 96 CSS px) must produce identical 144 × 72 pt EPS files. The preview is 144 × 72 px at 72 DPI, not the vector's maximum resolution.
6. holes-transform.svg preserves the even-odd hole; viewbox-meet.svg centers a square in a wider artboard. Empty artboard margins remain. Circles/ellipses use four cubic approximations.
7. limit-2048.svg is accepted; over-2048.svg is rejected. The other ten error controls include text, gradients, partial opacity, images, CSS, arcs, malformed XML, empty painted geometry and a file over 2 MB. Rejection must remove the old download link.

This writer is a restricted opaque-RGB vector exporter, not a full SVG renderer. No CMYK, spot colors, transparency flattening, embedded images, fonts, stock-agency certification, Illustrator-version certification or receiving-printer testing. No competing converter was tested. Actual output previews are raster PNGs, not EPS thumbnails embedded inside the EPS file.
