WWDC2001 Session 108
Transcript
Kind: captions
Language: en
thank you and welcome to the second day
of WWDC estar as mentioned my name is
Derek Clegg I work in the quartz imaging
technologies
I'm the principal engineer responsible
for our PDF support and Mac os10
so today what we're going to talk about
is what's PDF that's the principal focus
I think a lot of people don't actually
understand what PDF is what it does so
we're gonna focus a lot on PDF per se
and then also we want to talk about how
Mac os10 in particular quartz uses PDF
so what's PDF well all it really is at
the bottom is just a file format it's a
way of specifying how data goes into a
file but what it's trying to do is
provide a persistent representation of
document layout and what's really
important for us in particular and
what's very nice about PDF is that it's
independent of your software your
hardware your operating system a PDF
file sort of works on Mac os10 it works
Mac OS 9 it works on Windows so that's a
very valuable thing for us so the thing
PDF is actually a specification it's
published by Adobe you can you can go
download it from the web you can go buy
it as a book the current version is the
1.3 second edition it's a very nice
specification unlike some specifications
in the world and adobe has just recently
published the 1.4 differences this is
the document that describes how PDF 1.4
differs from PDF 1.3 so they actually
haven't published the 1.4 spec yet but
they do have information about what's
coming down the road so let's talk a
little bit about what PDF the problem P
is trying to solve okay so we have a
document we have information we want to
convey if you think about that the basic
bottom level is just content it's like
the words you're using and it's the
images using and it's the you know the
line art you're trying to display and
sometimes it's sufficient just to have
content alone a good example of that is
HTML HTML as a format which has
you're content it really doesn't have a
strong layout sense if your browser
decides to use a different font or
position things the page in its own way
it's free to do that that's good but
that's often not sufficient and in
particular you often want to add layout
information into your content stream so
you want to be able to say okay this
image appears here and there's this
title here and this text blows this way
around here and this you know this page
number appears right at this point on
the bottom of the page
a traditional example of this is
PostScript PostScript represents
document content and layout information
in a very nice way PDF is exactly
analogous in that sense it's it contains
both content and layout information and
it sort of whoops sort of lives one step
above the actual device I mean you can
sort of say well you go from content
which is an abstract representation sort
of like the words you're using to layout
which is positioning information as well
to actual to the device where you
actually say okay now I'm gonna print
this thing on a piece of paper
PDF lives in this middle area where you
have all of the information you need in
terms of content but you don't you're
not tied to a particular device you're
not tied to a resolution to a particular
color space to you know a piece of paper
so PDF and PostScript live in the same
place in terms of the document
representation so as I mentioned there's
PDF contained sort of describes the
document and there's really two parts
that we're interested in in courts we're
interested in one part and PDF contains
an additional part the page content is
the part of PDF that actually says
here's what a page looks like this is
the titles here and there's these 14
lines of text and then there's an image
the document itself though is bigger
than that in PDF there there's sort of
additional metadata that can go into it
into a document that describes
information about the document that's
not actually displayed as part of the
page so as an example the document can
contain things like annotations
additional information that's relative
to the page which isn't actually part of
the page itself hypertext links
interactive forms of you might have used
Acrobat and you can brought up a PDF
file
able to fill in the form in PDF 1.4
they've added what's known as logical
structure tagging this is a mechanism
where you can say Oh on this page this
parent this is a paragraph and this word
in this paragraph is in Spanish and this
word over here is in I know Chinese and
so it from its pure meta information
that's not really part of the page
proper it's sort of information about
the page it doesn't affect how the page
is displayed the page content itself is
made up of three pieces there's text
pretty cool obviously you need text to
convey information vector art and
sampled images now courts 2d what we
care about in Mac os10 and on the courts
2d part we only are interested in page
content the document content while it's
very important is not something that we
can take advantage of on the level of
courts 2d we want to have a persistent
graphics representation so we're
concerned primarily with page content
and that's why I'm going to be talking
about today some people sort of have
referred to this as dumb PDF which is
sort of true it's the PDF without all
the without as much metadata as you
might get if you generate it from
Acrobat but that's perfectly appropriate
for the applications we use it for in
courts 2d so
so let's dive down a little bit into
what is in a page what's the page
content a page description is a way of
representing the page in a device and
resolution-independent manner what that
means is that the page isn't tied to a
particular say screen that's going to
display on our printer you're going to
it's independent of that it's a it's an
abstract specification of how the
document gets gets laid out and it's
resolution independent you're not tied
to a particular bit depth or color space
you know you can go to CMYK or RGB
printers the document is the same
independent of the destination the
contents are independent the crater
which means in particular that all the
PDF that's generated is going to end up
being the same format it's not like a
special Windows PDF or special Adobe PDF
or special Apple PDF PDF is the same in
a particular we take that very seriously
at Apple we're not going to generate
special Apple PDF it only works on Mac
OS 10 machines or anything like that
what we generate will work on Acrobat on
Windows on Mac on UNIX platforms so we
want to make sure that we are generating
PDF it is independent of substance
independent of us that works everywhere
and the page itself is based on the PDF
page description is based on the
PostScript imaging model those of you
familiar with PostScript might recognize
this and I'll talk about this a little
bit more so the question is what's an
imaging model I mean when you we sort of
talked about the PostScript energy model
or the quartz 2d imaging model an
imaging model is just an abstract way of
saying how you're gonna put things on a
page so as you get the result you want
to get obviously an imagery model needs
to be capable of describing simple
things complex things you're going to do
anything complicated like a magazine
illustration or an ad for a magazine or
something like that like that you're
going to need to have relatively
sophisticated imaging model and
unsurprisingly you're gonna have to have
fonts you're gonna have to have images
like you might get from a digital camera
you're gonna need vector art so PDF has
a particular imaging model a particular
way of specifying how things get put on
the page it's imaging model is called
it's based on the painters
rhythm which is essentially how a
painter paints when you put down paint
on a page you put down more paint on top
what you put down on top obscures what's
underneath you sort of build up your
image your page by putting more
important paint up and you sort of build
from the bottom up now one thing that's
slightly different in PDF 1.4 they've
added the notion of transparency so it's
not it's the the paint you put on top
doesn't necessarily completely obscure
what's underneath you can think of it as
the paint sort of like watercolors when
you put a watercolour down you don't
obscure what's underneath you sort of
shade what's on what's underneath so
that's the same sort of idea in PDF the
imaging model you can paint things you
can paint glyphs you can Bank vectors
you can paint images that's sort of
their basic set of three things there's
nothing else that's available for you
turns out that's actually rich enough
for pretty much everything you want to
do and the paint in this metaphor is a
color for example RGB values or CMYK
values it could be a grayscale value a
paint can also be a pattern so you might
have a replicated sequence of stars or
ducks or something and it could be a
gradient which is you know a smooth
transition from one color to another
over a range of space another very
important part of the imaging model is
the is that paint only is drawn within a
current clip region this is again if
you'll you know let me extend the
metaphor it's exactly what a painter
does you put down some tape and when you
paint you're only going to show the
paint in that region which you've taped
off this is very valuable when you're
trying to draw complicated images I
build up a complicated piece of artwork
to be able to clip to a certain region
and the key thing and I think that the
thing that's very important for PDF is
that the PDF and PostScript imaging
models are identical anything you can
represent in post group you can
represent in PDF so that's very very
powerful but that doesn't mean that
they're the same thing PDF ism is a more
restricted format than PostScript
there's a lot more stuff you can do it
there's there's different types of
things you can do in post group that you
can't do in PDF but in the end result is
that everything that you can image in
PostScript you can image in PDF
so so now we're gonna talk a little bit
about a PDF document and what's actually
inside there so the PDF document is the
thing that's you know like food PDF if
you look at it in your in your Mac os10
machine it can to contain you know more
than one page obviously you might have
say a book for example that you're
publishing as a mission before pages can
contain text vector art and graph and
sampled images and then as image before
documents may contain this metadata that
tells you information about the pages so
let's go into that a little bit more
into the contents of a particular page
so the vector art is actually relatively
simple and yet it's very rich and very
powerful all vector art is constructed
from curves in this case Bezier curves
that's the only curve you can use and
lines so you can build up any shape you
want to from curves and lines it turns
out that's actually pretty a pretty rich
set of even though it's simple it
actually lets you do almost all vector
art that you would like to do when you
build up a path you can stroke it or you
can fill it or you can use the path to
specify a clip region so you might for
example have four curves that you
collect together and create a circle and
you could fill the circle and then clip
to that and draw some stuff inside of
that and so on and then another
important part and this sort of follows
through for each of the pieces of PDF
that you can draw on a page this is
something known as the current
transformation matrix this is a
transformation that lets you map to sort
of essentially modify the coordinates at
the drawing from what you specify to
what gets drawn on the page so you can
change the transformation matrix you can
rotate it or you can scale it and what
you draw what you specify will be drawn
through that transformation matrix on
the page so for example if you want to
draw a rotated rectangle you could just
draw your rectangle the regular way
change the transformation matrix to
rotate and then when the rectangle is
put gets put on the page it's drawn
rotated this is actually very powerful
it's part of the PostScript image it
PostScript uses the same thing and it
makes it easy to do complicated drawing
simply
the second part of PDF in terms of
building up the page content that's
important is sampled images at sampled
images just like what you get from your
digital camera it's just an array of
samples you know this many samples
across you know thousand 70a this made
samples down and each sample represents
a color it's just a value that
represents a color at that point in the
rectangle so PDF is has a nice rich set
of bit depths that it supports it sports
one two four and eight this is pretty
much industry standard
there's also 12 bit images but those
aren't so common currently a PDF may and
I don't know whether it will support
that in the future and again just like
with vector art everything that's drawn
all the images that are drawn a map
through the current transformation
matrix that means that you can take your
image you know your 10 by 7 image and
rotate the transformation matrix and
draw the image and the image will show
up rotate it you don't actually have to
calculate what the pixel values are as
you rotate the image yourself PDF knows
how to do that for you and you end up
with a very very nice rotated image
without actually having to rotate it
yourself and then finally fonts so
pretty much for page content you know
the meat of things is the text the
information the words you're trying to
convey fonts are used to convey that
obviously and each font consists of a
set of glyphs or glyphs a glyph is just
a representation of a character and the
font it's treated from the point of view
of PDF typically as an outline just like
a piece of vector art essentially as a
consequence glyphs can be stroked or
filled just like with vector art and you
can also clip through them so you can
have a big capital letter a and you can
say clip to that and everything you draw
from that point on would be clipped
through that letter a so you can get
nice complicated graphic results using
it very simply and as with vector art
and with images glyphs are map through
the current transformation matrix so if
you want to draw our rotated text you
can do that simply the same font can be
used to draw a skewed text or scale text
so everything sort of goes to the
current transformation matrix which
again lets you do complicated drawing
very easily with with not much work
now fonts are actually a big thing in
the industry there's lots of different
types of fonts that have that have come
through over the years the big ones are
the ones from Adobe and true type Adobe
type 1 is an 8 obviously the dhobi ones
are part of PDF Adobe type 1 is fully
supported in PDF the Adobe type 1
multiple master as well
Adobe the cff compact font format is
also supported that's a essentially sort
of a variation of type 1 but it's a
smaller format it's used as the basis
for OTF fonts a Tobi type 0 is sort of a
container for CID font CID fonts are
used for Chinese Japanese Korean
Vietnamese languages essentially any
language where you have a large number
of glyphs typically in the order of many
thousands to represent the language so
this is a very important thing for say
the Japanese market where you want to be
able to support various forms of
Japanese fonts that have many many
glyphs in them and then of course true
type and probably an old standard for
most of you so what's what's important
is that PDF is trying with fonts in
particular to produce a high fidelity
representation of the document content
that means that if you want to display
your page correctly you want to be able
to have a font that you are interested
in Optima or you know min show or
something like that displayed correctly
for the viewer even if they don't have
the phone on their system I mean ideally
you'd like to have your document be
exactly reproducible on every system you
have so what PDF allows you which is
very powerful is it allows you to embed
a font within it within the document
itself you can take say Optima embed it
in there and that means that when you go
to display your a PDF document on a
system that doesn't have Optima the
document will display correctly because
the fonts part of the document that's a
really great thing and that's one of the
you know principle reasons we like one
of the reasons we like PDF is it make
sure that you get the right result you
what you see here is what you get over
there now that's all good but if you're
talking about a CJK be font or even
Optima
you might not want to just download all
of that information into your PDF
document that could be you know three or
four megabytes in some cases so adobe
lets you subset fonts which means that
if you're just displaying the letters
you know baw for example who knows why
maybe that's your the acronym or
something you could you can just take
the letters baw from the font create a
subset font and then embed that so
that's actually really good we use that
very much very heavily in in Mac OS 10
when we're generating PDF documents to
only include the parts of the font that
are relevant not the entire font this
keeps your documents small but also but
continues to ensure high fidelity
representation now there are cases there
are cases when for copyright reasons are
a variety of maybe user choice
it's impossible are not reasonable to
embed the font so PDF unlike PostScript
PDF actually also lets you specify
metadata about a font so you may put put
a reference into your document that
you're using Optima but you might not
for some reason embed Optima but you can
include enough information in the PDF
document that allows some other system
to Pho the font to create an approximate
font that looks very close to the
original font and this is really
valuable when you are in a situation
where for some reason you can't embed
the font or you have files that don't
have it you get a pretty close look some
100% but it's a lot better than for
example in PostScript where if you
didn't have the font you get courier
which looked awful some of you may
actually remember that okay so what we
talked about are the major parts of the
content stream the vector art the
sampled images and the fonts now that's
sort of the sort of the the abstract
data you now need to sort of paint it
with something well you paint it with a
color so how do you specify a color in
PDF
well color Speight you specify color
with color spaces and those are those
tell the PDF document how to fill or
stroke a shape it also tells the PDF
document how to interpret the samples in
a sampled image whether these samples
are
and say RGB color space or CMYK or some
sort of calibrated gray space for
example and what's also nice is that one
of the principal parts of PDF that's
built in is full support for ICC
profiles this allows you to have high
fidelity color calibration in a PDF
document it's one of the main reasons we
like PDF because it's the ICC profiles
are fully compatible color sync that
means that what we generate our
technology that supports color sync is
completely compatible with what comes
out of PDF and so we don't lose fidelity
and when we're doing color management so
there's two major types of color spaces
that are interesting in PDF there's
device dependent color it's it's used in
the situations where you're not as
concerned with the fidelity the color
representation in general you know we
because we're very interested in high
fidelity color reproduction aren't you
no too keen on encouraging it but it is
available there's device gray device RGB
device CMYK the device independent
colors basically the calibrated colors
are also supported and in that case
there's calibrator diet gray and
calibrated RGB L star a star B star
which is a color science color space
that you could probably forget about and
never be affected by and then finally
the important one which is ICC profiles
same sort of thing we used in color sync
they're much more common nowadays than
the other two color spaces and they're
there do provide for high calibrated
color
in addition PDF lets you do two other
special color spaces there's the index
color space where what you're specifying
at that point is each value is an index
into a table of other colors so a good
example of this is jiff images some of
you may be familiar with that where you
really your image is only 256 values but
each value from 0 to 255 is an index
into some other color table so PDF has
that support in there it's it's perhaps
not as used as some as much in nowadays
but it is available and then separation
and advice in these are essentially the
same thing
separation is like device 1 what it
allows you to do
this is used when you're printing
typically you often will want to do a
CMYK printing pass and you might have
another separation or two or three maybe
an orange CMYK is cyan magenta yellow
black so you because it's difficult to
get a pure orange or a pure purple or
some other color you might have an
additional separation so PDF allows you
to do this this is really for high-end
printing applications it's not typical
for most use but it is available okay so
we talked at this point about the PDF
content what goes into it the painting
the color and so on so you have now sort
of you can imagine maybe to build up a
magazine page you have all these images
and all this vector art and all this
text and these fonts and all this other
stuff in there and that could be huge so
one thing that you run into immediately
is well how do I keep the file size to
be a reasonable size
fortunately PDF has built into it a way
to compress the data in the PDF file and
some of you may or may not have opened
up a PDF file and notice it's lots of
binary data and you think oh my goodness
is a binary format it's actually I mean
it's it is a binary format in some sense
but really what you're seeing is the
compressed data typically not
necessarily some sort of weird structure
that you can't understand it's just the
compressed data for the PDF file so
those two mechanisms for compressing
data and PDF
there's the lossless one the case which
you typically want for page content
where you don't want to lose information
and then for images there's both
lossless mechanisms and lossy lossy is
really very valuable for say images with
color it's basically the basis of JPEG
and so on so for page content there's
two typical ways there's lzw which is
many of you familiar with that from the
patent issues and so on compression and
then there's flight compression some
it's also called it's available like Zee
Lib and stuff like that
this is another this is really much more
common method because it's patent free
that's being used more and more now but
both of these are very can be very
powerful in their own ways and are it's
supported natively in PDF for images
it's a little bit
complicated for lossless compression of
images it's which is typically good for
grayscale there's a PNG equivalent PNG
specifies a way to use flate compression
for encoding image data so there's a
quibble --nt way and PDF to specify that
although PDF doesn't allow you to embed
a PNG image directly it lets you embed
the PNG data directly for greyscale
proper typically one bit a fax for
example there's the CCIT group three in
Group four in code compression
mechanisms and also run link not so
interesting but it's available and then
in 1.4 there's this new cool thing which
is actually going to replace the CITT
group new in route 4 in the industry
called j big - which is a way of
compressing specifically sort of
tailored to fax data in a in a very nice
way that's a lot great gives you a lot
better better compression than ccitt fax
compression but that's a one point for
the two lossy ways of compressing
there's JP JPEG for color is the most
interesting case grayscale doesn't
compress very well it's JPEG and of
course grayscale you can press it with
JPEG or with J big - there's a mechanism
for JPEG - which lets you do lossy
compression of greyscale now we have a
PDF document you have everything's
compressed it's all ready so let's talk
a little bit about what it's like to
actually create a PDF document or
display it so I wrote a lot of the code
that creates both PostScript and PDF
files and this first one is a big big
advantage you can do single pass file
generation we're generating PDF that
means that because well basically PDF
has a way of referencing objects before
they're actually specified in the file
so you can if you want to write an image
you can say oh here's an image that I
want you to display now and then
sometime down the road you can actually
write out the image data the problem the
reason that's good is because you can
actually sort of create the file as
you're going along and when you're ready
you can dump the image data you don't
have to sort of store the image data
someplace else and then
copy it back into the file when you need
to display it I mean PostScript has not
one pass file generation and it's
terrible you do end up with lots of
temporary files you're copying stuff all
the time it's a big mess PDF is really
great because you do one pass done you
have the output this is really good when
you're spooling and you're spooling
large files because you're spooling time
to the printer is going to be a lot
faster it's the sort of the the
corollary to that is that what you end
up with when you're trying to display
the document is random access it's not
like PostScript where you have to sort
of start at the beginning and seek to
the information you need PDF has a
cross-reference table at the end that
tells you where every object in the
document lives so you can quickly go to
page number so-and-so image number
so-and-so and pretty much constant time
an independent of the number of pages
the file size and so on so that's a
really big one when you're displaying
it's actually a big advantage that they
have a way to look up information in the
file and what's also nice about PDF is
that it's in each page is independent of
other pages those of you who might have
worked with PostScript before know that
to display page number 355 you pretty
much need to display all the pages up
till then unless you know you sort of
hope that the document structure and
kind of comments are correct and the
pages really are independent and so on
but if a bad PostScript file you got to
display everything until that page in
order to make sure you know it's correct
PDF encapsulate each capsule eights each
page as an independent entity they're
not well they don't refer to pages prior
or after them so this is really good for
a display you can quickly display the
thirtieth page with 300 page and in
constant time I've talked a little bit
about PostScript and PDF and I want to
talk a little bit more about the
differences there those of you this
might be more interesting to those of
you who are more familiar with
PostScript or not so much with PDF PDF
is really an absolute description of
where things go it's not a calculated
description of where things go so
PostScript allows you to calculate the
positions of things it allows you to
measure strings and do divide by two to
Center and stuff like that PostScript is
a calculated way
displaying content PDF is an absolute
way and so that's actually a big
difference for those of you who are
familiar with PostScript you need to
sort of know where everything's going to
end up in order to generate your PDF
file I'm like with PostScript where you
sort of figure it out on the printer but
on the other hand it's good to not have
to do that because it's it's less work
if you know where everything's supposed
to be and of course PDF can contain
hyperlinks metadata annotations things
that are that are going to be used when
you're displaying it in Acrobat or some
other interactive mechanism PostScript
doesn't have that PostScript is pretty
much pure content pure layout it doesn't
have this sort of additional information
and also PDF unlike PostScript is really
strictly defined file structure you it's
it's it's hard to write a PDF file by
hand it's really easy to write
PostScript files by hand but that's good
because that means that a computer can
read and process a PDF file very rapidly
PostScript you have to do a lot of
processing and parsing and
interpretation so what that means is of
course you get as I mentioned before
random access of your data and page
independence that's a really key feature
and then as I mentioned before with the
font foing for example PDF files will
contain additional information that
might be used in the case that you have
to substitute in some sense you can't
fully get what you need from them
because the PDF file doesn't say embed
the font so it has extra stuff that lets
you replace the PD sort of makes you
less it allows you to synthesize more
correctly what you get not just to
replace them with courier but a
replacement with a sans-serif you know
multiple master fonts that squeak just
the right way so it looks pretty good so
that's sort of a big you know wide
overview of what pf' what contains
what's interesting about PDF from the
point of view of courts 2d so the real
question at that point is like why did
we choose to use PDF of all things I
mean we could have gone out and said
well we want a persistent graphics for
font file format let's write our own or
let's use PNG or something weird like
that so what we wanted is something
clearly that was robust we needed
something that was
that people in the industry used not
just us but everybody in the industry
from our legacy from our Mac os10 legacy
the PostScript imaging model was very
important that's what the Windows Server
and quartz and so on is based on we
wanted to keep be compatible with that
if at all possible that was very
important to us we clearly needed
something it was cross-platform it's
really bad to be to generate a
persistence graphics file format that
you can only use on a Mac because we
live in the world of the web and we need
to have this stuff go everywhere
resolution and device independence has
always been important to us
we want to have something which can
print correctly on a 600 dpi printer of
14,000 dpi printer and your 72 dpi
screen and we wants into that because we
live in a multicultural world where we
have lots and lots of languages that are
being used a particular Japanese Chinese
and so on where you you have really
complicated fonts glyph handling lots of
complex complexity there was something
it was sophisticated so the only thing
that we know of at this point that
satisfies all those needs is PDF and it
has been working great for us in Mac OS
10 I think it will work great for you
guys as well so how do we use it well at
the bottom the most important part is in
courts 2d we sort of looked at the PDF
imaging model we said okay that's what
we want as our imaging model we want to
use the same ideas that PDF has to build
up the courts 2d imaging model so we
took that we sort of took the ideas
wholesale and we said this is how we're
going to draw on the screen on the piece
of paper and so on as a consequence we
also said we want obviously we want this
to be our persistent graphics format we
want to be able to say if we're drawing
on the screen and using this imaging
model we want to write it out to PDF so
we can actually get good results when we
go to the printer and so on and what we
also are not interested in doing we
don't want to say oh okay well this is
good and we're just gonna stay here
we're gonna you know we're gonna diverge
we're gonna make our own PDF we don't
want to do that that's bad we want to
track the Adobe standard we want to be
in sync with them keep as close as
possible with them so that we don't
diverge from from the
model because we're using their model
and we're sort of want to pay deference
to that and make sure that we track
their standard as closely as possible so
what we have right now in PDF sorry in
quartz 2d its support for the 1.2
specification and much of the 1.3
specification the 1.4 spec is going to
be coming out soon and we want to be
able to track that as well so we're you
know we're really committed to trying to
make sure that we keep on top of the 1.3
spec the 1.4 spec and make sure that we
have support and our that our model
matches what PDF provides and what I
want to emphasize in particular as you
can see here we're interested in not all
of the spec as I mentioned before the
spec is actually very complicated in the
large there's lots of pieces to it a lot
of it is document the document model
specific it's sort of the part that says
you know here's how annotations work
here's how hypertext links work and so
on so we're not on the courts 2d level
interested in that part of it that's
something that's a higher level thing
for example for Acrobat or other
programs that might be doing interactive
PDF display
we're since we're focused on the
persistent graphics format
we're tailoring our support specifically
to the part of the document model that's
relevant and as you can see on the other
axis the imaging model sort of all of
the imaging model however we want to
keep that going up all the way now in
addition to courts 2d which is a big
part of our PDF usage mackelson uses PDF
in other ways mostly by leveraging what
we providing in courts 2d pretty much in
Mac os10
PDF is is our high fidelity digital
master recording of application drawing
so the idea is that have an application
draws on the screen a certain way using
the course 2d api's what they get out if
they choose to as a PDF file that
represents that drawing precisely so
that if we took that PDF file PDF file
and brought it up in Acrobat they would
see the same thing in Acrobat that
they're seen on the screen that's a
really important feature for us to make
sure that the drawing that you do to the
screen
ends up in the PDF file precisely
including things like all the fonts
being correct all the colors being
calibrated everything that you've
actually asked for we also use PDF as
our spooling format we normally in the
past the spooling format us would have
been PostScript and typically we sort of
switch that to PDF because we think PDF
has so much power in terms of
representing things in a high fidelity
way in a simple way so we spool directly
to PDF and then that gets converted as
need be to either PostScript or some
other format or to a bitmap or whatever
Cocco uses our the courts 2d PDF support
in their NS PDF image rep class if
you're a Cocoa application you can draw
PDF files using NS PDF image rep that's
really useful you don't have to sort of
go down to the to the courts duty level
to draw a PDF on the other hand you get
free display of all PDF in your
application like that if you're not a
Cocoa application of your Carbon
application and you support the
QuickTime graphics importers you will be
able to get PDF as well by as part of
the built in support you can see this in
use in finder if you go to finder select
a PDF file and the little thumbnail view
of it you'll see the contents of the PDF
file you can page through it back and
forth that's using the QuickTime
graphics importer that's leveraged right
on top of the courts td2 courts 2d PDF
support and then in general we want to
enable sort of an approved document
workflow overall we want to be able to
have your application go directly to PDF
and not to some intermediate format that
did that then gets converted to PDF we
really like the idea of you know your
application direct to PDF and then from
there wherever you need to go whatever
format you need so just to summarize i'm
talked about a bunch of different parts
of PDF and what it's like and then how
we use it
it really is it's really powerful it's a
super format I like it a lot
it turns out and it provides a really
good high fidelity representation of
information it's really good for color
calibration font preservation all this
stuff you need to make sure that what
you're drawing to the screen matches
which are printing to the page and it's
our native format for persistent
graphics representation we want to make
sure that we keep it as our way of
representing what's drawn persistently
into a file and you know all of the
courts 2d imagery model is built on top
of the PDF imagery model there's a
little another talk later I think it's
right after this one which goes more
in-depth into the courts 2d api's and
how some of that relates directly to
what I've been talking here about we're
pretty consistent in terms of what you
can do the courts 2d API is with what
you can do what what the imaging model
is in PDF so there's a almost a
one-to-one mapping in some cases because
we really think it's a very valuable
imaging model very important format to
support so if you want more information
about PDF in particular go to the Adobe
website not the Apple website they have
the the PDF spec they have the 1.4
differences you can download a bunch of
other information about PDF it's got a
lot of detail there that you might want
to know about I think you can buy the
PDF 1.3 specification from Amazon I
certainly think you can download it from
here as a PDF file and I think at this
point I want to bring Brett Travis who
will talk a little bit about the roadmap
and then we'll open up for question
answers thank you
yeah before we go to question the answer
I just want to be able to point you to
some of the other graphic related
sessions at WWDC obviously we're in 108
PDF courts in Mac os10 asterick
mentioned a follow-on session which is
in room a 1 at 10:30 is the 2d graphics
using courts if you want to empower your
application with the ability to create
PDFs and leverage our services that's
the session you need to attend we'll be
talking about the the courts to the API
and tell you how to use it then also a
common really quick request we get
relate a courts related requests we get
from developers is anti-alias text and
we have several sessions that are going
to tell you how to use the existing text
api's in Mac OS 10 and
have them leverage courts for the final
drawing or rendering where you get the
nice sub pixel anti-aliasing that Mac
os10 is capable of providing you know
that's session 110 then we have session
117 which is gonna be all about image
capture framework which is a new
framework that allows your application
to interact with digital cameras it's
very very interesting you've seen a
demoed in several of the introductory
sessions yesterday next we have color
sync color sync is very very important
one of the sort of key hidden features
and in Mac OS 10 is imaging model in
particular quartz is the fact that it's
fully color managed so if you're using
the quartz to the api's to draw your
graphics or you're doing something like
drawing a PDF on one screen
Mac OS 10 knows how to interact with
color sync and provide a high level
color management to that content and it
is something that's fairly simple to do
and we want to spend time in the color
sync session educating developers on how
they need to do things like tag profiles
and understand how the color workflow
works internally so that you can make
any application on Mac OS 10 be fully
kind of color manage regardless of its
displaying content 1 screen are sending
the content out to an output device we
have another session on text so that if
you still want to learn how to do nice
anti-aliased text using quartz there's
some content in the text on Mac os10
session which other that talks about
some of the other text API such as ml te
you know those are fully interoperable
in terms of having the graphics
displayed by courts and they have a very
interesting session is 404 which is
OpenGL high performance 2d if you're
doing anything with large bitmaps and
you want very high performance getting
those bitmaps on-screen that you need to
see this session some very very
interesting demonstrations some very
interesting concepts will be expressed
at the session and then we also have a
printing session where we'll talk about
Mac OS 10 sprinting architecture and
we'll cover printing from the
perspective of Carbon developers
I will even get in a little bit for our
four developers are familiar with BSD
and we'll also talk a little bit about
cocoa printing
and then finally we have a very
interesting session which is the
graphics and imaging tips and tricks and
if you're a carbon developer and you
want to learn how to fully leverage
courts in your application this will be
an important session for you to attend
we have a lot of content relating to
quick draw and courts integration and
also cover certain cases like how do you
print content also talk about the
printing context so Mac os10 which are a
little bit different from what you might
be used to in Mac OS 9 so it's also a
very very good session then we'll finish
the graphic sessions at this worldwide
developer conference with the feedback
forum at Friday at 2 p.m.
you