From 635d89918d5b44649e1d79769f7e7a3518a5aa24 Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Mon, 17 May 2021 14:12:47 +0200 Subject: [PATCH] PPD: Melusine via XCPT --- ppd/gen-melusine-xcpt | 547 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 547 insertions(+) create mode 100755 ppd/gen-melusine-xcpt diff --git a/ppd/gen-melusine-xcpt b/ppd/gen-melusine-xcpt new file mode 100755 index 0000000..d89777a --- /dev/null +++ b/ppd/gen-melusine-xcpt @@ -0,0 +1,547 @@ +#!/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', 'XRAL8135.PPD'); + +set('Manufacturer', 'Xerox'); +set('Product', [ 'Altalink C8135', '(1.3.6.1.4.1.253.8.62.1.20.6.26.1.1)' ]); +set('PSVersion', '(3021.101) 3000'); + +set('Throughput', 35); +set('TTRasterizer', 'Type42'); +set('Protocols', 'PJL BCP TBCP'); + +set('cupsFilter', 'application/vnd.cups-pdf 0 xerox-xcpt'); +set('cupsFilter', 'application/vnd.cups-postscript 0 xerox-xcpt'); + +set('ColorDevice', 1); +set('DefaultColorSpace', 'CMYK'); + +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({ + Key => 'XRPrivate', + Choice => 'Boolean', + Name => 'Private Job', + Priority => 59, + JCL => 1, + Values => [ + { Key => 'False', Name => 'Print normally', PS => jopt('PRIVATE', "") }, + { Key => 'True', Name => 'Private print-out', PS => jopt('PRIVATE', 'YES') }, + ], +}); + +PPD::PJL::add_jcl({ PDF => 1 }); + +PPD::Paper::add_papers({ + MinW => 252, MaxW => 864, + MinH => 278, MaxH => 1368, + MarginH => 11.34, MarginV => 11.34, + JCL => 1, + PSPageSize => sub { my ($m) = @_; return jopt('MEDIA_XSIZE', $m->{W}, 'MEDIA_YSIZE', $m->{H}); }, + PSCustomPageSize => jopt('MEDIA_XSIZE', '\1', 'MEDIA_YSIZE', '\2'), +}); + +switch_group('Media'); + +option({ + Key => 'MediaType', + Name => 'Media Type', + Choice => 'PickOne', + Priority => 20, + JCL => 1, + Values => [ + map { { Key => $_->[0], Name => $_->[1], PS => jopt('MEDIA_TYPE', $_->[2]) } } + ( + [ 'AutoSelect', 'Automatically Select', 'use-ready' ], + [ 'SystemDefault', 'Printer Default', 'system-default' ], + [ 'Plain', 'Plain', 'stationery' ], + [ 'PlainReload', 'Plain Reloaded', 'stationery-reloaded' ], + [ 'Recycled', 'Recycled', 'stationery-recycled' ], + [ 'Punched', 'Punched', 'stationery-pre-punched' ], + [ 'Lightweight', 'Lightweight', 'stationery-lightweight' ], + [ 'LightweightCardStock', 'Lightweight Cardstock', 'cardstock-lightweight' ], + [ 'LightweightCardStockReloaded', 'Lightweight Cardstock Reloaded', 'cardstock-lightweight-reloaded' ], + [ 'CardStock', 'Cardstock', 'cardstock' ], + [ 'CardStockReloaded', 'Cardstock Reloaded', 'cardstock-reloaded', ], + [ 'HeavyweightCardstock', 'Heavyweight Cardstock', 'cardstock-heavyweight' ], + [ 'HeavyweightCardstockReloaded', 'Heavyweight Cardstock Reloaded', 'cardstock-heavyweight-reloaded' ], + [ 'LightweightGlossyCardStock', 'Lightweight Glossy Cardstock', 'cardstock-lightweight-glossy' ], + [ 'LightweightGlossyCardStockReloaded', 'Lightweight Glossy Cardstock Reloaded', 'cardstock-lightweight-glossy-reloaded' ], + [ 'GlossyCardStock', 'Glossy Cardstock', 'cardstock-glossy', ], + [ 'GlossyCardStockReloaded', 'Glossy Cardstock Reloaded', 'cardstock-glossy-reloaded', ], + [ 'HeavyweightGlossyCardstock', 'Heavyweight Glossy Cardstock', 'cardstock-heavyweight' ], + [ 'HeavyweightGlossyCardstockReloaded', 'Heavyweight Glossy Cardstock Reloaded', 'cardstock-heavyweight-reloaded' ], + [ 'PrePrinted', 'Pre-Printed', 'stationery-pre-printed' ], + [ 'Letterhead', 'Letterhead', 'stationery-letterhead' ], + [ 'Transparency', 'Transparency', 'transparency' ], + [ 'Bond', 'Bond', 'bond' ], + [ 'Labels', 'Labels', 'labels', ], + [ 'Envelopes', 'Envelope', 'envelope', ], + [ 'Custom1', 'Custom Type 1', 'custom1' ], + [ 'Custom2', 'Custom Type 2', 'custom2' ], + [ 'Custom3', 'Custom Type 3', 'custom3' ], + [ 'Custom4', 'Custom Type 4', 'custom4' ], + [ 'Custom5', 'Custom Type 5', 'custom5' ], + [ 'Custom6', 'Custom Type 6', 'custom6' ], + [ 'Custom7', 'Custom Type 7', 'custom7' ], + [ 'Other', 'Other Type', 'other' ], + ) + ], +}); + +option({ + Key => 'MediaColor', + Name => 'Media Color', + Choice => 'PickOne', + Priority => 21, + JCL => 1, + Values => [ + map { { Key => $_->[0], Name => $_->[1], PS => jopt('MEDIA_COLOR', $_->[2]) } } + ( + [ 'SystemDefault', 'Printer Default', 'system-default' ], + [ 'Blue', 'Blue', 'blue' ], + [ 'Buff', 'Buff', 'buff' ], + [ 'Clear', 'Clear', 'no-color' ], + [ 'Goldenrod', 'Goldenrod', 'goldenrod' ], + [ 'Gray', 'Gray', 'gray' ], + [ 'Green', 'Green', 'green' ], + [ 'Ivory', 'Ivory', 'ivory' ], + [ 'Orange', 'Orange', 'orange' ], + [ 'Pink', 'Pink', 'pink' ], + [ 'Red', 'Red', 'red' ], + [ 'White', 'White', 'white' ], + [ 'Yellow', 'Yellow', 'yellow' ], + [ 'Custom1', 'Custom Color 1', 'custom1' ], + [ 'Custom2', 'Custom Color 2', 'custom2' ], + [ 'Custom3', 'Custom Color 3', 'custom3' ], + [ 'Custom4', 'Custom Color 4', 'custom4' ], + [ 'Custom5', 'Custom Color 5', 'custom5' ], + [ 'Custom6', 'Custom Color 6', 'custom6' ], + [ 'Custom7', 'Custom Color 7', 'custom7' ], + [ 'Other', 'Other Color', 'other' ], + ) + ], +}); + +option({ + Key => 'InputSlot', + Name => 'Input Slot', + Choice => 'PickOne', + Priority => 30, + JCL => 1, + Values => [ + { Key => 'AutoSelect', Name => 'Automatically Select', PS => jopt('INPUT_TRAY', 'automatic') }, + { Key => 'Tray1', Name => 'Tray 1', PS => jopt('INPUT_TRAY', 'tray-1') }, + { Key => 'Tray2', Name => 'Tray 2', PS => jopt('INPUT_TRAY', 'tray-2') }, + { Key => 'Tray3', Name => 'Tray 3', PS => jopt('INPUT_TRAY', 'tray-3') }, + { Key => 'Tray4', Name => 'Tray 4', PS => jopt('INPUT_TRAY', 'tray-4') }, + { Key => 'Tray5', Name => 'Tray 5 (Bypass)', PS => jopt('INPUT_TRAY', 'tray-5') }, + { Key => 'ManualFeed', Name => 'Tray 5 (Bypass with manual feed)', PS => jopt('INPUT_TRAY', 'manualfeed', 'TRAY_FEED', 'manual-check') }, + ], +}); + +option({ + Key => 'RequiresPageRegion', + Values => [{ Key => 'All', String => 'True' }], + Default => undef, +}); + +define_ui_group({ Key => 'Finishing', Name => 'Finishing' }); + +option({ + Key => 'OutputBin', + Name => 'Paper Destination', + Choice => 'PickOne', + Priority => 50, + JCL => 1, + Values => [ + { Key => 'AutoSelect', Name => 'Automatically Select', PS => jopt('OUTPUT', 'automatic') }, + { Key => 'Middle', Name => 'Center Tray', PS => jopt('OUTPUT', 'center') }, + { Key => 'Left', Name => 'Left Top Tray', PS => jopt('OUTPUT', 'left') }, + { Key => 'RightTop', Name => 'Right Top Tray', PS => jopt('OUTPUT', 'right-top') }, + { Key => 'RightMiddle', Name => 'Right Middle Tray', PS => jopt('OUTPUT', 'right-middle') }, + ], +}); + +option({ + Key => 'Jog', + Name => 'Offset', + Choice => 'PickOne', + Priority => 51, + JCL => 1, + Values => [ + { Key => 'None', Name => 'No Offset', PS => jopt('OFFSET', 'none') }, + { Key => 'EndOfSet', Name => 'Each Set', PS => jopt('OFFSET', 'offset-set'), Default => 1 }, + { Key => 'EndOfJob', Name => 'Each Job', PS => jopt('OFFSET', 'offset-job') }, + ], +}); + +# This is very similar to *LeadingEdge, but the semantics are subtly different, +# so we prefer to use a different name. +option({ + Key => 'XRFeed', + Name => 'Feed Orientation', + Choice => 'PickOne', + Priority => 59, + JCL => 1, + Values => [ + { Key => 'AutoSelect', Name => 'Automatically Select', PS => jopt('FEED_ORIENTATION', "automatic") }, + { Key => 'LongEdge', Name => 'Long Edge First', PS => jopt('FEED_ORIENTATION', 'long-edge-first') }, + { Key => 'ShortEdge', Name => 'Short Edge First', PS => jopt('FEED_ORIENTATION', 'short-edge-first') }, + ], +}); + +define_ui_group({ Key => 'Quality', Name => 'Print Quality' }); + +option({ + Key => 'XRColor', + Name => 'Color Printing', + Choice => 'PickOne', + Priority => 70, + JCL => 1, + Values => [ + { Key => 'Color', Name => 'Color', PS => jopt('COLOR', 'color') }, + { Key => 'Mono', Name => 'Monochromatic', PS => jopt('COLOR', 'mono') }, + ], +}); + +option({ + Key => 'OutputMode', + Name => 'Print Quality', + Choice => 'PickOne', + Priority => 71, + JCL => 1, + Values => [ + { Key => 'Standard', Name => 'Standard', PS => jopt('QUALITY', 'standard') }, + { Key => 'Enhanced', Name => 'Enhanced', PS => jopt('QUALITY', 'enhanced') }, + { Key => 'HighResolution', Name => 'Highest Resolution', PS => jopt('QUALITY', 'highest-resolution') }, + { Key => 'TonerSaver', Name => 'Toner Saver', PS => jopt('QUALITY', 'toner-saver') }, + ], +}); + +int_option({ + Key => 'XRContrast', + Name => 'Contrast adjustment', + Priority => 80, + JCL => 1, + Int => { + Min => -100, + Max => 100, + Step => 10, + FixedPS => sub { jopt('ADJUST_CONTRAST', $_[0]); }, + CustomKey => 'Contrast', + }, +}); + +int_option({ + Key => 'XRLightness', + Name => 'Lightness adjustment', + Priority => 81, + JCL => 1, + Int => { + Min => -100, + Max => 100, + Step => 10, + FixedPS => sub { jopt('ADJUST_LIGHTNESS', $_[0]); }, + CustomKey => 'Lightness', + }, +}); + +int_option({ + Key => 'XRSaturation', + Name => 'Saturation adjustment', + Priority => 82, + JCL => 1, + Int => { + Min => -100, + Max => 100, + Step => 10, + FixedPS => sub { jopt('ADJUST_SATURATION', $_[0]); }, + CustomKey => 'Saturation', + }, +}); + +int_option({ + Key => 'XRCyanRed', + Name => 'Cyan/Red adjustment', + Priority => 83, + JCL => 1, + Int => { + Min => -100, + Max => 100, + Step => 10, + FixedPS => sub { jopt('ADJUST_CYAN_RED', $_[0]); }, + CustomKey => 'CyanRed', + }, +}); + +int_option({ + Key => 'XRMagentaGreen', + Name => 'Magenta/Green adjustment', + Priority => 84, + JCL => 1, + Int => { + Min => -100, + Max => 100, + Step => 10, + FixedPS => sub { jopt('ADJUST_MAGENTA_GREEN', $_[0]); }, + CustomKey => 'MagentaGreen', + }, +}); + +int_option({ + Key => 'XRYellowBlue', + Name => 'Yellow/Blue adjustment', + Priority => 85, + JCL => 1, + Int => { + Min => -100, + Max => 100, + Step => 10, + FixedPS => sub { jopt('ADJUST_YELLOW_BLUE', $_[0]); }, + CustomKey => 'YellowBlue', + }, +}); + +# As reported by the printer +fonts( <<'AMEN' ); +AdobeSansMM: Standard "(001.002)" Standard ROM +AdobeSerifMM: Standard "(001.003)" Standard ROM +AlbertusMT-Italic: Standard "(001.001)" Standard ROM +AlbertusMT-Light: Standard "(001.001)" Standard ROM +AlbertusMT: 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 "(3.0)" 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 +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-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 +Bodoni: Standard "(001.003)" 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 "(3.0)" Standard ROM +Clarendon-Bold: Standard "(001.002)" Standard ROM +Clarendon-Light: Standard "(001.002)" Standard ROM +Clarendon: Standard "(001.002)" Standard ROM +CooperBlack-Italic: Standard "(001.004)" Standard ROM +CooperBlack: 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-Bold: Standard "(004.000)" Standard ROM +Courier-BoldOblique: Standard "(004.000)" Standard ROM +Courier-Oblique: Standard "(004.000)" Standard ROM +Courier: Standard "(004.000)" Standard ROM +Eurostile-Bold: Standard "(001.002)" Standard ROM +Eurostile-BoldExtendedTwo: Standard "(001.003)" Standard ROM +Eurostile-ExtendedTwo: Standard "(001.003)" Standard ROM +Eurostile: Standard "(001.003)" Standard ROM +Geneva: Standard "(3.0)" 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 +GillSans: Standard "(001.003)" 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 +Goudy: Standard "(001.004)" Standard ROM +GreekMono737-Bold: Special "(001.001)" Special ROM +GreekMono737-BoldItalic: Special "(001.001)" Special ROM +GreekMono737-Italic: Special "(001.001)" Special ROM +GreekMono737: Special "(001.001)" Special ROM +GreekMono851-Bold: Special "(001.001)" Special ROM +GreekMono851-BoldItalic: Special "(001.001)" Special ROM +GreekMono851-Italic: Special "(001.001)" Special ROM +GreekMono851: Special "(001.001)" Special ROM +GreekMono8859-7: Special "(001.001)" Special ROM +GreekMono8859-7Bold: Special "(001.001)" Special ROM +GreekMono8859-7BoldItalic: Special "(001.001)" Special ROM +GreekMono8859-7Italic: Special "(001.001)" Special ROM +GreekSans737-Bold: Special "(001.001)" Special ROM +GreekSans737-BoldItalic: Special "(001.001)" Special ROM +GreekSans737-Italic: Special "(001.000)" Special ROM +GreekSans737: Special "(001.001)" Special ROM +GreekSans851-Bold: Special "(001.001)" Special ROM +GreekSans851-BoldItalic: Special "(001.001)" Special ROM +GreekSans851-Italic: Special "(001.001)" Special ROM +GreekSans851: Special "(001.001)" Special ROM +GreekSans8859-7: Special "(001.001)" Special ROM +GreekSans8859-7Bold: Special "(001.001)" Special ROM +GreekSans8859-7BoldItalic: Special "(001.001)" Special ROM +GreekSans8859-7Italic: Special "(001.001)" Special ROM +GreekSerif737-Bold: Special "(001.001)" Special ROM +GreekSerif737-BoldItalic: Special "(001.001)" Special ROM +GreekSerif737-Italic: Special "(001.001)" Special ROM +GreekSerif737: Special "(001.001)" Special ROM +GreekSerif851-Bold: Special "(001.001)" Special ROM +GreekSerif851-BoldItalic: Special "(001.001)" Special ROM +GreekSerif851-Italic: Special "(001.001)" Special ROM +GreekSerif851: Special "(001.001)" Special ROM +GreekSerif8859-7: Special "(001.001)" Special ROM +GreekSerif8859-7Bold: Special "(001.001)" Special ROM +GreekSerif8859-7BoldItalic: Special "(001.001)" Special ROM +GreekSerif8859-7Italic: Special "(001.001)" Special ROM +Helvetica-Bold-ISOLatin9: Special "(003.000)" Special ROM +Helvetica-Bold: Standard "(003.000)" Standard ROM +Helvetica-BoldOblique: 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-Condensed: Standard "(003.000)" Standard ROM +Helvetica-ISOLatin9: Special "(003.000)" Special 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-Narrow: Standard "(003.000)" Standard ROM +Helvetica-Oblique: Standard "(003.000)" Standard ROM +Helvetica: Standard "(003.000)" Standard ROM +HoeflerText-Black: Standard "(1.0)" Standard ROM +HoeflerText-BlackItalic: Standard "(1.0)" Standard ROM +HoeflerText-Italic: Standard "(1.0)" Standard ROM +HoeflerText-Ornaments: Special "(001.001)" Special ROM +HoeflerText-Regular: Standard "(1.0)" Standard ROM +JoannaMT-Bold: Standard "(001.001)" Standard ROM +JoannaMT-BoldItalic: Standard "(001.001)" Standard ROM +JoannaMT-Italic: Standard "(001.001)" Standard ROM +JoannaMT: Standard "(001.001)" Standard ROM +LetterGothic-Bold: Standard "(001.007)" Standard ROM +LetterGothic-BoldSlanted: Standard "(001.006)" Standard ROM +LetterGothic-Slanted: Standard "(001.005)" Standard ROM +LetterGothic: Standard "(001.005)" Standard ROM +LogoFont-Regular: Standard "(001.001)" 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 "(3.0)" 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-Bold: Standard "(001.007)" Standard ROM +Optima-BoldItalic: Standard "(001.001)" Standard ROM +Optima-Italic: Standard "(001.001)" Standard ROM +Optima: Standard "(001.006)" 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 +SystemBoldFont: Special "<unknown version>" Special ROM +SystemFont: Special "<unknown version>" 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-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 +Univers: Standard "(001.004)" Standard ROM +Wingdings-Regular: Special "(Version 2.00)" Special ROM +Wingdings: Special "(001.001)" Special ROM +XeroxSans-Bold: Special "(001.001)" Special ROM +XeroxSans-BoldItalic: Special "(001.001)" Special ROM +XeroxSans-Italic: Special "(001.001)" Special ROM +XeroxSans-Light: Special "(001.001)" Special ROM +XeroxSans-LightRegSym: Special "(001.001)" Special ROM +XeroxSans: Special "(001.001)" Special ROM +ZapfChancery-MediumItalic: Standard "(003.000)" Standard ROM +ZapfDingbats: Special "(002.000)" Special ROM +AMEN + +# Various constraints + +constrain(undef, 'PageSize', 'MediaType', sub { + my ($ps, $mt) = @_; + return !($ps =~ m{^Env} && $mt ne 'Envelopes' && $mt ne 'AutoSelect'); +}); + +constrain(undef, 'Duplex', 'PageSize', sub { + my ($dp, $ps) = @_; + return !($dp ne 'None' && $ps !~ m{^(A[345]|ISOB[345]|Letter|Legal)$}); +}); + +constrain(undef, 'Duplex', 'MediaType', sub { + my ($dp, $mt) = @_; + return !($dp ne 'None' && $mt =~ /^(Labels|Transparency|Bond|Envelopes)$/); +}); + +generate(); -- GitLab