WWDC2000 Session 111
Transcript
Kind: captions Language: en welcome to the first of two printing sessions printing on Mac OS 10 in an advanced printing on back was tense afternoon printing is very very vital part of any operating system because you can have the fanciest graphics and have the greatest programming language and frameworks there but it don't mean squat if the customers can't get their results out on paper it must look good too in fact actually it was the combination of back in the early days of the Macintosh the combination of the Adobe PostScript aldus pagemaker in the Macintosh that really has really kicked off the desktop publishing revolution we need to continue forward and making printing easier for both the customers and easier for printer driver developers and easier for application developers to implement and we think we're taking a good law we're taking a good stride towards that goal with the release of Mac OS 10 and the tioga printing architecture so to talk about the printing architecture from both an application and in a driver point of view and to go over the architecture overall this morning I'd like to introduce Paul Danville the managers of print group at Apple Computer [Applause] I've been quite a few years since Apple had to pruning sessions of this conference so what we're going to do in this one we're really going to be talking about what you can and should be doing with all the latest pudding a POS and we're covering a couple of new topics one document mobile printing which you'll see in a moment and displaying a print dialog the sheets and a better way of extending the print dialog for both application developers and print driver developers down takers halfway through the session and then we're going to talk specifically about Mac OS and printing I'll take you through the architecture which hasn't changed a lot since last year and I'll be exploding what's in DP for and what to expect in future releases of the OS so is this a situation where carbon printing our mac OS 8 and 9 for those of you who are carbonizing applications your application is up there as you can see you may have your hand crafted printing code or you may be using a carbon power plant or carbon maca hey you're using the api's in in the carbon printing manager which is sort of carbon live on eight and nine and the way to think about it is that the calvin printing manager in that environment is just a little bridge between you and the classic interface to print drivers and print drivers do most of the work the situation hasn't changed there they they have to choose a pack the printer discovery they do the page setup and print dialog they turn quick draw into whatever page description language the printer support they talk to the printer etc they handle foreground and background printing so carbon printing on eight and nine is no different really than it into the classic printing system indices the codes that we provided the thin bridge there's a chooser and there's print monitor or desktop renting for schooling one of the things if you've looked at carbon printing on in carbon lives and hopefully many of you have you'll see that the header files actually theres two now taught sorry actually contain a lot of AP is about six times as many as in the original printing dot H file and one of the things I'm going to try to do is in this session is explained why we've got so many AP is one of the reasons the obvious one is to be cleaned up a lot of things so you now have access to functions to what we call the page format and print settings objects which replaced the old print records which you use to access directly we have convenience utilities or functions to get a synthetic comments and to do PR general type functions but we since last year we've introduced the parallel set of api's which account for almost half the api's in those headers which take a print session arguments and we'll be talking about why we've done as although I've introduced all those extra AP is as we get into this session so Calvin printing manager as I said is a bridge to the classic printing interface the drivers will do most of the work swelling for moments on the third solid item here what we've done in carbon printing is provided some API to allow you to do things like gas and set the page orientation the page size of scaling etc his lot of applications actually have a good reason for wanting to to find out what's in the print record and maybe even insulated it certainly isn't for all applications and we had to find a reliable way of implementing those AP is the issue is that different drivers or their settings in different parts of the print record then codes the settings differently so a year ago I said we were going to take care of this and relieve you of the chore of writing a lot of special case code to deal with different printers and I thought we were going to do this programmatically but we've changed us tack here and last year we started to work on a database that we're putting into calvin live and that database will contain for a large number of drivers as we can find information basically offsets and encoding information so that when you call p.m. that orientation for example or set scales that color mode or whatever we will be able to execute that reliably because the printer vendors that provided us with the information so that we know where those print drivers all the information in the print record that the work in progress that we're fairly confident that it's a better solution than the programmatic one and if you happen to be running your carbon application on the print driver and it doesn't behave correctly when you call some of these goals you should let us know so here's your same application running on 10 cause you could be a Coco application as well as the carbon applications everybody calls you to the same singeing API underneath Jose piz source is a very different implementation and that implementation is inside the printing framework there's actually to explain that in the moment and they're covered by the carbon umbrella framework was significantly different is that as opposed to print drivers serving up the print dialog for example and generating their school files and doing all that hard work we're doing a lot of that now in the system so we provide the page setup and print dialog we generate the spool file we send the print job to the print server which is a separate process and the print server of whenever a job is DQ to a particular printer invokes with plenty of manager which is another process which communicates with or coordinate these plugins over on your right to process the print job which could be in the form of a PDF full file or a quick tour spool file etc an apple provides most of the courtesy of the conversion all of the left of the old print drivers is this module article the printer module which does all the device specific work it knows how to talk to the printer in terms of the page description language the i/o module we've separated out from the printing system so that we can share you sdio path LTR different types of print protocols among multiple print drivers and the lobster is asking to mention on this slide is Princeton to the application replaces the chooser replaces sets of printing it provides the UI for discovering printers for setting up and managing queues and it's actually loads these modules called print browser modules to do connection specific printer discovery like finding printers over an affable network with MVP or going to the net info network database find printers that you may be able to talk to where they'll be our last year if you were here last year for the printing session you had me go on about all the job and printing API and tempting as it is to repeat that is easily it's better for me just to point you to the latest documentation if you go to this URL where most of the carbon documentation is you'll find that all the printing api's are pretty comprehensively documented the documentation was actually updated this week so if you are working off an older version you should download the latest and you'll find in there pretty comprehensive explanation all the concepts behind carbon printing all the functions all the types etc and so instead of talking about the AP is what I'm going to do is invite Alan back from the printing team to come up and show you them in action show you printing on 10 today [Applause] there we go so basically what i'm perfect i'm going to show you is print center app it's like Paul said it's a replacement for both chooser and the desktop print monitor or desktop printing stuff we had basically right now we go up if you can see here we don't have any printers in our work set so basically I want to go and browse for some printers so basically firstly I'll go see if I can find in UFC printers here's a epson USB printer connected to the demo machine here I'm just going to add that to our work set and thus you can find another one flip the appletalk and see what do we have here we have a couple of days yet 4500 and I'm just going to go ahead and add that to the work set and let's close this so here basically use my work sets leg leaves as desktop printers that's just can do the same thing that you can before go up to the printers menu you can actually go to the queue you can stop the queue let's quit and stop this Q and the squad and make that one our default printer you can see your default printer shows up here you can see right now we're using the old icons would be great as for the printer module developers to create these wonderful new hundred twenty eight bits wonderful icons to impress impress our users so let's go ahead and close that then quit out a print center that we have all the pender set up and let's just go down into simple text and here you can see normal simple text back in it dancing new picture shown and let's just go ahead and bring up page setup okay here's a page setup dialog you can see it takes off of the panel base you I of laserwriter eight one thing we should notice is it is a movable modal dialog now you can basically select paper size of any papers at the printer support we have orientation you know portrait landscape we're also providing a button for reverse landscape and as well as scaling so let's go ahead and do that actually one last thing here is like you can format for the your different printers like here we're safe dirt it comes out their default printer so if you just consider and go buy it back to the USB printer or you can select other and it'll launch print center and you'll be able to add more printers to your work set this popup menu only shows that turns that you've added to your work set then let's go ahead and bring up the print dialog here again it's you can basically have you can say what you want to print to here again with the same papas the page setup this is that the actual printed you're going to print two three we're going to stay to the laserjet all the next item down here is save settings this is what we expect most users to be doing basically it's a save settings of all the settings that are down in the that the user has set printer driver printer module developers will come up with their own and they will be shown here like yeah like photo glossy normal color normal black and white and the user will be able to save different sets you can see here they'll be able to come down here and save what the current settings are into a into you'll be saved for them and then those settings will come will show up in this pop up as well so we don't expect many users to be actually navigating the pains and setting all the different options they will be absolutely do what they want set at once save the set and it just basically switch between the settings I know then we go to the pop-up menu basically the same as some of the old drivers copies and pages be able to you know set these at the page range the other thing they have is we have layout as a standard feature for all for all drivers so basically any any any printer will be able to have this really set your pages per sheet the layout direction and what type of borders you want the other thing we have is this version of simple text use the old dependable mechanism for extending the dialog so basically you'll see there they have their own pain and name the name of the application here we just added two sample one just basically print selected text only and include page numbers nothing we've added 40 s ken is basically a summary a summary pain of all the current options that the user has selected so here's basically a summary of what the user all the different pains of users as selected except for the app pain so we do not know at this point because these the application didn't depend it'll use attend dental mechanism we don't know what the user what they have set your than API to get that fiscal back here and just go ahead and every ever draw every print every print dialogue has a preview feature basically we select preview and they'll do a preview what is doing is saving that PDF to disk and opening that PDF file with your preferred what's what's your preferred PDF viewer they set the user has set so here we can say you can see it's there's a document we said include page numbers so here's the page number at the bottom one feature of this is now that we're in PDF or preview you can actually go to and save this PDF file as as a document and anywhere on your disk and use it for you know later of later processing this is floating quit out of this now we're back in simple text of stamps with print dialogue again and let's just go ahead and actually print it and let's quit out of this one to text we have new version of a different version of simple text up here let's just go ahead open up this version a simple text and here we have let's get two windows up and let's go ahead and print this let's go in charge of concepts and we can see now is we have the print dialog as a sheet and so basically everything is active here layout summary all that stuff is there sighs nice what the sheet is you can go ahead and go over to this document and try to print it as well so you can have to print dialogues up at the same time they are independent of each other so basically I will say you know I want you know five copies of this and sort of so many pain of this it says five copies here and basically you know it's not reflected over here is just still still says one copy so they are totally independent of each other and you can print the print these that you want this version of simple text also as well as using sheets actually use be the new mechanism for extending the dialogue which is through a pde extension print dialog extension so basically here is much more flexible to the extra flexible for the developer you can get any number of panes that you want you can organize them in any way you want we will take a so you can you can have neo multiple panes being added for the user so that it's not all time to cram into one dialogue another thing nice thing about this is you actually get the summary presented to the user through the pde interface another thing that this one has is going to hero saving want princess to the to the ink-jet because like applicant pages and here this printer module actually added its own pde and where I can select print quality and that as well as saved in the summary you'll see that in the summary as well okay let's go back to put out of this oxy and see i know they wanted to show you this is a true sheet this print items that we can't do anything in here but this dialogue here is purely active if you wanted to do that it's not the prince in her out let's go ahead and look at this case you can see here's the document i printed earlier Justin pitcher they lost desktop let's just go ahead and start this cube let's see what happens what should be printing the fairy members in CVS it now says the printing and future versions are in senator we will be displaying a lot more users feedback to the user you know this area up here and actually it's the printing is Pinterest starting to print I here at us here here's the document that I printed so although this afternoon we're going to go into code level details about how that second ocean simple sex was able to do what it did I'm going to cover briefly the steps you should take as an application developer to get that level of putting functionality and [Music] we'll start with well think it did three steps the first step many of you hopefully have done and that is to do the carbonization of your applications and if you started with the API that were available back when carbon live 10 was released for example and earlier versions of 10 will release you will have done that work should be fairly straightforward PR open went to PM begin etc and your applications running on 8 9 and 10 when you do that the user experience besides being print dialogue is what he thought in the first version of simple Jack we showed print dialog with dual mogul the full mobile to the system on age annoying and over for the application on 10 so that seems worth talking about and there's less little more detail when akka came along which i might say was after we designed the first set of carbon printing api we realized we were going to have to support document model printing and we looked at a lot of different ways in which we could implement that and minimize the overhead to you if you'd already done the basic carbonization work and after a while we realize that the best thing to do was to interview two parallel set of a pis and add one new argument to that parallel set and that argument which is a printing session object enable us to maintain context between one document print sessions and another document sprint session so although I hate said asked anybody to go back and rework their printing code this rework is rather straightforward you have to be a little careful to make sure that you're doing the right thing but adding the switching over to the session ati's will get you to the point where you can have multiple prints sessions running on on 10 because a queer doesn't run on 8 and 9 as you're probably well aware you're a limited to one session on that office OS you can use the session API to just not allowed to create multiple printing sessions so if you do that okay basically you've got the ability to run to school 20 yards while another one is being prepared so you got simple health performance benefits but your printer logs are still modles they're not displayed as a sheet so you can take one more step and that'sthat's pretty straightforward and involves one new API p.m. session you sheets it involved the callback function that you have to reference from your call to p.m. session you sheets and when you do that basically will display the print dialog the sheet view and everything works like it did in our lands demos and we would like you to get there you know as soon as you can but we understand it if you've already done the first step of getting a carbon your applications carbonized you may want to wait until 10 is your primary focus before doing that because you are going to do a run you have to do a runtime checks before you can use this API and the other thing that Allen had in the first version of a simple text works that he had simple text adding a couple of controls for the print dialog using the old a pentacle mechanism and if you don't know what a pentacle is you should look at teknoaxe's 1080 I think it is there's it's been used a long time and will continue to support it and maintain it on both eight nine and ten with carbon printing is some significant limitations I mean one of which is that especially on eight and nine with different drivers you don't really have a lot of control over where your controls gets their place and to all your controls just go into the print dialog there's no ability to organize them into multiple panels and there's no way for your controls to have any idea of what the system the printing systems controls are doing or what the drivers controls are doing so the Alan mentioned we've come up with a better mechanism we call the print dialog extensions their plug-in that based on CF plug-in and because they tie in quite nicely with doc snow mobile printing and printing dialogues of sheets they are available only for 10 that you can use them when your print dialog is displayed as a sheet and the benefits are that one if you have a lot of printing features if you want to ask you can organize them into multiple panels the way to think that it is that you write one pde one plug-in per panel you want to add to the print dialog or to the page setup dialog so that's good and one thing that has got incredible repercussions essentially is that your controls can override other controls we've set applications install pdes which override things that we provide is standard in the system you can even override controls potentially the printer driver would server so you have to be careful about this but if for example your application wants to allow users to type in page numbers or page range in a different format than one that we provide then you've got the ability to do that and you won't confuse users by providing to page range control the other thing that we're implementing is the mechanisms to notify your PDE when a control in another panel has being changed that affects you and of course there's yet be a little careful about doing that but it's a lot more powerful than what we have in parts where you might implement for example the reverse page order control in your entire house or in your print dialog the driver may have done the same control and they'll build interact with each other in in words of the user probably won't appreciate if you want to know exactly how to write PD Eve you should come to this afternoon session so I'm not going to go into code at this time to wrap this up though the main message for you is if you if you're developing a carbon application and you've already done the port the non session ID as if it's fine for now you'll print on 8 9 and 10 for the print dialog will be mobile very soon hopefully 10 will be your primary focus and that's the time when you should switch over to the session API use those and a small step beyond that would be to display your print dialog the sheep and if you're an application with advanced printing needs and now's the time to think seriously about using the plugins instead of using the append it'll mechanism that's pretty much it for the first part of the sessions talk about carbon printing API we're now going to switch over to do a quick recap of the printing architecture on 10 if you here last year you've of you saw diagrams of just like this and the good news is that it's still a valid diagram we haven't changed our architecture we've tweaked a couple of API to pretty much everything's in place which is written a lot more code I'm going to walk you through this fairly quickly and the reason I'm going to do that is so that I can point out what's in DP for and what you can expect in the first release of 10 and a couple of things the ball unfortunately have to wait until future releases of the OS there's your application up on the top left carbon or cocoa you're going to be linked again while probably against the carbon umbrella framework but you're certainly going to be legs against the printing frameworks which were inside there and as I said print framework or responsible for serving up the UI they're responsible for generating a spool file they even talk to print center and they replace a lot of the functionalities an old old style classic driver needs to do they generate a for every time he has a print gardens they generate the fringe of the print job if I talked about last year compare these two files it says there's a spool file which by default is is PDF that other school file formats are supported there's also a job ticket which is a metadata associated with a print job which provides a better means for us to control printing as the job goes down the pipeline and to separate the PDL the page description language from the printing settings so the next step in the pipeline is the separate process for the queue manager if you're running process the property iran 10 you'll see the disk is called the print server and it replaces print monitoring to stop printing that you're familiar with on 8 and 9 is responsible for managing the queues multiple queues multiple printers and it's designed for a client-server architecture to support a client sprawling a job and sending it to a separate machine to the process but in DP for and unfortunately in the first relief we're only supporting local queuing but designs there but implementation isn't it already for us to be able to support true client-server printing the job managers responsible for processing individual jobs as they get DQ'd by the acumen jure the job manager is responsible for page level features for printers that don't have their own ability to do things like print multiple copies it takes care of that and it coordinate three threads the first one it's a converter in the converter is quite as except a piece of code and it's not just a single module it contains codes that could read in very small file formats and separately codes that can generate different output formats the mainstream print part is when the printout crater uses the converter to generate from a quick draw a PDF school file and when you get down to the server end of the system it converted views to convert that PDF into bitmap and the converse is built around a lot of core graphics technology to do that but also in the converter is code for Tito from laser 80 rates so for example if your application generated a spool file that contains PostScript we would generate an old-style pitch with post-its all files and by the time the converter gets the processor job it's going to be using laser right those read rate drive chose to turn that into PostScript of course simply printing to a postscript printer the printer module is really the vestige of the old drivers it it contains all the printer specific code in the printing system because of the yo it's taken care of so much other functionality and it's a printer module that is responsible for knowing what are the format printers capable of receiving managing the printer returning status after pipeline and aramid features of the pipeline to the client and i'll be talking with a bit more does printer module in a moment the i/o module we've mentioned a moment ago we separated i/o from full file rendering and that sort of thing piyo modules are shared among various types of printers we have got piyo modules for network protocols and i/o modules for the direct connect protocols like USB last but not least you got the printed enter application which you saw in action you I isn't final but if it works just fine on DP for for discovering printers setting up cues and picking do for printers so we're going to be extending the functionality so it becomes a host for printer configuration and other things though you can expect that to evolve between now and the first release of change so that's pretty much the architecture and I'm going to switch over here to show you the target system from the viewpoint of printer vendors or the developers of print drivers and a slightly different perspective because here we're showing four types of modules which printer vendors or driver developers are going to create with an SDK which we're going to be releasing next week to be able to get their printers working with mac OS 10 and we have been collaborating with a lot of printer vendors over the last year if you're in the business and you haven't been talking to us about your needs and next week would be a great time to get in touch with us let's let's talk about printer modules so what do they do they're quite simple actually or maybe that's just because they're architected cleverly they have a set of functions that are used to tell the converter what sort of output data they want the converter to generate they contain possibly code to know how to format the data for the printer the gates of an inkjet printer they'll be standing the data and compressing it and inserting engine control codes etc they also have the smarts to handle printer status and error messages they're called by the job manager when a jobs being printed the job manager will tell the printer module to print a page or maybe printer Hall documents and relayed status researcher but it's a lot less work to write a printer module and it was right the classic driver by a long way so what Apple's doing and what we've done for CP force we provided the the postscript printer module so we take care of most of the poster printing needs we don't have in DP for full support for PPD files that will come later but Apple is taking on the responsibility of providing poster printing support in the OS and printer vendors will be using the SDK which I mentioned to write printer modules to their printers we saw different page description languages like ppl which you've probably heard of Escape key for epson printers Aquajet language for canon printer metra so we're looking to those from the vendors to write printer modules for those types of products print dialog extensions you saw one in Alan's demo in just the same way that applications could add functionality to live page from Fred dialogues at printer vendors and basically printer modules can expose their printer specific features through these plugins so not only you have the printing system that part of the air we're putting up controls in the print dialog you have applications potentially doing it by installing their own PDE and you have the printable printers modules registering Darren pdu so we we're going to do all the basic what we call universal features in our pdso copies and page range fall into that category we're also alpha DP for but before we ship the first release going to add these plugins to support PPD features poster printers and we're going to be looking to the printer vendors using this SDK to write these plugins for their features and we categorize these features using terminology which i might go mention now Universal place two features which you always get regardless of what watcher printings two incompetents age ranger good examples standard features features like quality notes with you've got a printable support desk modal draft mode etc different printers want to implement quality modes using a different size of you I so because there isn't the standard way of presenting that we would expect the printer vendors to develop those panels so what we call these standard features when applications can add their pdes to what we might call custom features so for example with this presentation package if you wanted to print out slides notes and handouts you'd expect to see a panel loaded so that applications custom features of print time and then last but not least the printer vendors are going to be writing PDS for their unique features to their printers so apples going to be taking care of both script and the printer vendors are going to write in pds for their non closest printers so printer modules and pdes are that they're mandatory to photo printer up to 10 and be able to print to it io modules and their counterpart which is on the next slide those we're hoping the printer vendors and other developers really don't have to spend a lot of time on because it's our intent to support the the mainstream print protocols in DP for we've got a module switch handle printing over LTR appletalk with Pat we can send jobs over PostScript sorry over USB I'm hoping that we can add file are pretty soon I prepare something we've mentioned i mentioned it last year the internet printing protocol and it's definitely on our list of things to do it won't be in the first release but we will definitely add it soon after and if you if you're using a printer connected up to Mac os10 and for example has an interface that we haven't supported then you should talk to us before you go ahead and write an i/o module for it because we'd like to help you but there will be cases where you have a proprietary interface Navy to your printer if that's the case then the f ck through the f ck we will provide sample code for writing your own I own modules and I mentioned a couple there that a possibly Apple would do because the NIR da but it's not high on our priority list that printer browser modules these are two I owe modules what print dialog extensions work at rental modules iron modules have no UI if you want to find a printer on a particular connection type print center loads a printer browser module to give you the user interface for the discovery process so we have for example in DP for we've got a printer browser module so that you can set up an LPR printer and as you probably know LTR doesn't know / connection so these are interface for LPR is that you type in the IP address of the printer we have another one that Allen showed NDP that the appletalk discovery protocol so we have a printer browser module for connecting to apical printers net info which you're probably familiar with which is a directory service we have a printer class module so you can find printers can the net Mpho database and last and of course not leave this USB and you can find printers on your USB bus so in due course we'll have a printer browser module four five i apprenticed another one on our list is flp service location protocol again it's not in DP for its likely not going to be in the first release but it's becoming quite a popular ip-based discovery protocol and people move more and more towards IP only network will add SLP to enable you to find SLP savvy printers and it's like you might have to write your own custom io modules if you were to do so you'd be writing a printer browser modules to go along with it so printer modules for dialogue extensions higher modules and these from the browser modules these are all these are all part of the the so-called tioga sdk the f ck is focused right now on the printer modules and open dialogue extension it's coming out next week as I said if you're not already talking to us you should be I should i could say how great this sdk is but actually we've been working where some of the main people in the printing business for the last year in fact a year ago next week we got together with them and started a collaborative efforts of creating this sdk and we'd be making pretty good progress over the last year they've been very helpful supportive and patient with us and so we thought that we would get some of these guys we've been collaborating with us to come up here and just tell you what their plans are for supporting toga content and I'm going to hand over to John now to make those introductions thank you Paul as well then we have been working with developers we have not been designing this in a black box we have been taking feedback and we've been very lucky that we've actually been work work very closely with some of the keeper and developers out there to get some very good feedback and the results have been extremely positive so I'd like to first introduce the I'll introduce two three we have reps today I'll first off with Rick's pillars from hela packard to talk about where they're going with Mac os10 and their printers Rick hi everybody I'm very glad to be here and I just wanted to say that I'm part of a small team inside Gila Packard that's focused exclusively on the Mac market across all of our product line includes our large format designed jets or later jets and special they are award-winning deskjet printers since the imac first introduced a few years ago we've been working real closely with Apple wat rng level and especially in the last year as Paul says our software engineering teams have been working with Apple to make sure we're on track with OS 10 development and that's been working out very well and we're we have some very hardworking Mac focus software engineers many of our swimmer in the room right now our quality assurance team is working real closely with Apple to make sure OS 10 drivers work well and we're ready to ship things in the box as as OS 10 develop we're very excited inside HP about Mac os10 it's really raising some eyebrows and said HP with all of our whim tell folks so is that your interesting the blood set from the mattress sectors and I also want to ask that from a developer standpoint as you develop your product for OS 10 you think about HP and to help you do that HP has a website HP com for such go forward class solutions where you can sign up on a couple of different levels to get HP products to test with for your OS 10 development and also to get HP products to use at rates of demos and things like that so that's available to you HP com for which / go forward slash solutions and in closing I want to say that we're very excited be working with Apple I think OS 10 is going to be really hot and we're working hard to make sure we have all explained drivers that are going to ship in the box with our printers as we as those things roll out so thank you thank you Ray next I would like to go ahead and introduce from epson Mitch Kadesh thank you John it's great to be here the relationship that epson epson shares with Apple is very important one for us and it's also been a continuous one even through the tough period that Apple went through a few years ago as you probably know when the imac was introduced epson was there with the first USB printer and we continued our innovation last year by introducing the first firewire or printer we're very excited about working with apple on a left n and you can be sure that when it ships our drivers will be there fully supporting all the printing features in the operating system and we're especially excited about the tioga or architecture and how we think a little help drive high-resolution printing forward into the future thank you and finally we have a representative from Canon to talk about their directions and how they're getting involved with Mac os10 Robert shibata hi I'm Robert shibata I'm a representative from Canon here today and just wanted to let you know that cannon is the largest printer manufacturer in the world and we are we are definitely behind Apple as you know we have a lot of products for supporting an apple platform and actually going back in history we've actually been working with with Apple for well over ten years going back to laser riders and the style writers and more recently when excuse me with products are supporting the Apple platform we have obviously printers scanners MFPs a full line of products back at the keynote in January Steve Jobs actually held up one of our USB powered scanners and said something the defect to the fact that though this was a really needle product I think so actually I did I promised I wouldn't do too much sales type stuff here today but i just wanted to show our a little portable we have this is the bjc 85 and it is actually the thinnest and lightest notebook product for the app the platform and as you can see it's actually a perfect partner for a powerbook so those of you who may have power books or notes for me that has a fire book you know just keep this product in mind and speaking about speaking about mineralisation actually has a small sm of tea for the the apple platform a you know in addition but let's talk talk talk about two months of our products i didn't take too much of your time is that we do have a full line of products and we actually just shipped a photo printer which is called the bjcc 8200 which actually has the small topeka leader dot on the market and but anyways that anyway just say that our developers back in Japan have really been working very closely with with Paul down bolt and the printer team clearly support the current operating system as well as going future with I'll extend so let's excuse me so we really look forward to this operating systems a lot of the power multi-functionality which was not the new operating system some thanks very much just what you know operators are standing by so as you can see we've actually been working with three of the bigger companies out there we have been working with other developers as well and then a very interesting experience because normally you think of the big companies out of the market is against each other and come with the cutthroat and to Mazen experience the girl three min the same it when actually cooperating and giving us ideas and how we can make operating system move forward so we are very excited to be working with them as well as working with other companies as well so to wrap up the session and where you should be going forward we first recommend that after the session in addition one sessions this afternoon go back and take a look at the documentation you'll find some documentation up on the website developer apple com tech pubs / carbon / multimedia carbon printing manager take a look at the documentation get more in depth of it in addition to start using carbon any applications as you're pouring your heart gives your porting your applications to carbon use the carbon printing api's and finally we have a email address that you can send us feedback of your experiences let us know what we're doing right listen what we're doing wrong and that's at mac OS x dash dev feedback at apple com you