Difference between revisions of "Printing"
Colin Finck (talk | contribs) (→Current Status and Roadmap) |
Colin Finck (talk | contribs) (→Current Status and Roadmap: Marshall* is implemented now) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
[[File:Symbol support vote.png]] Implements EnumMonitors for enumerating the available port monitors<br> | [[File:Symbol support vote.png]] Implements EnumMonitors for enumerating the available port monitors<br> | ||
[[File:Symbol support vote.png]] Implements EnumPrintProcessorDatatypes for enumerating the datatypes of a Print Processor associated to a Printer<br> | [[File:Symbol support vote.png]] Implements EnumPrintProcessorDatatypes for enumerating the datatypes of a Print Processor associated to a Printer<br> | ||
− | [[File:Symbol | + | [[File:Symbol support vote.png]] Implements getting and setting the default printer (GetDefaultPrinter/SetDefaultPrinter)<br> |
− | [[File:Symbol | + | [[File:Symbol support vote.png]] Implements support for storing and getting additional printer data (GetPrinterData(Ex), SetPrinterData(Ex))<br> |
[[File:Symbol oppose vote.png]] Needs fully working GetPrinter/SetPrinter implementation for altering a printer's parameters<br> | [[File:Symbol oppose vote.png]] Needs fully working GetPrinter/SetPrinter implementation for altering a printer's parameters<br> | ||
[[File:Symbol oppose vote.png]] Needs support for adding and deleting Printer Drivers (AddPrinterDriver(Ex), DeletePrinterDriver(Ex))<br> | [[File:Symbol oppose vote.png]] Needs support for adding and deleting Printer Drivers (AddPrinterDriver(Ex), DeletePrinterDriver(Ex))<br> | ||
Line 37: | Line 37: | ||
'''Component used by spoolsv.exe to determine the Print Provider(s) that shall handle a call'''<br> | '''Component used by spoolsv.exe to determine the Print Provider(s) that shall handle a call'''<br> | ||
[[File:Symbol support vote.png]] Forwards calls to one or multiple Print Providers. Evolves together with the other components.<br> | [[File:Symbol support vote.png]] Forwards calls to one or multiple Print Providers. Evolves together with the other components.<br> | ||
− | [[File:Symbol | + | [[File:Symbol support vote.png]] Provides helper APIs (like Marshall* and PackStrings) to assist the development of all Printing components. |
|- | |- | ||
! colspan="2"| Print Providers | ! colspan="2"| Print Providers | ||
Line 60: | Line 60: | ||
Available WDK Samples: localmon<br> | Available WDK Samples: localmon<br> | ||
[[File:Symbol support vote.png]] Fully implements support for COM, LPT and FILE ports<br> | [[File:Symbol support vote.png]] Fully implements support for COM, LPT and FILE ports<br> | ||
+ | [[File:Symbol support vote.png]] The ReactOS implementation can be used as a drop-in replacement for the Windows counterpart<br> | ||
[[File:Symbol oppose vote.png]] Original Windows Local Port Monitor also implements support for IrDA Printers, but I don't think this has any priority | [[File:Symbol oppose vote.png]] Original Windows Local Port Monitor also implements support for IrDA Printers, but I don't think this has any priority | ||
|- | |- | ||
Line 89: | Line 90: | ||
'''Implements a generic driver for PostScript printers and serves as the base for every PDF Printer out there'''<br> | '''Implements a generic driver for PostScript printers and serves as the base for every PDF Printer out there'''<br> | ||
Available WDK Samples: psprint (NT4 DDK only!)<br> | Available WDK Samples: psprint (NT4 DDK only!)<br> | ||
+ | WINE also has a "wineps.drv", but it is based on a WINE-proprietary interface<br> | ||
[[File:Symbol oppose vote.png]] Entirely unimplemented | [[File:Symbol oppose vote.png]] Entirely unimplemented | ||
|- | |- | ||
Line 109: | Line 111: | ||
|- | |- | ||
| ntprint.dll<br>ntprint.exe || | | ntprint.dll<br>ntprint.exe || | ||
− | ''' | + | '''Used for installing the Printer Driver Class'''<br> |
[[File:Symbol oppose vote.png]] Entirely unimplemented | [[File:Symbol oppose vote.png]] Entirely unimplemented | ||
|- | |- |
Latest revision as of 11:54, 13 February 2018
ReactOS Trunk has first Printing Support since the "colins-printing-for-freedom" branch has been merged in r73039 on October 26, 2016.
This page shall track all involved components, their current status and the next steps that need to be done. Many components still need research, so your help is welcome!
Contacts
Current Status and Roadmap
Resources
- The DDK has some nice diagrams to illustrate what goes on and also some samples.
- Feng Yuan's book: "Windows Graphics Programming: Win32 GDI and DirectDraw"
- CEPS (Cisco enterprise print system)
- Print Devices Reference
- Windows printing architecture
- Printing and print spooler
- Printing – Architecture and Driver Support
- Introduction to Print Providers
- More printing architecture
- Windows 2000 Print Services
- Printer graphics dll
- LPRng, Berkeley based LPR print spooler
- ReactOS printing for the first time! 2015/07/25 by Colin Finck