Claims
- 1. A USB printer driver, comprising:
a generic driver for generating a print job in a page description language for each of a plurality of different printer types; a detector for detecting any USB enabled printers connected to a USB port on a host device; means, responsive to detection of a USB enabled printer connected to the USB port on the host device, for retrieving the detected USB enabled printer's device name; means, responsive to the printer's device name, for generating a print path between the host device and the detected USB enabled printer; and a spooler for sending the print job to the detected USB enabled printer using the print path.
- 2. The driver of claim 1, wherein the means for retrieving the detected USB enabled printer's device name retrieves the detected USB enabled printer's symbolic name;
further comprising means for formatting the symbolic name into a valid format for use in a CreateFile call; and wherein the means for generating a print path between the host device and the detected USB enabled printer comprises generating a CreateFile call using the formatted symbolic name.
- 3. The driver of claim 1, wherein the spooler opens the USB port and spools the print job directly to the detected USB enabled printer.
- 4. The driver of claim 1, wherein the detector comprises a SetupDiGetClassDevs( ) API call to obtain a list of all present printer devices.
- 5. The driver of claim 4, further comprising a SetupDiEnumDeviceInfo( ) call to enumerate through all the devices in the list of present printer devices.
- 6. The driver of claim 5, wherein the means for retrieving the detected USB enabled printer's device name comprises SetupDiOpenDevRegKey( ) for opening the printer's registry key.
- 7. The driver of claim 6, further comprising RegQueryValueEx( ), responsive to an opened registry key, for obtaining the printer's symbolic name.
- 8. The driver of claim 7, wherein the means for generating a print path comprises CreateFile using the printer's symbolic name.
- 9. The driver of claim 1, further comprising a user interface, responsive to the detector, for displaying USB enabled printer detection information.
- 10. The driver of claim 9, wherein the user interface, responsive to the detector, for prompting the user to select another printer when the detector fails to detect any connected USB enabled printer.
- 11. A system for mobile USB printing, comprising:
USB printer driver installed on a USB enabled host device, for automatically detecting and printing to a USB enabled printer, wherein the USB printer driver includes a generic driver for generating a print job in a page description language for each of a plurality of different printer types; a detector for detecting any USB enabled printers connected to a USB port on a host device; means, responsive to detection of a USB enabled printer connected to the USB port on the host device, for retrieving the detected USB enabled printer's device name; means, responsive to the printer's device name, for generating a print path between the host device and the detected USB enabled printer; and a spooler for sending the print job to the detected USB enabled printer using the print path; and a USB enabled printer connected to the host device via a USB connection.
- 12. The system of claim 11, wherein the USB enabled host device comprises a portable PC having a USB port.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to co-pending U.S. application Ser. No. 10/082,980 filed Feb. 25, 2002, “System for Installing a Printer Driver on a Network” and U.S. application Ser. No. 10/083,209 filed Feb. 25, 2002, “System for Installing a Printer Driver on a Network”, the contents of which are incorporated herein by reference.
[0002] This application is related to applicants' co-pending, co-assigned U.S. applications entitled Method of Print-Time Printer Selection (Docket No. D/A2201) and Multiple Printer Driver (Docket No. D/A2200), which are filed concurrently with this application. the contents of which are incorporated herein by reference.