PostScript, EPS, PDF, AI ... ahhhh, what's the difference?

Note: this is an article I originally wrote for Corel's Designer.Com site. It's still going strong, but this article seems to have disappeared off the site. Things change, it's a few versions of Draw out of date, but the basics are still valid. I'll do a more non-denominational rewrite of it in time.

In fact, they're similar in some respects, but they're not the same. You can work with all of them in Draw, but if you want reliable, predictable results, it pays to learn the differences.

At one time, each of these formats had its own unique place in the PS hierarchy and each had its own set of rules and limitations. You couldn't import PS into Draw because PS was only meant for printers. You couldn't edit or import PDF because it was an "output-only" format. The demarcation lines were clear, so you had a pretty good idea what you could and couldn't do with a given file.
That was then, this is now, and now can be kind of confusing.

Now, Draw imports PDF in not just one but several different ways. The Interpreted PS filter brings PostScript into Draw as editable objects and can do the same for EPS. Or you can place the EPS instead, depending on what you need to do and what sort of printer you plan to do it on.
The once-clear lines that separated these file types and how you handled them have gotten blurred.
The file types have started to overlap.

I'm not suggesting for a moment that that's bad. We have more flexibility than ever before, and that's unquestionably A Good Thing. Unfortunately, attempts to import files still go awry once in a while, and when they do, it's harder to know whether it's a problem with the file, the import filter, or our expectations of the import.

What can you do about it? That's what we're here to talk about.

Steve's first rule of imports
Use the different file formats as they were originally intended, and you won't go far wrong.

With that in mind, let's have a look at each file type, what it was intended for and how best to use it.

PostScript
PostScript is a full-fledged programming language intended for producing printed pages on printers. (I use the term "printer", but I really mean "printer, imagesetter, or any other PostScript-driven output device, including the PostScript interpreter built into Draw.")

Like other programming languages, PostScript has commands that control the "flow" of a program, the order in which commands are executed or whether they're executed at all. PostScript can also control hardware-specific printer features. It can tell the printer to use a certain size paper or input tray, change the resolution, or virtually anything else you could do from the printer's control panel.
PostScript was never intended by its inventors at Adobe as a way to exchange graphics, but they soon realized that with a few modifications, it could be made to do that, and do it very well indeed. That brings us to EPS.

EPS
Encapsulated PostScript is the same as PostScript, except that an EPS file contains a single image, never more, and it's not allowed to include certain commands that may appear in regular
PostScript.

Why "encapsulated"? When Draw places an EPS file, it brings in the contents of the EPS as a lump, then spits it back out virtually unchanged when you print to a PostScript printer. Draw neither knows nor cares what's inside. It simply builds a kind of PS software wall around it, then tells the printer "Here's some PS. Put it over there, make it this big, you work out the rest."

If the EPS included certain commands, it could prevent the rest of the PS job from printing. For example, imagine some PostScript code that tells your HP LaserJet to print twelve copies on 3" x 5" postcard drawn from the manual feed tray. If you send that to your Laserjet, no worries, right? But what if those same instructions appeared in an EPS in the middle of a job that was running out to film on an imagesetter. That wouldn't go over well at your (formerly) friendly neighborhood service bureau, now would it?

Apart from the one-image-per-file and forbidden commands limitations, EPS can contain just about anything that PostScript can.

AI
If EPS is a slightly limited subset of full PostScript, then Adobe Illustrator AI format is a strictly limited, highly simplified subset of EPS. While EPS can contain virtually any PS command that's not on the verboten list and can include elaborate program flow logic that determines what gets printed when, an AI file is limited to a much smaller number of drawing commands and it contains no programming logic at all. For all practical purposes, each unit of "code" in an AI file represents a drawing object. The program importing the AI reads each object in sequence, start to finish, no detours, no logical side-trips.

You may have noticed that I talked "placing" EPS files, but now I'm "importing" AI files. When Draw brings in an AI file, it converts each AI object to a Draw object, but it places EPS whole, untranslated and intact, for later use as-is at print time. Like Draw's import filter menu, I like to use Import vs. Place to distinguish these two behaviors.

PDF
If PS and EPS are nearly identical twins and AI bears a strong family resemblance, PDF is a half-sibling.

It's like PostScript in the way it "thinks" about graphics and text, and it can contain many pages in a single file.

On the other hand, it's like AI, since it doesn't include any programming logic.

Unlike either, PDF can also contain a lot of document structure, links and other related information, but this has no bearing on how we import PDFs into Draw, so we'll blithely ignore it and move on.

Import(ant) rules to live by
When you import (or place) a graphic, always tell Draw specifically what you want it to do by choosing the correct file type in the Files of type drop-down list box. Otherwise, Draw has to examine the file and make its best guess about what you want done with it. It might choose to interpret an EPS that you really wanted to place.

Given an EPS file, both are equally valid choices; it's up to you to pick the one that suits your needs. Draw might also place an AI file as though it were an EPS; this is probably not what you want it to do, but it may be impossible for Draw to tell whether a given file is an AI or an EPS, especially if it has an EPS extension. Sometimes it needs a little help from you.

Importing PS files
There's only one way in the Draw door for PS files: make sure your file has a PS or PRN extension and choose the PostScript Interpreted filter when you import. No muss, no fuss.
Importing EPS files

If you only need to import an EPS image, position and size it, and plan to print to a PostScript output device, the Encapsulated PostScript filter is the one to use. If it's an Adobe Illustrator EPS, it's a good idea to make a quick test printout to your PS printer after importing; some older versions of Illustrator make EPS files that are really AI format. Depending on the export options chosen, these may not print when you place them as though they were EPS files.

If you need to edit the imported image, or if you'll print to a non-PS printer, the PostScript Interpreted filter is the one to choose.

Importing AI files
Though you can place some AI files just as you would EPS, it's not always a good idea unless you're certain that the file was saved as EPS from Illustrator in the first place (and if that's the case, just rename the file to Whatever.EPS and forget you ever heard of Illustrator). Beware: Illustrator is not very good about forcing users to distinguish between AI and EPS. It's not uncommon to see "EPS" files that are really AI format, and with Illustrator versions prior to 7, these AI-masquerading-as-EPS can cause a PS print job to fail.

When in doubt, choose the Adobe Illustrator import filter. As a sanity maintenance measure, make sure the file has an AI extension, renaming it if need be before you import it.

If a particular AI file you need to edit gives you problems, save it again from Illustrator as a PC EPS file with no preview, then import that using the PostScript Interpreted filter.

Importing PDF files
If you use Draw 7 or 8 you can import PDF directly, but the results are liable to be mixed, especially where text is concerned. If you'll be outputting your CDR to a PostScript printer and don't need to edit the PDF contents, you're better off using the Adobe Placed PDF Page import filter, which converts the PDF page you choose to an EPS and places it in Draw.

If you need to edit the PDF and have Adobe Exchange, you can export an EPS from Exchange or print to PS file, then import the results into Draw using the PostScript Interpreted filter.

All of that changes when you upgrade to Draw 9 and later versions, which have much more advanced PDF import capabilities. Definitely give the PDF Import filter a try before resorting to any of the other methods.