Last active
September 12, 2018 23:44
-
-
Save pchan37/727f14c8257eac4f61c22c3ddb998cd9 to your computer and use it in GitHub Desktop.
Install sbu printer on Linux (Python Version, Tested on Ubuntu 16.04)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import subprocess | |
PRINTER_PPD_FILE_CONTENT = """ | |
*PPD-Adobe: "4.3" | |
*% | |
*% For information on using this, and to obtain the required backend | |
*% script, consult http://www.openprinting.org/ | |
*% | |
*% This file is published under the GNU General Public License | |
*% | |
*% PPD-O-MATIC (4.0.0 or newer) generated this PPD file. It is for use with | |
*% all programs and environments which use PPD files for dealing with | |
*% printer capability information. The printer must be configured with the | |
*% "foomatic-rip" backend filter script of Foomatic 4.0.0 or newer. This | |
*% file and "foomatic-rip" work together to support PPD-controlled printer | |
*% driver option access with all supported printer drivers and printing | |
*% spoolers. | |
*% | |
*% To save this file on your disk, wait until the download has completed | |
*% (the animation of the browser logo must stop) and then use the | |
*% "Save as..." command in the "File" menu of your browser or in the | |
*% pop-up manu when you click on this document with the right mouse button. | |
*% DO NOT cut and paste this file into an editor with your mouse. This can | |
*% introduce additional line breaks which lead to unexpected results. | |
*% | |
*% You may save this file as 'Xerox-Phaser_5500DT-Postscript.ppd' | |
*% | |
*% | |
*FormatVersion: "4.3" | |
*FileVersion: "1.1" | |
*LanguageVersion: English | |
*LanguageEncoding: ISOLatin1 | |
*PCFileName: "POSTSCRI.PPD" | |
*Manufacturer: "Xerox" | |
*Product: "(Phaser 5500DT)" | |
*cupsVersion: 1.0 | |
*cupsManualCopies: True | |
*cupsModelNumber: 2 | |
*cupsFilter: "application/vnd.cups-postscript 100 foomatic-rip" | |
*cupsFilter: "application/vnd.cups-pdf 0 foomatic-rip" | |
*%pprRIP: foomatic-rip other | |
*ModelName: "Xerox Phaser 5500DT" | |
*ShortNickName: "Xerox Phaser 5500DT Postscript" | |
*NickName: "Xerox Phaser 5500DT Foomatic/Postscript" | |
*PSVersion: "(3010.000) 550" | |
*PSVersion: "(3010.000) 651" | |
*PSVersion: "(3010.000) 652" | |
*PSVersion: "(3010.000) 653" | |
*PSVersion: "(3010.000) 704" | |
*PSVersion: "(3010.000) 705" | |
*PSVersion: "(3010.000) 800" | |
*PSVersion: "(3010.000) 815" | |
*PSVersion: "(3010.000) 850" | |
*PSVersion: "(3010.000) 860" | |
*PSVersion: "(3010.000) 861" | |
*PSVersion: "(3010.000) 862" | |
*PSVersion: "(3010.000) 863" | |
*PSVersion: "(3010.000) 864" | |
*PSVersion: "(3010.000) 870" | |
*LanguageLevel: "3" | |
*ColorDevice: False | |
*DefaultColorSpace: Gray | |
*FileSystem: False | |
*Throughput: "1" | |
*LandscapeOrientation: Plus90 | |
*TTRasterizer: Type42 | |
*1284DeviceID: "MFG:Xerox;MDL:Phaser 5500DT;CMD:Adobe PostScript 3, PCL;DES:Xerox Phaser 5500 Laser Printer, PostScript 3, Letter/A4/Tabloid/A3 Size;DRV:DPostscript,R0,M0,TP;" | |
*driverName Postscript: "" | |
*driverType P/PostScript: "" | |
*driverUrl: "http://partners.adobe.com/public/developer/ps/index_specs.html" | |
*driverObsolete: False | |
*driverManufacturerSupplied: False | |
*HWMargins: 18 36 18 36 | |
*VariablePaperSize: True | |
*MaxMediaWidth: 100000 | |
*MaxMediaHeight: 100000 | |
*NonUIOrderDependency: 100 AnySetup *CustomPageSize | |
*CustomPageSize True: "pop pop pop | |
<</PageSize [ 5 -2 roll ] /ImagingBBox null>>setpagedevice" | |
*End | |
*ParamCustomPageSize Width: 1 points 36 100000 | |
*ParamCustomPageSize Height: 2 points 36 100000 | |
*ParamCustomPageSize Orientation: 3 int 0 0 | |
*ParamCustomPageSize WidthOffset: 4 points 0 0 | |
*ParamCustomPageSize HeightOffset: 5 points 0 0 | |
*FoomaticIDs: Xerox-Phaser_5500DT Postscript | |
*FoomaticRIPCommandLine: "cat%A%B%Z" | |
*FoomaticRIPNoPageAccounting: True | |
*OpenGroup: General/General | |
*OpenUI *PageSize/Page Size: PickOne | |
*OrderDependency: 100 AnySetup *PageSize | |
*DefaultPageSize: Letter | |
*PageSize Letter/US Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice" | |
*PageSize A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice" | |
*PageSize 11x17/11x17: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice" | |
*PageSize A3/A3: "<</PageSize[842 1191]/ImagingBBox null>>setpagedevice" | |
*PageSize A5/A5: "<</PageSize[421 595]/ImagingBBox null>>setpagedevice" | |
*PageSize B5/B5 (JIS): "<</PageSize[516 729]/ImagingBBox null>>setpagedevice" | |
*PageSize Env10/Envelope #10: "<</PageSize[297 684]/ImagingBBox null>>setpagedevice" | |
*PageSize EnvC5/Envelope C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice" | |
*PageSize EnvDL/Envelope DL: "<</PageSize[312 624]/ImagingBBox null>>setpagedevice" | |
*PageSize EnvISOB5/Envelope B5: "<</PageSize[499 709]/ImagingBBox null>>setpagedevice" | |
*PageSize EnvMonarch/Envelope Monarch: "<</PageSize[279 540]/ImagingBBox null>>setpagedevice" | |
*PageSize Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice" | |
*PageSize Legal/US Legal: "<</PageSize[612 1008]/ImagingBBox null>>setpagedevice" | |
*CloseUI: *PageSize | |
*OpenUI *PageRegion: PickOne | |
*OrderDependency: 100 AnySetup *PageRegion | |
*DefaultPageRegion: Letter | |
*PageRegion Letter/US Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice" | |
*PageRegion A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice" | |
*PageRegion 11x17/11x17: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice" | |
*PageRegion A3/A3: "<</PageSize[842 1191]/ImagingBBox null>>setpagedevice" | |
*PageRegion A5/A5: "<</PageSize[421 595]/ImagingBBox null>>setpagedevice" | |
*PageRegion B5/B5 (JIS): "<</PageSize[516 729]/ImagingBBox null>>setpagedevice" | |
*PageRegion Env10/Envelope #10: "<</PageSize[297 684]/ImagingBBox null>>setpagedevice" | |
*PageRegion EnvC5/Envelope C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice" | |
*PageRegion EnvDL/Envelope DL: "<</PageSize[312 624]/ImagingBBox null>>setpagedevice" | |
*PageRegion EnvISOB5/Envelope B5: "<</PageSize[499 709]/ImagingBBox null>>setpagedevice" | |
*PageRegion EnvMonarch/Envelope Monarch: "<</PageSize[279 540]/ImagingBBox null>>setpagedevice" | |
*PageRegion Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice" | |
*PageRegion Legal/US Legal: "<</PageSize[612 1008]/ImagingBBox null>>setpagedevice" | |
*CloseUI: *PageRegion | |
*DefaultImageableArea: Letter | |
*ImageableArea Letter/US Letter: "18 36 594 756" | |
*ImageableArea A4/A4: "18 36 577 806" | |
*ImageableArea 11x17/11x17: "18 36 774 1188" | |
*ImageableArea A3/A3: "18 36 824 1155" | |
*ImageableArea A5/A5: "18 36 403 559" | |
*ImageableArea B5/B5 (JIS): "18 36 498 693" | |
*ImageableArea Env10/Envelope #10: "18 36 279 648" | |
*ImageableArea EnvC5/Envelope C5: "18 36 441 613" | |
*ImageableArea EnvDL/Envelope DL: "18 36 294 588" | |
*ImageableArea EnvISOB5/Envelope B5: "18 36 481 673" | |
*ImageableArea EnvMonarch/Envelope Monarch: "18 36 261 504" | |
*ImageableArea Executive/Executive: "18 36 504 720" | |
*ImageableArea Legal/US Legal: "18 36 594 972" | |
*DefaultPaperDimension: Letter | |
*PaperDimension Letter/US Letter: "612 792" | |
*PaperDimension A4/A4: "595 842" | |
*PaperDimension 11x17/11x17: "792 1224" | |
*PaperDimension A3/A3: "842 1191" | |
*PaperDimension A5/A5: "421 595" | |
*PaperDimension B5/B5 (JIS): "516 729" | |
*PaperDimension Env10/Envelope #10: "297 684" | |
*PaperDimension EnvC5/Envelope C5: "459 649" | |
*PaperDimension EnvDL/Envelope DL: "312 624" | |
*PaperDimension EnvISOB5/Envelope B5: "499 709" | |
*PaperDimension EnvMonarch/Envelope Monarch: "279 540" | |
*PaperDimension Executive/Executive: "522 756" | |
*PaperDimension Legal/US Legal: "612 1008" | |
*OpenUI *Duplex/Double-Sided Printing: PickOne | |
*OrderDependency: 130 AnySetup *Duplex | |
*DefaultDuplex: None | |
*Duplex DuplexNoTumble/Long Edge (Standard): "<</Duplex true /Tumble false>>setpagedevice" | |
*Duplex DuplexTumble/Short Edge (Flip): "<</Duplex true /Tumble true>>setpagedevice" | |
*Duplex None/Off: "<</Duplex false>>setpagedevice" | |
*CloseUI: *Duplex | |
*OpenUI *Resolution/Resolution: PickOne | |
*OrderDependency: 90 AnySetup *Resolution | |
*DefaultResolution: 600x600dpi | |
*Resolution 150x150dpi/150x150 DPI: "<</HWResolution[150 150]>>setpagedevice" | |
*Resolution 300x300dpi/300x300 DPI: "<</HWResolution[300 300]>>setpagedevice" | |
*Resolution 600x600dpi/600x600 DPI: "<</HWResolution[600 600]>>setpagedevice" | |
*Resolution 1200x1200dpi/1200x1200 DPI: "<</HWResolution[1200 1200]>>setpagedevice" | |
*CloseUI: *Resolution | |
*CloseGroup: General | |
*% Generic boilerplate PPD stuff as standard PostScript fonts and so on | |
*DefaultFont: Courier | |
*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM | |
*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM | |
*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM | |
*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM | |
*Font Bookman-Demi: Standard "(001.004S)" Standard ROM | |
*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM | |
*Font Bookman-Light: Standard "(001.004S)" Standard ROM | |
*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM | |
*Font Courier: Standard "(002.004S)" Standard ROM | |
*Font Courier-Bold: Standard "(002.004S)" Standard ROM | |
*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM | |
*Font Courier-Oblique: Standard "(002.004S)" Standard ROM | |
*Font Helvetica: Standard "(001.006S)" Standard ROM | |
*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM | |
*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM | |
*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM | |
*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM | |
*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM | |
*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM | |
*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM | |
*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM | |
*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM | |
*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM | |
*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM | |
*Font Palatino-Bold: Standard "(001.005S)" Standard ROM | |
*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM | |
*Font Palatino-Italic: Standard "(001.005S)" Standard ROM | |
*Font Palatino-Roman: Standard "(001.005S)" Standard ROM | |
*Font Symbol: Special "(001.007S)" Special ROM | |
*Font Times-Bold: Standard "(001.007S)" Standard ROM | |
*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM | |
*Font Times-Italic: Standard "(001.007S)" Standard ROM | |
*Font Times-Roman: Standard "(001.007S)" Standard ROM | |
*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM | |
*Font ZapfDingbats: Special "(001.004S)" Standard ROM | |
""" | |
PRINTER_CONF_CONTENT = """ | |
# Printer configuration file for CUPS v2.1.3 | |
# Written by cupsd | |
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING | |
<Printer SINCPrintFromAnywhereQueue> | |
UUID urn:uuid:0ad85dfe-ee74-3902-70d3-51a1dd119675 | |
Info SINCPrintFromAnywhereQueue | |
DeviceURI lpd://[email protected]/mainq_lpd | |
State Idle | |
StateTime 1508805735 | |
ConfigTime 1508805735 | |
Type 4 | |
Accepting Yes | |
Shared Yes | |
JobSheets none none | |
QuotaPeriod 0 | |
PageLimit 0 | |
KLimit 0 | |
OpPolicy default | |
ErrorPolicy retry-job | |
</Printer> | |
""" | |
netid = raw_input('Enter your netid and press [ENTER]: ') | |
TAILORED_PRINTER_CONF_CONTENT = PRINTER_CONF_CONTENT.replace('$netid', netid) | |
with open('printers.conf', 'w') as printer_conf_file: | |
printer_conf_file.write(TAILORED_PRINTER_CONF_CONTENT.strip()) | |
with open('SINCPrintFromAnywhereQueue.ppd', 'w') as printer_ppd_file: | |
printer_ppd_file.write(PRINTER_PPD_FILE_CONTENT.strip()) | |
subprocess.call(['sudo', '/etc/init.d/cups', 'stop']) | |
subprocess.call(['sudo', 'mv', 'printers.conf', '/etc/cups/printers.conf']) | |
subprocess.call(['sudo', 'mv', 'SINCPrintFromAnywhereQueue.ppd', '/etc/cups/ppd/SINCPrintFromAnywhereQueue.ppd']) | |
subprocess.call(['sudo', '/etc/init.d/cups', 'start']) | |
print 'Success, brought to you by PChan!' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment