TweetFollow Us on Twitter

Aug 00 Online Volume Number: 16 (2000)
Issue Number: 8
Column Tag: MacTech Online

Quartz and PDF

by Jeff Clites <online@mactech.com>

As you've probably heard, Apple's new graphics system, Quartz, is based on PDF. You've seen screen shots of Quartz, and undoubtedly you've encountered PDF documents before, but that's probably where your knowledge of PDF ends. While you really don't need to know anything about PDF in order to develop applications for Mac OS X, it always helps to know a little bit more about the technologies you are working with, so that you can fully leverage them in developing your products. This month we are going to take a closer look at Adobe's PDF and its role in Apple's new imaging system.

So what is PDF exactly? The acronym stands for "Portable Document Format", as you probably know, and it is fundamentally a file format. In fact, Adobe's description, stated at the beginning of their PDF Reference Manual is, "PDF is a file format used to represent a document in a manner independent of the application software, hardware, and operating system used to create it. A PDF file contains a PDF document and other supporting data." This is in stark contrast to PostScript, which is a full-fledged programming language. So at first blush it may seem a bit strange to base a graphics and windowing system on a file format-Apple refers to PDF as a superset of PostScript, but now this seems somewhat like calling Photoshop a superset of C++. So what's the deal? Things begin to make a little more sense when you learn that PDF (and specifically, a PDF file) has four conceptual parts: a set of basic data types, a file structure, a document structure, and a page description. It is this last part, the page description, which is the core of PDF-as-a-graphics-model.

The Adobe Imaging Model

PostScript and PDF are based on the same conceptual imaging model, sometimes called the Adobe imaging model. At the most basic level, this model is no different from that of QuickDraw or most other 2D graphics systems: you create an image using operators which move a virtual pen to place marks on a canvas. In PostScript, you have primitive marking operators and in addition you have programming constructs such as loops and variables. In PDF, you retain these basic marking operators (and add others), but without the additional programmatic infrastructure, so a PDF document ends up being a description rather than a program. As a simple example, a page with 30 circles on it might be created in PostScript by placing the circle-drawing instructions in a loop which iterates 30 times; in a PDF file, this would be represented by 30 separate circle descriptions. As a consequence, a PDF document is potentially larger than a PostScript document, but it doesn't require the overhead of an interpreter to draw a page, it can render faster because the primitive marking operators are implemented directly in machine code, and it is easier to manipulate because strings and other components can be reliably located within a document (in PostScript you really have to "execute" the entire page first). You can think of this aspect of PDF as a RISC version of PostScript.

So, basing Quartz on the Adobe imaging model really means basing its primitive marking operators on those of PDF (and consequently of PostScript). These operators live in the part of Quartz called Core Graphics Rendering. (I'll call this "CG" for short, as Apple seems to have not officially named their new graphics model. I'll avoid just calling it "Quartz", as this includes Core Graphics Services, which is essentially the window server.) As I mentioned above, there isn't a huge conceptual leap from QuickDraw, but that doesn't mean that there aren't huge advantages. For one, distances in CG are given as floating-point numbers rather then integers, and can be in real-world units such as inches and centimeters. This difference is profound, as it largely divorces the drawing process from explicit concerns of screen or printer page size or resolution, and reduces such things to primarily a scaling issue. It's also fundamentally vector-based, so you're not tempted to draw a single "pixel", although even in QuickDraw one tends to do this by drawing a 1 x 1 square. Also importantly, CG has a sophisticated set of text layout and graphics transformation operators, so finally it will be easy for a Macintosh programmer to rotate text and images on the screen. And on top of PDF's core, Apple has added features such as composition and translucency. It wouldn't be surprising if these were to migrate back into a future version of the PDF specification. (Also note that CG is based on PDF 1.2, rather than the current version 1.3, but Apple plans keep pace with the Adobe's specification as it evolves.)

Core Graphics Rendering at the Center

Core Graphics Rendering serves as the hub of drawing activity, accepting instructions using its native C-based API (which you'll likely access through a higher-level framework), QuickDraw commands, PDF files, or possibly other input sources. From here it can render them to the screen, create raster data for a printer, or record them in a format such as PDF or PostScript. (It's fairly trivial to record a sequence of CG drawing operations to a PDF document, much as a PICT could store a recording of QuickDraw commands. It's easy to forget that PICT is actually a vector format, isn't it?) Note that this doesn't mean that all graphics, before displaying to the screen, exist as actual PDF documents.

There are several key advantages to this arrangement. First, it brings the conceptual simplicity that Display PostScript brought to NeXT's operating systems, namely a single graphics model for both screen and printer. This makes things such as print preview and print-to-file trivial, since PDF is the default spool-file format. This also means that you can get perfect output from cheaper, non-PostScript laser printers, and it opens the door for a new generation of "dumb" printers with minimal computational power, because the operating system fundamentally understands how to render documents all the way to raster data at printer resolutions. (This is a tactic used by the first generation of laser printers produced by NeXT, which were cheaper and operated at a higher resolution than other printers available at the time, and which I'm excited to see finally make it to the Macintosh. It always seemed like a waste to pay for a slow processor which sits mostly idle in a printer when there is a much more powerful processor available in your computer.) Core Graphics has many technological improvements over Display PostScript, but it also has the very clever advantage of freeing Apple from Adobe's licensing fees and restrictions while maintaining a very similar API which allows long-time OpenStep developers to leverage their past experience.

Reading Assignment

In the coming months I hope to cover additional aspects of Mac OS X's new graphics environment. Until then, you have some reading to do. First and foremost, you should read Apple's Inside Mac OS X: System Overview. In fact, you should read the whole thing, from cover to cover, and then read it again, because it's all important information that you'll need to know as we move forward with Mac OS X. There are also several articles on the Ars Technica web site which augment this same material, including an article specifically on Quartz and Aqua. Second, take a look at Adobe's PDF specification - it's large but fairly readable. You won't have to know this information directly in order to use Core Graphics, but it helps to know a little bit about PDFs in greater depth, since you'll be working with a lot of them. This reference also spells out the connection between PDF and PostScript more fully. If you're interested, you might also do a little light reading on PostScript, mostly for perspective rather than for the details. Adobe's PostScript Language Reference has a great deal of explanatory material, and you can also download the electronic version of Glenn Reid's Thinking in PostScript book, which is much shorter. (Somewhat ironically, even the PostScript references come in PDF form.)

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

1Password 6.6.4 - Powerful password mana...
1Password is a password manager that uniquely brings you both security and convenience. It is the only program that provides anti-phishing protection and goes beyond password management by adding Web... Read more
Cocktail 10.3.1 - General maintenance an...
Cocktail is a general purpose utility for macOS that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
Safari Technology Preview 10.2 - The new...
Safari Technology Preview contains the most recent additions and improvements to WebKit and the latest advances in Safari web technologies. And once installed, you will receive notifications of... Read more
Together 3.8 - Store and organize all of...
Together helps you organize your Mac, giving you the ability to store, edit and preview your files in a single clean, uncluttered interface. Features Smart storage. With simple drag-and-drop... Read more
GraphicConverter 10.4 - $39.95
GraphicConverter is an all-purpose image-editing program that can import 200 different graphic-based formats, edit the image, and export it to any of 80 available file formats. The high-end editing... Read more
beaTunes 4.6.13 - Organize your music co...
beaTunes is a full-featured music player and organizational tool for music collections. How well organized is your music library? Are your artists always spelled the same way? Any R.E.M. vs REM?... Read more
Vienna 3.1.9 :e81515b: - RSS and Atom ne...
Vienna is a freeware and Open-Source RSS/Atom newsreader with article storage and management via a SQLite database, written in Objective-C and Cocoa, for the OS X operating system. It provides... Read more
iExplorer 4.0.12.0 - View and transfer f...
iExplorer is an iPhone browser for Mac lets you view the files on your iOS device. By using a drag and drop interface, you can quickly copy files and folders between your Mac and your iPhone or... Read more
OpenEmu 2.0.5 - Open Source game-emulati...
OpenEmu is about to change the world of video game emulation, one console at a time... For the first time, the 'It just works' philosophy now extends to open source video game emulation on the Mac.... Read more
TextSoap 8.3.3 - Automate tedious text d...
TextSoap can automatically remove unwanted characters, fix up messed up carriage returns, and do pretty much anything else that we can think of to text. Save time and effort. Be more productive. Stop... Read more

Ticket to Earth beginner's guide: H...
Robot Circus launched Ticket to Earth as part of the App Store's indie games event last week. If you're not quite digging the space operatics Mass Effect: Andromeda is serving up, you'll be pleased to know that there's a surprising alternative on... | Read more »
Leap to victory in Nexx Studios new plat...
You’re always a hop, skip, and a jump away from a fiery death in Temple Jump, a new platformer-cum-endless runner from Nexx Studio. It’s out now on both iOS and Android if you’re an adventurer seeking treasure in a crumbling, pixel-laden temple. | Read more »
Failbetter Games details changes coming...
Sunless Sea, Failbetter Games' dark and gloomy sea explorer, sets sail for the iPad tomorrow. Ahead of the game's launch, Failbetter took to Twitter to discuss what will be different in the mobile version of the game. Many of the changes make... | Read more »
Splish, splash! The Pokémon GO Water Fes...
Niantic is back with a new festival for dedicated Pokémon GO collectors. The Water Festival officially kicks off today at 1 P.M. PDT and runs through March 29. Magikarp, Squirtle, Totodile, and their assorted evolved forms will be appearing at... | Read more »
Death Road to Canada (Games)
Death Road to Canada 1.0 Device: iOS Universal Category: Games Price: $7.99, Version: 1.0 (iTunes) Description: Get it now at the low launch price! Price will go up a dollar every major update. Update news at the bottom of this... | Read more »
Bean's Quest Beginner's Guide:...
Bean's Quest is a new take on both the classic platformer and the endless runner, and it's free on the App Store for the time being. Instead of running constantly, you can't stop jumping. That adds a surprising new level of challenge to the game... | Read more »
How to rake in the cash in Bit City
Our last Bit City guide covered the basics. Now it's time to get into some of the more advanced techniques. In the later cities, cash flow becomes much more difficult, so you'll want to develop some strategies if you want to complete each level.... | Read more »
PixelTerra (Games)
PixelTerra 1.1.1 Device: iOS Universal Category: Games Price: $.99, Version: 1.1.1 (iTunes) Description: The world of PixelTerra is quite dangerous so you need to build a shelter, find some food supply and get ready to protect... | Read more »
Tokaido™ (Games)
Tokaido™ 1.0 Device: iOS Universal Category: Games Price: $6.99, Version: 1.0 (iTunes) Description: Discover the digital adaptation of Tokaido, the boardgame phenomenon that has already sold more than 250,000 copies worldwide, and... | Read more »
Card Thief (Games)
Card Thief 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Card Thief is a solitaire style stealth game played with a deck of cards. In Card Thief you move through a deck of cards as a... | Read more »

Price Scanner via MacPrices.net

Apple’s iPhone 6s Tops Best-Selling Smartphon...
In terms of shipments, the iPhone 6s from Apple bested all competitors for sales in 2016, according to new analysis from IHS Markit, a world leader in critical information, analytics and solutions.... Read more
Logitech Rugged Combo Protective iPad Case an...
Logitech has announced its Logitech Rugged Combo, Logitech Rugged Case, and Logitech Add-on Keyboard for Rugged Case for Apple’s new, more affordable $329 9.7-inch iPad, a complete solution designed... Read more
T-Mobile To Offer iPhone 7 and iPhone 7 Plus...
T-Mobile has announced it will offer iPhone 7 and iPhone 7 Plus (PRODUCT)RED Special Edition in a vibrant red aluminum finish. The introduction of this special edition iPhone celebrates Apple’s 10... Read more
9-inch 128GB iPad Pros on sale for $50-$70 of...
B&H Photo has 9.7″ 128GB Apple WiFi iPad Pros on sale for up to $70 off MSRP, each including free shipping. B&H charges sales tax in NY only: - 9″ Space Gray 128GB WiFi iPad Pro: $649 $50... Read more
27-inch iMacs on sale for up to $200 off MSRP...
B&H Photo has 27″ Apple iMacs on sale for up to $200 off MSRP, each including free shipping plus NY sales tax only: - 27″ 3.3GHz iMac 5K: $2099 $200 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $... Read more
Save up to $600 with Apple refurbished Mac Pr...
Apple has Certified Refurbished Mac Pros available for up to $600 off the cost of new models. An Apple one-year warranty is included with each Mac Pro, and shipping is free. The following... Read more
Save $230 with Apple Certified Refurbished 13...
Apple is now offering Certified Refurbished 2016 13″ 2.0GHz non-Touch Bar MacBook Pros for $230 off original MSRP. An Apple one-year warranty is included with each model, and shipping is free: - 13″... Read more
Apple price trackers, updated continuously
Scan our Apple Price Trackers for the latest information on sales, bundles, and availability on systems from Apple’s authorized internet/catalog resellers. We update the trackers continuously: - 15″... Read more
13-inch Touch Bar MacBook Pros on sale for up...
B&H Photo has the Apple 13″ Touch Bar MacBook Pros in stock today and on sale for up to $150 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 2.9GHz/512GB Touch Bar... Read more
Today only! 15-inch 2.7GHz Space Gray Touch B...
B&H Photo has the new 2016 15″ 2.7GHz Space Gray Apple Touch Bar MacBook Pro in stock today and on sale for $300 off MSRP for today only. Shipping is free, and B&H charges NY sales tax only... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Director, *Apple* Program - ERP & Cloud...
Leading Pharmaceutical / Biotech Company is announcing a Director, Apple Program - ERP & Cloud Platform Architecture Lead opportunity in Northbrook, IL. Purpose & Read more
Fulltime aan de slag als shopmanager in een h...
Ben jij helemaal gek van Apple -producten en vind je het helemaal super om fulltime shopmanager te zijn in een jonge en hippe elektronicazaak? Wil jij werken in Read more
Starte Dein Karriere-Abenteuer in den Hauptst...
…mehrsprachigen Teams betreust Du Kunden von bekannten globale Marken wie Apple , Mercedes, Facebook, Expedia, und vielen anderen! Funktion Du wolltest schon Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.