Skip to content
Snippets Groups Projects
Commit 38f8d959 authored by Martin Mareš's avatar Martin Mareš
Browse files

PPD: First bits of Phaser PPD

parent 5d97dd29
No related branches found
No related tags found
No related merge requests found
......@@ -234,8 +234,8 @@ declare('f',
define_head_group({ Key => 'p', Name => 'Product description' });
declare('p',
[ 'Manufacturer', 'q!', undef ],
[ 'ModelName', 'q!', undef ], # default: copy Product
[ 'NickName', 'q!', undef ], # default: copy Product
[ 'ModelName', 'q!', undef ], # default: concatenate Manufacturer and Product
[ 'NickName', 'q!', undef ], # default: copy ModelName
[ 'ShortNickName', 'q!', undef ], # default: copy NickName
[ 'Product', 'q!', undef ],
[ 'PSVersion', 'q!', undef ],
......@@ -405,16 +405,14 @@ sub emit_constraints() {
}
sub fill_defaults() {
my $model = get('ModelName');
if (defined $model) {
maybe_set('Product', "($model)");
maybe_set('NickName', $model);
my $mfg = get('Manufacturer');
my $prod = get('Product');
if (defined($mfg) && defined($prod)) {
maybe_set('ModelName', $mfg . ' ' . $prod);
}
my $nick = get('NickName');
if ($nick) {
maybe_set('ShortNickName', $nick);
}
maybe_set('NickName', get('ModelName')) if defined get('ModelName');
maybe_set('ShortNickName', get('NickName')) if defined get('NickName');
my $psver = get('PSVersion');
if (defined($psver) && $psver =~ /\((\d)/) {
......
......@@ -12,7 +12,7 @@ set('FileVersion', '1.0');
set('PCFileName', 'HP4350.PPD');
set('Manufacturer', 'HP');
set('ModelName', 'HP LaserJet 4350');
set('Product', 'LaserJet 4350');
set('PSVersion', '(3010.107) 0');
set('Throughput', 35);
......
#!/usr/bin/perl
use strict;
use warnings;
use lib ".";
use PPD;
use PPD::PJL;
use PPD::Paper;
set('FileVersion', '1.0');
set('PCFileName', 'XR7400.PPD');
set('Manufacturer', 'Xerox');
set('Product', 'Phaser 7400');
set('PSVersion', '(3016.101) 3');
# *DefaultOutputOrder: Normal
# *AccurateScreensSupport: True
# *DefaultGuaranteedMaxSeparations: 4
set('Throughput', 35);
set('TTRasterizer', 'Type42');
set('Protocols', 'PJL BCP TBCP');
set('FileSystem', 1);
set('ColorDevice', 1);
set('DefaultColorSpace', 'CMYK');
set('cupsProtocol', 'None');
# FIXME: JobPatchFile and magic there...
define_ui_group({ Key => 'Basic', Name => 'Basic options' });
option({
Key => 'Duplex',
Name => '2-Sided Printing',
Choice => 'PickOne',
Values => [
{ Key => 'None', Name => 'Off (1-Sided)', PS => "<< /Duplex false >> setpagedevice" },
{ Key => 'DuplexNoTumble', Name => 'Long-Edge Binding', PS => "<< /Duplex true /Tumble false >> setpagedevice", Default => 1 },
{ Key => 'DuplexTumble', Name => 'Short-Edge Binding', PS => "<< /Duplex true /Tumble true >> setpagedevice" },
]
});
option({
Key => 'Resolution',
Name => 'Printer Resolution',
Choice => 'PickOne',
Priority => 5,
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 => 'Collate',
Choice => 'Boolean',
Values => [
{ Key => 'False', Name => 'Off', PS => '<< /Collate false >> setpagedevice' },
{ Key => 'True', Name => 'On', PS => '<< /Collate true >> setpagedevice', Default => 1 },
]
});
# 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 => 20,
Values => [
{ 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' },
],
Default => 'Tray2',
});
option({
Key => 'OutputBin',
Name => 'Paper Destination',
Choice => 'PickOne',
Priority => 21,
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' });
option({
Key => 'OutputMode',
Name => 'Print Quality',
Choice => 'PickOne',
Priority => 46,
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
# FIXME: Omitted configuration of halftoning
generate();
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment