PDAPI: OpenPrinting Vector Printer Driver API Overview Osamu Mihara Osamu Mihara OpenPrinting WG Japan/Asia Fuji Xerox Printing Systems Co., Ltd. 2004-3-23,

Slides:



Advertisements
Similar presentations
WebCGM Interoperability for industrial- strength CGM graphics John C. Gebhardt.
Advertisements

2003/06/17Open Printing WG Japan/Asia 1 Open Printing Working Group Japan/Asia Activities Update 2003/06/17 Osamu MIHARA Yasumasa TORATANI.
Universal Printer Description Format UPDF. UPDF Version 1.0 Agenda UPDF Overview –History –Design Last Call –Review changes –Approval or requirements.
Vector Printer Driver API Update Osamu MIHARA OpenPrinting WG Japan/Asia Fuji Xerox Printing Systems Co. Ltd November 2004.
 2004 Prentice Hall, Inc. All rights reserved. 1 Chapter 30 - Dynamic HTML: Structured Graphics ActiveX Control Outline 30.1Introduction 30.2Shape Primitives.
CHAPTER 20 CREATING SVG GRAPHICS. LEARNING OBJECTIVES How to embed a graphic stored within a.SVG file in an HTML page How to use the and tag pair to specify.
Copyright © 2004 ProsoftTraining, All Rights Reserved. Lesson 8: Image Techniques ©2007 Prosoft Learning Corporation All rights reserved ITD 110 Web Page.
Module 10 WPF 2-D Graphics, Multimedia, and Printing.
Foundation Level Course
SDSI Technical Conference 2007 ■ Sacramento, CA USA ■ October I n t e l l i g e n t T o o l s Presented by Allen Miglore Synergetic Data Systems,
User Interface Programming in C#: Graphics
Graphics CS 121 Concepts of Computing II. What is a graphic? n A rectangular image. n Stored in a file of its own, or … … embedded in another data file.
SWE 423: Multimedia Systems Chapter 4: Graphics and Images.
Working with Cascading Style Sheets. 2 Objectives Introducing Cascading Style Sheets Using Inline Styles Using Embedded Styles Using an External Style.
Introduction to Computer Graphics
DIGITAL GRAPHICS & ANIMATION
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Graphics and Multimedia. Introduction The language contains many sophisticated drawing capabilities as part of namespace System.Drawing and the other.
Fonts Typeface Typography. Leading Spacing between lines.
By: Zaiba Mustafa Copyright ©
CS324e - Elements of Graphics and Visualization Java2D Graphics.
Vector A software technology that uses mathematical points based on “vectors" (information giving both magnitude and direction). Because the computer.
Chapter 5 Application Software.
Vector Graphics Making custom images. Raster vs. Vector Graphics In computer graphics, a raster graphics image, or bitmap, is a dot matrix data structure.
SWHIG Seminar Ian Kim 1/18/12.  General overview of printing technology ◦ Background information:  Vector vs. raster graphics  How inkjet printers.
CHAPTER 5 Supporting Printers and Scanners Suraya Alias.
Unit 30 P1 – Hardware & Software Required For Use In Digital Graphics
Java ME & Blackberry APIs for Game Dev Week III. Overview Java 2D API Java 3D API SVG Blackberry APIs
XP Tutorial 7New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 Working with Cascading Style Sheets Creating a Style for Online Scrapbooks.
Macromedia Fireworks 8 Revealed WORKING WITH OBJECTS.
SVG: The Past, Present and Future of Vector Graphics for the Web Patrick Dengler Senior Program Manager, Internet Explorer Team Member, W3C SVG Working.
CSCE Chapter 5 (Links, Images, & Multimedia) CSCE General Applications Programming Benito Mendoza 1 By Benito Mendoza Department.
Presented by Nassib Awad
Adobe Illustrator Basics Instructor: Cristol Gregory Assistant: Tara Caimi.
Windows Programming Text and Fonts This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep.
XPS Rasterization Service in Windows 7
Advanced User Interfaces with Java SD’98 - Session 3206 Ted Faison Faison Computing Inc.
Ch 2 Graphics Programming page 1 CSC 367 Coordinate Systems (2.1.2) Device coordinates, or screen coordinates (pixels) put limitations on programmers and.
Information Processes and Technology Multimedia: Graphics.
GDI+ 1. Objectives 2 GDI+ class  Create and render Graphic  Display information on the computer screen, printer 3.
© Paradigm Publishing Inc. 5-1 Chapter 5 Application Software.
Lecture 16 Image Document Formats. Bitmap vs. Vector Images Bitmaps do not generally.
Adobe InDesign CS2—Revealed PLACING AND LINKING GRAPHICS.
Who Wants to be a Millionaire? LIFELINES 1.50/50 2.Poll the audience 3.Ask Another Student.
PLACING AND LINKING GRAPHICS
Advanced 2D Design Concepts Guilford County Sci Vis V
CNIT 132 – Week 4 Cascading Style Sheets. Introducing Cascading Style Sheets Style sheets are files or forms that describe the layout and appearance of.
Adobe Fireworks CS3 Revealed CHAPTER TWO: WORKING WITH OBJECTS.
1 Pertemuan 01 Explore state-of-the art tools Matakuliah: U0344 / DESKTOP 1 Tahun: 2006.
Advanced 2D Design Concepts V The basic fill options include uniform or solid, fountain or gradient, and pattern. The uniform fill is produced.
Advanced Java Screen Update Techniques SD’98 - Session 4406 Ted Faison Faison Computing Inc.
XP Tutorial 7New Perspectives on HTML and XHTML, Comprehensive 1 Working with Cascading Style Sheets Creating a Style for Online Scrapbooks Tutorial 7.
Introduction To GDI GDI Definition : It is a interface present in windows which provide function and related structures that an application can use to.
Introducing Macromedia Flash 8
Working with Cascading Style Sheets
Chapter 13 Working with Graphics
5/23/2018 Additional Features of WordPad
CSI-447: Multimedia Systems
Adobe Flash Professional CS5 – Illustrated
Vector & Raster Graphics in Processing
Graphics and Multimedia
Building beautiful and interactive apps with HTML5 & CSS3
Introduction to Computers
Chapter 3:- Graphics Eyad Alshareef Eyad Alshareef.
Introduction to Computer Graphics
Java Graphics The basic rendering mechanism is the drawing system that controls when and how programs can draw on a graphics component. When a component.
Page description language from Adobe
Windows Programming Lecture 13
Interoperability for industrial-strength CGM graphics John C. Gebhardt
Vectors and Paths, also File Export
Presentation transcript:

PDAPI: OpenPrinting Vector Printer Driver API Overview Osamu Mihara Osamu Mihara OpenPrinting WG Japan/Asia Fuji Xerox Printing Systems Co., Ltd , 24, 25

What is a Vector Printer Driver? Send graphics commands to printer, instead of rasterized bitmap image. Send graphics commands to printer, instead of rasterized bitmap image. Called by render engine such as Ghostscript or X print server. Called by render engine such as Ghostscript or X print server. Objectives Objectives Performance Optimization Performance Optimization Achieve full speed printing on fast laser printers Achieve full speed printing on fast laser printers Utilizes graphical acceleration feature supported by printer controllers Utilizes graphical acceleration feature supported by printer controllers Data Size Optimization Data Size Optimization Reduces size of print data using high level graphics commands. Reduces size of print data using high level graphics commands. Contributes to reduce network bandwidth and increase through-put Contributes to reduce network bandwidth and increase through-put Print Quality Optimization Print Quality Optimization Utilizes printer s graphics quality enhancement technology by sending vector graphics command Utilizes printer s graphics quality enhancement technology by sending vector graphics command Color Optimization Color Optimization Driver can recognize the kind of graphics primitives and switch color scheme – natural color for bitmaps and vivid colors for graphics and text. Driver can recognize the kind of graphics primitives and switch color scheme – natural color for bitmaps and vivid colors for graphics and text.

Graphic Model Have Studied: Have Studied: Postscript & PDF Postscript & PDF X Window X Window Windows GDI Windows GDI Java2D Java2D SVG SVG PDLs – PCL6, LIPS IV (Canon), etc. PDLs – PCL6, LIPS IV (Canon), etc. Not based on specific graphics model among them. Took practical model for printer support. Not based on specific graphics model among them. Took practical model for printer support.

API Overview Job Control Job Control Open/Close driver Open/Close driver Set Job/Document/Page attributes Set Job/Document/Page attributes Graphics State Operation Graphics State Operation Set attributes for each graphics objects Set attributes for each graphics objects Drawing Operations Drawing Operations Path Path Text Text Bitmap Image Bitmap Image Scanline Scanline Raster Image Raster Image Stream Data (embedded PDL) Stream Data (embedded PDL)

Printer Context Operations OpenPrinter() OpenPrinter() Create printer context Create printer context Register API entry pointers Register API entry pointers Specify file descriptor for data stream Specify file descriptor for data stream ClosePrinter() ClosePrinter() Closes printer context Closes printer context Driver releases all resources Driver releases all resources

Job Control Operations A print job consist of documents. A print job consist of documents. A document consist of pages (document is optional unit). A document consist of pages (document is optional unit). StartJob(), EndJob() StartJob(), EndJob() StartDoc(), EndDoc() StartDoc(), EndDoc() StartPage(), EndPage() StartPage(), EndPage() Job, doc and page attributes are specified by each StartXxx() function. Job, doc and page attributes are specified by each StartXxx() function. page doc job

Query Device Capabilities and Information QueryDeviceCapability() QueryDeviceCapability() Query if the device can do number-up, duplex, etc. Query if the device can do number-up, duplex, etc. Information such as media size, media source and etc. which are supported by the device can be retrieved. Information such as media size, media source and etc. which are supported by the device can be retrieved. QueryDeviceInfo() QueryDeviceInfo() Query current settings of the device. Query current settings of the device.

Data format for Job and Query APIs (Try to) use notation by PWG/UPDF (Try to) use notation by PWG/UPDF May not accurate. May not accurate. Some are out of scope of PWG/UPDF. Some are out of scope of PWG/UPDF.

Graphics State Object Operations Graphics State is managed as GS object Graphics State is managed as GS object Operation to GS – InitGS, SaveGS, RestoreGS Operation to GS – InitGS, SaveGS, RestoreGS Controls to each items in GS Controls to each items in GS CTM (Coordinate Translate Matrix) CTM (Coordinate Translate Matrix) Color Space Color Space Raster Operation – ROP3 Raster Operation – ROP3 Fill Mode – even/odd or winding Fill Mode – even/odd or winding Alpha Constant Alpha Constant Line Style – width, dash/solid, cap, join Line Style – width, dash/solid, cap, join Paint Mode – opaque or transparent Paint Mode – opaque or transparent Stroke and fill color – brush control Stroke and fill color – brush control Foreground and background color – solid brush Foreground and background color – solid brush

Path Operations A path is a virtual track object A path is a virtual track object Will be visible by stroke or fill operations Will be visible by stroke or fill operations Will be used to define clip region Will be used to define clip region Lines, rectangles, polygons, arc/pie and bezier are all treated as path. Lines, rectangles, polygons, arc/pie and bezier are all treated as path. Operations: Operations: NewPath() – Declare start of a path NewPath() – Declare start of a path EndPath() – Declare end of a path EndPath() – Declare end of a path StrokePath(), FillPath(), StrokeFillPath() – make visible path StrokePath(), FillPath(), StrokeFillPath() – make visible path SetClipPath(), ResetClipPath() – defines clip region by current path SetClipPath(), ResetClipPath() – defines clip region by current path

Text Operations Still under investigation … Still under investigation … Current DrawBitmapText() will be removed. Current DrawBitmapText() will be removed. Text Operations will includes: Text Operations will includes: Define and Query font metrics Define and Query font metrics Device Font Utilization Device Font Utilization Font Downloading Font Downloading

Bitmap and Scanline Operations Bitmap is a bit oriented image data drawn in rectangle region Bitmap is a bit oriented image data drawn in rectangle region DrawImage() DrawImage() StartDrawImage(), TransferDrawImage(), EndDrawImage() StartDrawImage(), TransferDrawImage(), EndDrawImage() Scanline is a horizontal line defined by start and end point pairs. Scanline is a horizontal line defined by start and end point pairs. Used to draw graphics rendered by renderer Used to draw graphics rendered by renderer StartScanLine(), ScanLine(), EndScanLine() StartScanLine(), ScanLine(), EndScanLine()

Raster Image Operation If the device does not any graphic primitives, raster image can be sent by these operation. If the device does not any graphic primitives, raster image can be sent by these operation. StartRaster(), TransferRasterData(), EndRaster() StartRaster(), TransferRasterData(), EndRaster()

Stream Data Operations Direct PDL embedding is possible by these operation. Direct PDL embedding is possible by these operation. Can be used for form printing, eps embedding, or direct device control. Can be used for form printing, eps embedding, or direct device control. StartStream(), TransferStreamData(), EndStream() StartStream(), TransferStreamData(), EndStream()

Linking with Render Printer driver is provided as a dynamic library. Printer driver is provided as a dynamic library. Driver can be linked dynamically or via RPC. Driver can be linked dynamically or via RPC. avoids license problem avoids license problem Render libxxx.so (printer driver) API data direct linking R: GPL D: GPL or R: MIT D: Closed or LGPL glue code Render libxxx.so (printer driver) API data RPC linking R: any D: any glue code RPC library RPC server RPC Protocol API data

Plan for 2004 and beyond Refinement by feedback from opfc project. Refinement by feedback from opfc project. Define Text Operations Define Text Operations Make consistency with PWG/UPDF spec. Make consistency with PWG/UPDF spec. Fallback Mechanism Fallback Mechanism

Thank you!