Initializing... drag & drop files here
Supports: PS
.ps is accepted on this page; for .eps use the EPS converter instead. Batch uploads are supported.PostScript is a page description language Adobe introduced in 1984 and extended with Level 2 in 1991 and PostScript 3 in 1997. It is still the lingua franca of high-end print RIPs, even though Adobe deprecated PostScript Type 1 font authoring in its Creative Cloud apps in January 2023 (PostScript output and PDF Print Engine RIPs continue to render Type 1 just fine). Most modern workflows have moved to PDF, but a .ps round-trip is still genuinely useful when a file misbehaves on a specific interpreter.
lpr -P on Linux, Adobe Illustrator's "Save As EPS/PS" exporter, and a 2008-era LaTeX dvips toolchain can all look syntactically different even when they describe the same page. Running the file through Ghostscript's pdfwrite plus a fresh ps2write pass produces a clean, consistent PostScript Level 2/3 dictionary that most modern RIPs prefer.undefined, rangecheck, or typecheck errors, re-export through Ghostscript normalizes operator names and discards proprietary procsets that the target RIP doesn't recognize.%% comments that confuse downstream tooling. A clean re-export rewrites only the standard DSC (Document Structuring Conventions) comments.| Property | PostScript (PS) | EPS | |
|---|---|---|---|
| Introduced | 1984 (Adobe) | 1992 (Adobe) | 1993 (Adobe) |
| Multi-page | Yes | No (single page) | Yes |
| Bounding box | Whole-page | Tight %%BoundingBox |
Tight crop box |
| Self-contained | Not required | Required (encapsulated) | Yes |
| Interactivity | None | None | Forms, links, JS |
| Random-access reading | No (interpret sequentially) | No | Yes (xref table) |
| Web-viewable in browsers | No | No | Yes (Chrome, Firefox, Edge, Safari) |
| Used by modern RIPs | Yes (PS3 / PDF Print Engine) | Rare for new work | Yes (PDF/X) |
| Typical role today | High-end print input | Vector logo asset | Universal exchange |
These five presets map to Ghostscript's -dPDFSETTINGS family, applied to a PostScript round-trip via the pdfwrite and ps2write devices. Names match what you see in the page's Advanced Options.
| Preset | Image downsampling target | Color handling | Best for |
|---|---|---|---|
| Screen (Best) | 72 dpi color/grayscale, 300 dpi mono | Convert to sRGB, JPEG-compressed | Smallest file, on-screen review, email |
| Ebook | 150 dpi color/grayscale, 300 dpi mono | Convert to sRGB | Tablet reading, low-volume office printing |
| Default | 150 dpi (general-purpose) | Preserves source mostly | Unknown downstream target |
| Printer | 300 dpi color/grayscale, 1200 dpi mono | Preserves source colors | Office laser/inkjet, in-house proofing |
| Prepress | 300 dpi color/grayscale, 1200 dpi mono | Preserves CMYK, embeds full fonts | Commercial print RIPs, PDF/X handoff |
The conversion engine interprets the input PostScript with Ghostscript and writes a fresh PS file from the rendered page state. That round-trip flattens uncommon operators, fixes malformed DSC comments, downsamples bloated images, and produces a PS stream that downstream interpreters and RIPs accept more reliably. It is not the same byte stream coming back — it is a cleaned, normalized version.
The output is PostScript Level 2/3-compatible because that is what Ghostscript's ps2write device emits. Level 2 (1991) added color images, JPEG decompression, and composite fonts; PostScript 3 (1997) added smooth shading, DeviceN color, and better filters. Almost every printer made since 2000 understands at least Level 2, so the output is broadly compatible. If your target device only speaks Level 1, you usually need a vendor-specific workflow rather than a generic converter.
Often, yes — if the file is structurally intact but contains operators or fonts the target RIP refuses, re-exporting through Ghostscript replaces them with standard equivalents. If the file is truncated (no %%EOF or showpage), the missing data is gone for good; a converter cannot reconstruct content that was never written. Open the file in a text editor; if the last line is %%EOF or showpage, re-export is worth trying.
For sharing, viewing, or archiving — yes, use PS to PDF. PDF is the modern successor to PostScript, is browser-viewable, supports random-access reading, and is the input format for most current print workflows (PDF/X-1a, PDF/X-4). Keep the file as PS only if a specific printer driver or RIP explicitly requires PostScript input.
Heavily image-laden PS files exported by older applications often shrink 50-90% under the Screen preset, mostly from downsampling embedded raster images to 72 dpi and applying JPEG compression. A text-and-vector-only PS file may only shrink 5-20%, since there are no raster images to recompress. If size barely changes, the bottleneck is embedded fonts or vector path complexity, not raster data.
PostScript output and Adobe PDF Print Engine RIPs still process PostScript and still render Type 1 fonts. What Adobe ended in January 2023 was authoring with Type 1 fonts in Photoshop, Illustrator, InDesign, and other Creative Cloud apps — you can no longer use Type 1 fonts as input when designing new content. Existing PostScript files already containing Type 1 glyphs are unaffected by that change.
.ps files today?LaTeX/dvips, GNU Octave's print drivers, Matplotlib's PostScript backend, Ghostscript, Inkscape (export), and many Linux applications via CUPS' cups-pdf/cups-pk-pdf filter chain still produce .ps directly. Adobe Illustrator 2024+ no longer offers .ps as a primary "Save As" target, though it still exports EPS. Most modern desktop apps have switched to PDF as the default print-to-file format.
On macOS, Preview opens PS files directly. On Linux, Evince, Okular, and GIMP all read PostScript. On Windows there is no built-in viewer — install Ghostscript plus GSview, or use a PS-aware viewer like SumatraPDF. If you just need to look at it, converting to PS to PNG or PS to JPG is usually faster than installing a PostScript stack.
If the printer supports PostScript Level 2 or PostScript 3 (most laser printers sold after 1995), yes. Level-1-only printers (rare today) may choke on some operators in the Level 2/3 output. For finicky devices, try the Default or Printer preset rather than Screen — fewer aggressive transformations means fewer chances of an interpreter rejecting an operator.