The basics
What is an EPS file?
EPS stands for Encapsulated PostScript. PostScript is the page description language Adobe created in the 1980s for laser printers and typesetters: a document is a program, and the printer runs it to draw the page. An EPS file is a PostScript program with rules that make it safe to place inside another document: it draws a single picture, says how big that picture is, and doesn't change the printer's settings.
For about twenty years EPS was how logos, charts and illustrations travelled between design programs, page layout software and print shops. It's vector, so it prints sharp at any size, and every PostScript printer understood it. Scientific publishers and LaTeX workflows also used it for figures. Many logo packages and stock graphics still include an .eps version.
Today it is a legacy format. According to the Library of Congress, Adobe has said there will be no new PostScript or EPS versions, PDF has replaced EPS in many contexts, and Adobe recommends EPS only for importing older artwork. Three things follow from that:
- It's a program, not a picture. To show it, software has to run PostScript code, which is why few apps open EPS directly and why it carries security risks (see below).
- It's often vector, but not always. An EPS can hold shapes, text and embedded bitmaps. An EPS exported from Photoshop, or converted from a JPG, is just a bitmap in a PostScript wrapper and won't scale any better than the original.
- It has no transparency. PostScript can't describe see-through objects, so exporters flatten transparency into opaque pieces or bitmaps.
Anatomy
What's inside an EPS file
There's no sample file on this page, so here is a small EPS we wrote by hand to show the structure: a sky, a sun, a hill and a line of text. Ghostscript draws it and confirms its bounding box. Lines starting with %% are comments that other programs read; everything else is PostScript code that a PostScript interpreter runs. Below it are the first 30 bytes of an EPS with a TIFF preview, which ImageMagick made for us.
%!PS-Adobe-3.0 EPSF-3.0
%%Title: hills.eps
%%Creator: hand-written example (99helpers.com/file-types/eps)
%%BoundingBox: 0 0 240 160
%%HiResBoundingBox: 0 0 240 160
%%LanguageLevel: 2
%%Pages: 1
%%EndComments
%%BeginProlog
/sun { 0 360 arc closepath fill } bind def
%%EndProlog
%%Page: 1 1
gsave
0.49 0.83 0.99 setrgbcolor
0 0 240 160 rectfill
0.96 0.62 0.04 setrgbcolor
180 116 20 sun
0.13 0.77 0.37 setrgbcolor
0 40 moveto 60 70 140 70 240 44 curveto
240 0 lineto 0 0 lineto closepath fill
0 0 0 setrgbcolor
/Helvetica findfont 16 scalefont setfont
72 12 moveto (Hello, EPS) show
grestore
showpage
%%EOF
The same kind of file with a TIFF preview starts
with a 30-byte binary header instead (little-endian):
C5 D0 D3 C6 1E 00 00 00 3A FA 00 00 PostScript at 30, 64,058 bytes
00 00 00 00 00 00 00 00 no WMF preview
58 FA 00 00 8E 2C 00 00 TIFF at 64,088, 11,406 bytes
FF FF checksum: none- 1
%!PS-Adobe-3.0 EPSF-3.0The header line
Says this is PostScript following Adobe's Document Structuring Conventions (DSC) 3.0, and an EPS file of version 3.0. It's the signature PRONOM and other format checkers look for. Some files say
%!PS-Adobe-3.1 EPSF-3.0; there's no published 3.1 specification. - 2
%%BoundingBox: 0 0 240 160The bounding box
The one other comment the specification requires: the lower-left and upper-right corners of everything the file draws, in points. Here 240 × 160 points, which is 3⅓ × 2⅕ inches. Programs that place the file use it to size the frame without running the code. Get it wrong and the picture is cropped or has a white margin.
- 3
%%HiResBoundingBox:A precise bounding box
The same box with decimals.
%%BoundingBoxonly allows whole numbers, so many programs write both. - 4
%%EndCommentsEnd of the header
Title, creator, language level and page count come before it.
%%LanguageLevel: 2says the code needs a PostScript Level 2 interpreter. - 5
%%BeginProlog … %%EndPrologThe prolog
Definitions used later: here a procedure called
sunthat fills a circle. Real files from Illustrator or other apps have long prologs full of such procedures. - 6
0.49 0.83 0.99 setrgbcolorDrawing instructions
PostScript is a stack language: values first, then the operator. Pick a colour, fill a rectangle, draw a circle, then a hill with
moveto,curvetoandlinetoand fill it. The same Bézier curves are in PDF, SVG and fonts. - 7
/Helvetica findfont 16 scalefont setfontText
Helvetica is one of the fonts every PostScript printer has. Fonts that aren't built in must be embedded in the file, or the text comes out in a substitute font.
- 8
showpageshowpage
Prints the page when the file is sent to a printer on its own. The specification allows it; a program that places the EPS inside a page redefines it so it does nothing.
- 9
C5 D0 D3 C6The binary preview header
Programs that can't run PostScript need a picture to show on screen. A Windows-style EPS starts with these four bytes, then the position and length of the PostScript code, of a Windows Metafile (WMF) preview and of a TIFF preview, then a checksum (
FF FFmeans none). Numbers are little-endian:1E 00 00 00is 30.
Under the hood
How an EPS file is placed and printed
A layout program such as QuarkXPress or PageMaker traditionally didn't need to understand the PostScript inside an EPS. It read the comments, showed a preview on screen and passed the code on to the printer:
- 1It reads
%%BoundingBoxto find out how big the picture is, without running anything. - 2It shows the preview, if the file has one, so the designer sees the picture in place. Without a preview, older programs showed a grey box with the file name. The file still printed correctly.
- 3When printing, it wraps the EPS code in its own: save the printer's state, move and scale the coordinate system to the frame on the page, redefine
showpageto do nothing, run the EPS, then restore the state. - 4The printer's PostScript interpreter draws the picture at the printer's full resolution.
That's why the specification forbids some PostScript operators in EPS files, such as initgraphics, erasepage, setpagedevice and exitserver: they would reset or wipe the page of the document the EPS is placed in.
| Preview | Where it's stored | Used by |
|---|---|---|
| TIFF | After the PostScript code, located by the binary header that starts C5 D0 D3 C6 | Windows programs, and most cross-platform ones; the most common kind |
| WMF (Windows Metafile) | Also located by the binary header | Older Windows programs |
| PICT | In the file's resource fork on a classic Mac; lost when the file is copied to Windows or uploaded | Mac programs before macOS |
| EPSI | As hexadecimal text inside %%BeginPreview comments, so the file stays plain text | Programs on any system; less common |
| None | Nothing extra | Apps that run the PostScript themselves |
Comparison
EPS vs PDF, SVG and AI
| EPS | SVG | AI | ||
|---|---|---|---|---|
| What it is | A PostScript program for one picture | Fixed pages of objects; drawing code without loops or variables | XML describing shapes | Illustrator's working file (a PDF with private data) |
| Transparency | No | Yes, since PDF 1.4 | Yes | Yes |
| Pages | One picture | Many | One | Many artboards |
| Opens in a browser | No | Yes | Yes | No |
| Open standard | Published by Adobe, frozen since 1992 | ISO 32000 | W3C | No |
| Good for today | Old print workflows that ask for it | Print and sharing | Web and apps | Editing in Illustrator |
When a printer or a client asks for "vector artwork", a PDF is now usually the better answer: it holds the same vectors, keeps transparency and embedded fonts, and every device can show it. For a website or an app, export SVG. Keep EPS for the few systems that still require it, such as some sign-cutting, embroidery and older publishing pipelines.
How to
How to open and convert an EPS file
- Adobe Illustrator opens EPS files as editable artwork. Affinity Designer and Affinity Photo also open and export EPS.
- Inkscape (free, Windows, macOS, Linux) imports EPS and PostScript, but only when Ghostscript is installed, because it converts the file through it first. It also exports EPS.
- LibreOffice imports EPS too, but when we converted our example to PDF with it, the picture came out as a bitmap rather than vectors.
- Ghostscript (free, command line) runs the PostScript itself.
gs -dSAFER -dEPSCrop -sDEVICE=pdfwrite -o out.pdf in.epsmakes a PDF the size of the bounding box;-sDEVICE=png16m -r300instead makes a PNG at 300 dpi.eps2epscleans up an EPS, or turns PostScript or PDF into one. - On a Mac: Preview could open EPS files until macOS 12. In macOS 13 Ventura Apple removed that, and in macOS 14 Sonoma it removed the system's built-in PostScript-to-PDF converter and the
pstopdfcommand. Use Illustrator, Affinity, Inkscape or Ghostscript. - In a browser: browsers can't display EPS, so a link to one downloads it. Online converters exist, but they run the file on someone else's server: don't use them for confidential artwork.
Converting EPS to SVG or PNG
Open the EPS in Inkscape, Illustrator or Affinity and export SVG or PNG. Choose the PNG's pixel size when exporting: the EPS can be enlarged, the PNG can't. If the EPS only contains a bitmap, an SVG made from it is just that bitmap again.
Compatibility
Why Word and PowerPoint won't insert EPS files
Microsoft Office used to accept EPS images, converting them to its own EMF format on insertion. Attackers abused the EPS import filter with booby-trapped documents, so with the security update of 11 April 2017 Microsoft turned EPS insertion off in Office 2010 to 2016 and Microsoft 365 (Office 2007 had lost it in 2015).
- Microsoft 365 and Office 2019, 2021 and 2024: there is no way to insert EPS files. The registry setting that switched it back on was removed in 2018.
- Office 2010, 2013 and 2016: a registry change can re-enable it, which Microsoft advises against.
- Existing documents: EPS images inserted earlier were already converted to EMF, so they still show.
- The fix: convert the EPS to SVG (Office 2019 and later) or EMF, or to PNG, and insert that.
Troubleshooting
Why is my EPS blank, cropped or blurry?
| Symptom | Usual cause | Fix |
|---|---|---|
| A grey box or the file name instead of the picture | The app only shows previews, and the file has none (or a Mac PICT preview that was lost in transfer) | It may still print. Re-save it with a TIFF preview, or convert it to PDF |
| Cropped, or with a wide white margin | A wrong %%BoundingBox | Open it in Ghostscript with -dEPSCrop, or recompute the box with gs -sDEVICE=bbox and edit the comment |
| Blurry or blocky when enlarged | The EPS holds a bitmap, not vectors | Ask for the original vector artwork (AI, PDF or SVG) |
| Wrong font | The font wasn't embedded and isn't installed | Install the font, or ask for a version with text converted to outlines |
| Colours look dull on screen | The artwork is CMYK for print, and EPS has no colour management | Expected for print files; export an RGB PNG or SVG for screens |
| "Unsupported file" on a Mac | macOS Preview no longer reads PostScript | Use Illustrator, Affinity, Inkscape or Ghostscript |
Security
Is it safe to open an EPS file?
Opening an EPS means running a program written in PostScript, a complete programming language with loops, file operations and, in Ghostscript, a way to start other programs. Interpreters run it in a sandbox, and the sandbox has been broken more than once:
- CVE-2023-36664: Ghostscript up to 10.01.2 mishandled permissions for the
%pipe%device and the|prefix, so a crafted PostScript or PDF file could run shell commands. Fixed in 10.01.3. - CVE-2024-29510: a format-string flaw in Ghostscript up to 10.03.0 let a file switch off the
-dSAFERsandbox. Codean Labs showed it with a valid EPS, and attackers exploited it with EPS files disguised as JPGs. Fixed in 10.03.1 (May 2024). - Microsoft Office: EPS exploits in Word documents led Microsoft to disable EPS import in 2017.
If your server converts uploads
Image and document converters such as ImageMagick and LibreOffice call Ghostscript for EPS, PostScript and PDF, often without the developer realising it. Keep Ghostscript up to date, check uploads by their content rather than their extension (an EPS renamed to .jpg still starts with %!PS), and block PostScript formats in ImageMagick's policy.xml if you don't need them. Codean's write-up explains how such files reach Ghostscript.
For people, the advice is simpler: open EPS files from sources you trust, in up-to-date software. Viewing an EPS's preview image runs no code; rendering the PostScript does.
Sample files
There are no sample EPS files on this page yet. To make one for testing, export from Illustrator, Inkscape or Affinity Designer, or convert a PDF with Ghostscript's eps2eps file.pdf file.eps or an image with ImageMagick's convert image.png image.eps.
Put it online
Have an EPS file? Give it a link.
Drop an EPS on 99helpers and it gets its own link. Browsers can't display EPS, so anyone who opens the link downloads the file and opens it in Illustrator, Inkscape or another editor; add a PDF or PNG copy for people who just need to see it.
Questions
EPS files, frequently asked
What is an EPS file?
An Encapsulated PostScript file: a small PostScript program that draws one picture, such as a logo or illustration, with a bounding box saying how big it is. It was the standard way to exchange vector artwork for print.
How do I open an EPS file?
Use Adobe Illustrator, Affinity Designer or Inkscape (with Ghostscript installed). Browsers and, since macOS Ventura, Preview on the Mac can't open EPS.
How do I convert EPS to PDF, SVG or PNG?
Open it in Inkscape, Illustrator or Affinity and export. On the command line, gs -dSAFER -dEPSCrop -sDEVICE=pdfwrite -o out.pdf in.eps makes a PDF with Ghostscript.
Is EPS a vector format?
It can be. An EPS from Illustrator or Inkscape usually holds vector shapes and text, but an EPS exported from Photoshop or converted from a photo holds a bitmap and won't scale any better than the original.
Why can't I insert an EPS into Word or PowerPoint?
Microsoft disabled EPS insertion in Office in April 2017 because attackers abused it. In Microsoft 365 and Office 2019 and later it can't be switched back on. Convert the EPS to SVG, EMF or PNG first.
What's the difference between EPS and PDF?
EPS is a PostScript program for a single picture, without transparency, and needs a PostScript interpreter to display. PDF is a fixed-page format that every device can show, supports transparency and many pages, and has replaced EPS in most print workflows.
Is EPS the same as AI?
No. AI is Adobe Illustrator's own format. Illustrator files before version 9 were PostScript and closely related to EPS; since Illustrator 9 (2000) they embed a PDF instead.
Can an EPS file contain a virus?
An EPS is a program, and bugs in PostScript interpreters such as Ghostscript have let crafted files run commands. Open EPS files from trusted sources in up-to-date software, and keep server-side converters patched.
Related formats
Other file types explained
Keep going
Related
Sources
- Library of Congress: Encapsulated PostScript File Format, version 3.0
- The National Archives (PRONOM): Encapsulated PostScript 3.0, with signatures
- Microsoft: Support for EPS images has been turned off in Office
- Codean Labs: CVE-2024-29510, exploiting Ghostscript using format strings
- The Eclectic Light Company: PostScript's sudden death in Sonoma
- Inkscape command-line manual (EPS and PS import and export)
Last reviewed 27 October 2026.