#!/usr/bin/perl use strict; use warnings; use lib "."; use PPD; use PPD::PJL; use PPD::Paper; use PPD::Common; set('FileVersion', '1.0'); set('PCFileName', 'XR7400.PPD'); set('Manufacturer', 'Xerox'); set('Product', 'Phaser 7400'); set('PSVersion', '(3016.101) 3'); # *DefaultOutputOrder: Normal # *DefaultGuaranteedMaxSeparations: 4 set('Throughput', 35); set('TTRasterizer', 'Type42'); set('Protocols', 'PJL BCP TBCP'); set('FileSystem', 1); set('ColorDevice', 1); set('DefaultColorSpace', 'CMYK'); set('AccurateScreensSupport', 1); set('cupsProtocol', 'None'); # FIXME: JobPatchFile and magic there... define_ui_group({ Key => 'Basic', Name => 'Basic options' }); option(&PPD::Common::Duplex); option(&PPD::Common::Collate); # FIXME: Jog PPD::PJL::add_jcl(); PPD::Paper::add_papers({ MinW => 254.6, MaxW => 930.3, MinH => 254.6, MaxH => 3456.5, MarginH => 14.456, MarginV => 14.456, PSPageSize => sub { my ($m) = @_; return sprintf("<< /PageSize [%d %d] >> setpagedevice", $m->{W}, $m->{H}); }, # FIXME: LeadingEdge }); switch_group('Media'); option({ Key => 'MediaType', Name => 'Media Type', Choice => 'PickOne', Priority => 20, Values => gen_values("<< /MediaType (%s) >> setpagedevice", { Key => 'None', PS => '<< /MediaType null >> setpagedevice', Default => 1 }, "Paper", "HeavyPaper", "Transparency", "ThinCardStock", "ThickCardStock", "ThickCardStock", "ExtraThickCardStock", "Envelope", "Label", "Letterhead", "CoatedPaper", "Preprinted", "Prepunched", "ColoredPaper", "Special", ), }); option({ Key => 'InputSlot', Name => 'Input Slot', Choice => 'PickOne', Priority => 30, Values => [ { Key => 'Auto', Name => 'Automatically Select', PS => "", Default => 1 }, { Key => 'ManualFeed', Name => 'Tray 1 with manual feed', PS => '<< /ManualFeed true /MediaPosition 0 /TraySwitch false >> setpagedevice' }, { Key => 'Tray1', Name => 'Tray 1', PS => '<< /ManualFeed false /MediaPosition 0 /TraySwitch false >> setpagedevice' }, { Key => 'Tray2', Name => 'Tray 2', PS => '<< /ManualFeed false /MediaPosition 1 /TraySwitch false >> setpagedevice' }, { Key => 'Tray3', Name => 'Tray 3', PS => '<< /ManualFeed false /MediaPosition 2 /TraySwitch false >> setpagedevice' }, ], }); # FIXME: Move to output section, probably with Collate and Jog as well option({ Key => 'OutputBin', Name => 'Paper Destination', Choice => 'PickOne', Priority => 50, Values => [ { Key => 'TopBin', Name => 'Top Output Tray', PS => '<< /OutputType (Top Bin) >> setpagedevice' }, { Key => 'LeftOutputTray', Name => 'Left Output Tray', PS => '<< /OutputType (Left Side Bin) >> setpagedevice' }, ], Default => 'TopBin', }); option({ Key => 'RequiresPageRegion', Values => [{ Key => 'All', String => 'True' }], Default => undef, }); # FIXME: Update constrain(undef, 'InputSlot', 'MediaType', sub { my ($is, $mt) = @_; return !(($is eq 'Tray2' || $is eq 'Tray3') && ($mt eq 'Labels' || $mt eq 'Envelope')); }); constrain(undef, 'Duplex', 'MediaType', sub { my ($dp, $mt) = @_; return !($dp ne 'None' && $mt =~ /^(Labels|Transparency|Bond)$/); }); # FIXME: Replace by XRXMismatch #option({ # Key => 'HPPaperPolicy', # Name => 'Fit to Page', # Choice => 'PickOne', # Priority => 10, # Values => [ # { Key => 'PromptUser', Name => 'PromptUser', PS => '', Default => 1 }, # { Key => 'NearestSizeAdjust', Name => 'Nearest Size and Scale', PS => '<< /Policies << /DeferredMediaSelection true /PageSize 3 >> >> setpagedevice' }, # { Key => 'NearestSizeNoAdjust', Name => 'Nearest Size and Crop', PS => '<< /Policies << /DeferredMediaSelection true /PageSize 5 >> >> setpagedevice' }, # ], #}); define_ui_group({ Key => 'Quality', Name => 'Print Quality / Color' }); # FIXME: This was HP, replace by OutputMode, but probably need DefaultResolution anyway option({ Key => 'Resolution', Name => 'Printer Resolution', Choice => 'PickOne', Priority => 70, Section => 'DocumentSetup', Values => [ { Key => '1200x1200dpi', Name => 'ProRes 1200', PS => '<< /HWResolution [1200 1200] /PreRenderingEnhance false >> setpagedevice' }, { Key => '600x600x2dpi', Name => 'FastRes 1200', PS => '<< /HWResolution [1200 1200] /PreRenderingEnhance true >> setpagedevice', Default => 1 }, { Key => '600x600dpi', Name => '600 DPI', PS => '<< /HWResolution [600 600] /PreRenderingEnhance false >> setpagedevice' }, ] }); option({ Key => 'OutputMode', Name => 'Print Quality', Choice => 'PickOne', Priority => 71, Values => [ { Key => 'Automatic', PS => 'true /RRCustomProcs /ProcSet findresource /setautopq get exec', Default => 1 }, # FIXME: ValuesPerColorComponent etc. { Key => 'Standard', PS => '<< /HWResolution [600 600] >> setpagedevice' }, { Key => 'Enhanced', PS => '<< /HWResolution [600 1200] >> setpagedevice' }, { Key => 'Photo', PS => '<< /HWResolution [600 600] >> setpagedevice' }, ], }); # FIXME: XRXColor, XRXGrayLine, XRXLightness, XRXSaturation, XRXContrast # FIXME: XRXCyanRed, XRXMagentaGreen, XRXYellowBlue, XRXApplyToCMYK # FIXME: XRXSmoothing, XRXPrintingOptimization # As reported by the printer fonts( <<'AMEN' ); AlbertusMT: Standard "(001.001)" Standard ROM AlbertusMT-Italic: Standard "(001.001)" Standard ROM AlbertusMT-Light: Standard "(001.001)" Standard ROM AntiqueOlive-Bold: Standard "(001.002)" Standard ROM AntiqueOlive-Compact: Standard "(001.002)" Standard ROM AntiqueOlive-Italic: Standard "(001.002)" Standard ROM AntiqueOlive-Roman: Standard "(001.002)" Standard ROM Apple-Chancery: Standard "(001.002)" Standard ROM Arial-BoldItalicMT: Standard "(001.003)" Standard ROM Arial-BoldMT: Standard "(001.003)" Standard ROM Arial-ItalicMT: Standard "(001.003)" Standard ROM ArialMT: Standard "(001.003)" Standard ROM ArialNarrowCyrMT: Special "(001.004)" Special ROM ArialNarrowCyrMT-Bold: Special "(001.004)" Special ROM AvantGarde-Book: Standard "(003.000)" Standard ROM AvantGarde-BookOblique: Standard "(003.000)" Standard ROM AvantGarde-Demi: Standard "(003.000)" Standard ROM AvantGarde-DemiOblique: Standard "(003.000)" Standard ROM Bodoni: Standard "(001.003)" Standard ROM Bodoni-Bold: Standard "(001.003)" Standard ROM Bodoni-BoldItalic: Standard "(001.003)" Standard ROM Bodoni-Italic: Standard "(001.003)" Standard ROM Bodoni-Poster: Standard "(001.003)" Standard ROM Bodoni-PosterCompressed: Standard "(001.002)" Standard ROM Bookman-Demi: Standard "(003.000)" Standard ROM Bookman-DemiItalic: Standard "(003.000)" Standard ROM Bookman-Light: Standard "(003.000)" Standard ROM Bookman-LightItalic: Standard "(003.000)" Standard ROM Carta: Special "(001.001)" Special ROM Chicago: Standard "(001.000)" Standard ROM Clarendon: Standard "(001.002)" Standard ROM Clarendon-Bold: Standard "(001.002)" Standard ROM Clarendon-Light: Standard "(001.002)" Standard ROM CooperBlack: Standard "(001.004)" Standard ROM CooperBlack-Italic: Standard "(001.004)" Standard ROM Copperplate-ThirtyThreeBC: Standard "(001.003)" Standard ROM Copperplate-ThirtyTwoBC: Standard "(001.003)" Standard ROM Coronet-Regular: Standard "(001.002)" Standard ROM Courier: Standard "(004.000)" Standard ROM Courier-Bold: Standard "(004.000)" Standard ROM Courier-BoldOblique: Standard "(004.000)" Standard ROM Courier-Oblique: Standard "(004.000)" Standard ROM Eurostile: Standard "(001.003)" Standard ROM Eurostile-Bold: Standard "(001.002)" Standard ROM Eurostile-BoldExtendedTwo: Standard "(001.003)" Standard ROM Eurostile-ExtendedTwo: Standard "(001.003)" Standard ROM Geneva: Standard "(001.000)" Standard ROM GillSans: Standard "(001.003)" Standard ROM GillSans-Bold: Standard "(001.002)" Standard ROM GillSans-BoldCondensed: Standard "(001.002)" Standard ROM GillSans-BoldItalic: Standard "(001.003)" Standard ROM GillSans-Condensed: Standard "(001.002)" Standard ROM GillSans-ExtraBold: Standard "(001.002)" Standard ROM GillSans-Italic: Standard "(001.003)" Standard ROM GillSans-Light: Standard "(001.002)" Standard ROM GillSans-LightItalic: Standard "(001.003)" Standard ROM Goudy: Standard "(001.004)" Standard ROM Goudy-Bold: Standard "(001.003)" Standard ROM Goudy-BoldItalic: Standard "(001.003)" Standard ROM Goudy-ExtraBold: Standard "(001.002)" Standard ROM Goudy-Italic: Standard "(001.003)" Standard ROM Helvetica: Standard "(003.000)" Standard ROM Helvetica-Bold: Standard "(003.000)" Standard ROM Helvetica-BoldOblique: Standard "(003.000)" Standard ROM Helvetica-Condensed: Standard "(003.000)" Standard ROM Helvetica-Condensed-Bold: Standard "(003.000)" Standard ROM Helvetica-Condensed-BoldObl: Standard "(003.000)" Standard ROM Helvetica-Condensed-Oblique: Standard "(003.000)" Standard ROM Helvetica-Narrow: Standard "(003.000)" Standard ROM Helvetica-Narrow-Bold: Standard "(003.000)" Standard ROM Helvetica-Narrow-BoldOblique: Standard "(003.000)" Standard ROM Helvetica-Narrow-Oblique: Standard "(003.000)" Standard ROM Helvetica-Oblique: Standard "(003.000)" Standard ROM HoeflerText-Black: Standard "(001.000)" Standard ROM HoeflerText-BlackItalic: Standard "(001.000)" Standard ROM HoeflerText-Italic: Standard "(001.000)" Standard ROM HoeflerText-Ornaments: Special "(001.001)" Special ROM HoeflerText-Regular: Standard "(001.000)" Standard ROM JoannaMT: Standard "(001.001)" Standard ROM JoannaMT-Bold: Standard "(001.001)" Standard ROM JoannaMT-BoldItalic: Standard "(001.001)" Standard ROM JoannaMT-Italic: Standard "(001.001)" Standard ROM LetterGothic: Standard "(001.005)" Standard ROM LetterGothic-Bold: Standard "(001.007)" Standard ROM LetterGothic-BoldSlanted: Standard "(001.006)" Standard ROM LetterGothic-Slanted: Standard "(001.005)" Standard ROM LubalinGraph-Book: Standard "(001.004)" Standard ROM LubalinGraph-BookOblique: Standard "(001.004)" Standard ROM LubalinGraph-Demi: Standard "(001.004)" Standard ROM LubalinGraph-DemiOblique: Standard "(001.004)" Standard ROM Marigold: Standard "(001.001)" Standard ROM MonaLisa-Recut: Standard "(001.001)" Standard ROM Monaco: Standard "(001.001)" Standard ROM NewCenturySchlbk-Bold: Standard "(003.000)" Standard ROM NewCenturySchlbk-BoldItalic: Standard "(003.000)" Standard ROM NewCenturySchlbk-Italic: Standard "(003.000)" Standard ROM NewCenturySchlbk-Roman: Standard "(003.000)" Standard ROM NewYork: Standard "(001.000)" Standard ROM Optima: Standard "(001.006)" Standard ROM Optima-Bold: Standard "(001.007)" Standard ROM Optima-BoldItalic: Standard "(001.001)" Standard ROM Optima-Italic: Standard "(001.001)" Standard ROM Oxford: Standard "(001.001)" Standard ROM Palatino-Bold: Standard "(003.000)" Standard ROM Palatino-BoldItalic: Standard "(003.000)" Standard ROM Palatino-Italic: Standard "(003.000)" Standard ROM Palatino-Roman: Standard "(003.000)" Standard ROM StempelGaramond-Bold: Standard "(001.003)" Standard ROM StempelGaramond-BoldItalic: Standard "(001.003)" Standard ROM StempelGaramond-Italic: Standard "(001.003)" Standard ROM StempelGaramond-Roman: Standard "(001.003)" Standard ROM Symbol: Special "(001.008)" Special ROM Tekton: Standard "(001.002)" Standard ROM Times-Bold: Standard "(003.000)" Standard ROM Times-BoldItalic: Standard "(003.000)" Standard ROM Times-Italic: Standard "(003.000)" Standard ROM Times-Roman: Standard "(003.000)" Standard ROM TimesNewRomanPS-BoldItalicMT: Standard "(001.003)" Standard ROM TimesNewRomanPS-BoldMT: Standard "(001.004)" Standard ROM TimesNewRomanPS-ItalicMT: Standard "(001.003)" Standard ROM TimesNewRomanPSMT: Standard "(001.003)" Standard ROM Univers: Standard "(001.004)" Standard ROM Univers-Bold: Standard "(001.004)" Standard ROM Univers-BoldExt: Standard "(001.001)" Standard ROM Univers-BoldExtObl: Standard "(001.001)" Standard ROM Univers-BoldOblique: Standard "(001.004)" Standard ROM Univers-Condensed: Standard "(001.003)" Standard ROM Univers-CondensedBold: Standard "(001.002)" Standard ROM Univers-CondensedBoldOblique: Standard "(001.002)" Standard ROM Univers-CondensedOblique: Standard "(001.003)" Standard ROM Univers-Extended: Standard "(001.001)" Standard ROM Univers-ExtendedObl: Standard "(001.001)" Standard ROM Univers-Light: Standard "(001.004)" Standard ROM Univers-LightOblique: Standard "(001.004)" Standard ROM Univers-Oblique: Standard "(001.004)" Standard ROM Wingdings: Special "(001.001)" Special ROM Wingdings-Regular: Special "(001.001)" Special ROM ZapfChancery-MediumItalic: Standard "(003.000)" Standard ROM ZapfDingbats: Special "(002.000)" Special ROM AMEN generate();