Skip to content
Snippets Groups Projects
Select Git revision
  • 9798e614f10da1c5cdcd65884ffbcc218536ca18
  • master default protected
2 results

gen-nessie-xcpt

Blame
  • gen-nessie-xcpt 17.93 KiB
    #!/usr/bin/perl
    
    # FIXME: Custom paper sizes
    # FIXME: Precision of paper sizes (and mismatch with paperconf)
    # FIXME: Paper orientation
    # FIXME: Color adjustments
    
    use strict;
    use warnings;
    
    use lib ".";
    use PPD;
    use PPD::PJL;
    use PPD::Paper;
    use PPD::Common;
    
    set('FileVersion', '1.0');
    set('PCFileName', 'XRWC7845.PPD');
    
    set('Manufacturer', 'Xerox');
    set('Product', [ 'WorkCentre 7845', '(1.3.6.1.4.1.253.8.62.1.20.6.26.1.1)' ]);
    set('PSVersion', '(3010.106) 3000');
    
    set('Throughput', 45);
    set('TTRasterizer', 'Type42');
    set('Protocols', 'PJL BCP TBCP');
    
    set('cupsFilter', 'application/vnd.cups-pdf 0 /aux/root/xcpt');
    
    set('ColorDevice', 1);
    set('DefaultColorSpace', 'CMYK');
    
    # FIXME: Librarize
    sub jopt {
    	my $out = "";
    	while (@_) {
    		my $key = shift @_;
    		my $val = shift @_;
    		$out .= sprintf('@PJL SET %s=%s<0A>', $key, $val);
    	}
    	return $out;
    }
    
    define_ui_group({ Key => 'Basic', Name => 'Basic options' });
    
    option({
    	Key => 'Duplex',
    	Name => '2-Sided Printing',
    	Choice => 'PickOne',
    	Priority => 40,
    	JCL => 1,
    	Values => [
    		{ Key => 'None', Name => 'Off (1-Sided)', PS => jopt('SIDES', 'one-sided') },
    		{ Key => 'DuplexNoTumble', Name => 'Long-Edge Binding', PS => jopt('SIDES', 'two-sided-long-edge') },
    		{ Key => 'DuplexTumble', Name => 'Short-Edge Binding', PS => jopt('SIDES', 'two-sided-short-edge') },
    	]
    });
    
    option({
    	Key => 'Collate',
    	Choice => 'Boolean',
    	Priority => 41,
    	JCL => 1,
    	Values => [
    		{ Key => 'False', Name => 'Off', PS => jopt('COLLATE', 'uncollated') },
    		{ Key => 'True', Name => 'On', PS => jopt('COLLATE', 'collated'), Default => 1 },
    	]
    });
    
    option({