Sample Code

Windows Driver Samples/ Print Auto Configuration Sample/ C++/ AutoCnfg.PPD/

*PPD-Adobe: "4.3"
*% Adobe Systems PostScript(R) Printer Description File
*% Copyright (c) 2005 Microsoft Corp.  All rights reserved.

*FormatVersion: "4.3"
*FileVersion: "2.0"
*LanguageEncoding: ISOLatin1
*LanguageVersion: English
*Product: "(PostScript AutoConfiguration)"
*PSVersion: "(2015.105) 9"
*Manufacturer: "Microsoft"
*ModelName: "PostScript AutoConfiguration Sample"
*ShortNickName: "PostScript AutoConfiguration"
*NickName: "PostScript AutoConfiguration"
*PCFileName: "AutoCnfg.PPD"

*MSBidiQueryFile: "ACnfgPS.GDL"

*% === Installable Options ===========
*OpenGroup: InstallableOptions/Options Installed

*OpenUI *DuplexUnit/Duplex Unit: Boolean
*DefaultDuplexUnit: False
*DuplexUnit True/Installed: ""
*DuplexUnit False/Not Installed: ""
*CloseUI: *DuplexUnit

*OpenUI *HardDisk/Printer Hard Disk: Boolean
*DefaultHardDisk: False
*HardDisk True/Installed: ""
*HardDisk False/Not Installed: ""
*CloseUI: *HardDisk

*OpenUI *InstalledMemory/Printer Memory: PickOne
*DefaultInstalledMemory: 32Meg
*InstalledMemory  32Meg/32 MB: ""
*InstalledMemory  64Meg/64 MB: ""
*InstalledMemory 128Meg/128 MB: ""
*InstalledMemory 256Meg/256 MB: ""
*CloseUI: *InstalledMemory

*CloseGroup: InstallableOptions

*% === Constraints ===================


*% === Basic Device Capabilities ============

*LanguageLevel: "2"
*Protocols: BCP

*FreeVM: "6666752"
*VMOption  32Meg/32 MB: "6609408"
*VMOption  64Meg/64 MB: "6666752"
*VMOption 128Meg/128 MB: "9705984"
*VMOption 256Meg/256 MB: "13736448"


*ColorDevice: True
*DefaultColorSpace: CMYK
*AccurateScreensSupport: True
*SuggestedJobTimeout: "0"
*SuggestedWaitTimeout: "300"
*SuggestedManualFeedTimeout: "60"
*End
*TTRasterizer: Type42
*?TTRasterizer: "
  save
  42 /FontType resourcestatus
  { pop pop (Type42)} {pop pop (None)} ifelse = flush
  restore"
*End

*Emulators:  hpgl
*StartEmulator_hpgl: "currentfile /hpgl statusdict /emulate get exec "
*StopEmulator_hpgl: "<1B7F>0"

*FileSystem: True
*?FileSystem: "
  save false
  (%disk?%)
  { currentdevparams dup /Writeable known
    { /Writeable get {pop true} if }  {pop} ifelse
  } 10 string /IODevice resourceforall
  {(True)}{(False)} ifelse = flush
  restore"
*End
*Throughput: "14"
*Password: "(0)"
*ExitServer: "
  count 0 eq
  { false } { true exch startjob } ifelse
  not
  { (WARNING: Cannot modify initial VM.) =
    (Missing or invalid password.) =
    (Please contact the author of this software.) = flush quit
  } if"
*End
*Reset: "
  count 0 eq
  { false } { true exch startjob } ifelse
  not
  { (WARNING: Cannot reset printer.) =
    (Missing or invalid password.) =
    (Please contact the author of this software.) = flush quit
  } if
  systemdict /quit get exec
  (WARNING : Printer Reset Failed.) = flush"
*End

*DefaultResolution: 600x600dpi
*?Resolution: "
  save currentpagedevice
  /HWResolution get
  aload pop exch (          ) cvs print (x) print (          ) cvs print (dpi)
  = flush
  restore"
*End

*% Halftone Information =================

*DefaultHalftoneType: 9
*ScreenFreq: "60.0"
*ScreenAngle: "0.0"
*DefaultScreenProc: Null
*ScreenProc Null: "{}"

*DefaultTransfer: Null
*Transfer Null: "{ }"
*Transfer Null.Inverse: "{ 1 exch sub }"


*% Tray Selection ============

*OpenUI *InputSlot: PickOne
*OrderDependency: 10 AnySetup *InputSlot
*DefaultInputSlot: Paper
*InputSlot Upper: "
  (<<) cvx exec
    /MediaPosition 0
    /MediaType null
    /TraySwitch false
    /ManualFeed false
  (>>) cvx exec setpagedevice"
*End
*InputSlot Middle: "
  (<<) cvx exec
    /MediaPosition 1
    /MediaType null
    /TraySwitch false
    /ManualFeed false
  (>>) cvx exec setpagedevice"
*End
*InputSlot Lower: "
  (<<) cvx exec
    /MediaPosition 2
    /MediaType null
    /TraySwitch false
    /ManualFeed false
  (>>) cvx exec setpagedevice"
*End
*InputSlot Paper: "
  (<<) cvx exec
    /MediaPosition null
    /MediaType (Paper)
    /TraySwitch true
    /ManualFeed false
  (>>) cvx exec setpagedevice"
*End
*InputSlot Transparency: "
  (<<) cvx exec
    /MediaPosition null
    /MediaType (Transparency)
    /TraySwitch true
    /ManualFeed false
  (>>) cvx exec setpagedevice"
*End
*InputSlot ManualPaper/Manual Paper: "
  (<<) cvx exec
    /MediaPosition null
    /MediaType (Paper)
    /TraySwitch false
    /ManualFeed true
  (>>) cvx exec setpagedevice"
*End
*InputSlot ManualTransparency/Manual Transparency: "
  (<<) cvx exec
    /MediaPosition null
    /MediaType (Transparency)
    /TraySwitch false
    /ManualFeed true
  (>>) cvx exec setpagedevice"
*End
*?InputSlot: "
  save
  currentpagedevice /MediaPosition get
  dup null eq
  { pop currentpagedevice /MediaType get
    dup null eq
    { pop (Upper) }
    { dup (Paper) eq
      { pop currentpagedevice /ManualFeed get
        { (ManualPaper) }
        { (Paper) } ifelse
      }
      {
        (Transparency) eq
        { currentpagedevice /ManualFeed get
          { (ManualTransparency) }
          { (Transparency) } ifelse
        }
        { (Unknown) } ifelse
      } ifelse
    } ifelse
  }
  {
    dup 0 eq
    { pop (Upper) }
    { dup 1 eq
      { pop (Middle) }
      { 2 eq
        { (Lower) }
        { (Unknown) } ifelse
      } ifelse
    } ifelse
  } ifelse
  = flush restore"
*End
*CloseUI: *InputSlot

*% Paper Handling ===================

*% Use these entries to set paper size most of the time, unless there is
*% specific reason to use PageRegion.
*OpenUI *PageSize: PickOne
*OrderDependency: 20 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter: "(<<) cvx exec /PageSize [612 792] /ImagingBBox null
  (>>) cvx exec setpagedevice"
*End
*PageSize Legal: "(<<) cvx exec /PageSize [612 1008] /ImagingBBox null
  (>>) cvx exec setpagedevice"
*End
*PageSize A4: "(<<) cvx exec /PageSize [595 842] /ImagingBBox null
  (>>) cvx exec setpagedevice"
*End
*?PageSize: "
  save currentpagedevice /PageSize get aload pop
  2 copy gt {exch} if (Unknown)
  (<<) cvx exec
  [612 792] (Letter)
  [612 1008] (Legal)
  [595 842] (A4) (>>) cvx exec
  { exch aload pop 4 index sub abs 5 le exch 5 index sub abs 5 le and
        { exch pop exit } { pop } ifelse
  } bind forall = flush pop pop
  restore"
*End
*CloseUI: *PageSize

*% These entries will set up the frame buffer. Usually used with manual feed.
*OpenUI *PageRegion: PickOne
*OrderDependency: 30 AnySetup *PageRegion
*DefaultPageRegion: Letter
*PageRegion Letter: "(<<) cvx exec /PageSize [612 792] /ImagingBBox null
  (>>) cvx exec setpagedevice"
*End
*PageRegion Legal: "(<<) cvx exec /PageSize [612 1008] /ImagingBBox null
  (>>) cvx exec setpagedevice"
*End
*PageRegion A4: "(<<) cvx exec /PageSize [595 842] /ImagingBBox null
  (>>) cvx exec setpagedevice"
*End
*CloseUI: *PageRegion

*% The following entries provide information about specific paper keywords.
*DefaultImageableArea: Letter
*ImageableArea Letter: "10.32 15.9 601.68 776.22"
*ImageableArea Legal: "10.32 16.3801 601.68 991.74"
*ImageableArea A4: "13.44 14.46 581.76 828.54"
*?ImageableArea: "
  save
  /cvp { (                ) cvs print ( ) print } bind def
  /upperright {10000 mul floor 10000 div} bind def
  /lowerleft {10000 mul ceiling 10000 div} bind def
  newpath clippath pathbbox
  4 -2 roll exch 2 {lowerleft cvp} repeat
  exch 2 {upperright cvp} repeat flush
  restore"
*End

*% These provide the physical dimensions of the paper (by keyword)
*DefaultPaperDimension: Letter
*PaperDimension Letter: "612 792"
*PaperDimension Legal: "612 1008"
*PaperDimension A4: "595 842"

*RequiresPageRegion All: True

*% Print Quality Selection  ===================

*OpenUI *OutputMode/Print Quality: PickOne
*OrderDependency: 50 AnySetup *OutputMode
*DefaultOutputMode: Standard
*OutputMode Fast/Fast Color  600x600 dpi: "
  (<<) cvx exec
    /HWResolution [600 600]
    /ProcessColorModel /DeviceCMY
  (>>) cvx exec setpagedevice"
*End
*OutputMode Standard/Standard  600x600 dpi: "
  (<<) cvx exec
    /HWResolution [600 600]
    /ProcessColorModel /DeviceCMYK
  (>>) cvx exec setpagedevice"
*End
*OutputMode Enhanced/Enhanced  1200x600 dpi: "
  (<<) cvx exec
    /HWResolution [1200 600]
    /ProcessColorModel /DeviceCMYK
  (>>) cvx exec setpagedevice"
*End
*OutputMode Premium/Premium  1200x1200 dpi: "
  (<<) cvx exec
    /HWResolution [1200 1200]
    /ProcessColorModel /DeviceCMYK
  (>>) cvx exec setpagedevice"
*End
*?OutputMode: "
  save
  currentpagedevice /ProcessColorModel get /DeviceCMY eq
  { (Fast) }
  { currentpagedevice /HWResolution get
      aload pop 1200 eq
      { pop (Premium) }
      { 1200 eq
        { (Enhanced) }
        { (Standard) } ifelse
      } ifelse
  } ifelse
  = flush restore"
*End
*CloseUI: *OutputMode

*OpenUI *OutputOrder/Output Order: PickOne
*OrderDependency: 60 AnySetup *OutputOrder
*DefaultOutputOrder: Reverse
*OutputOrder Normal/Face Down: "
  (<<) cvx exec
    /OutputFaceUp false
  (>>) cvx exec setpagedevice"
*End
*OutputOrder Reverse/Face Up: "
  (<<) cvx exec
    /OutputFaceUp true
  (>>) cvx exec setpagedevice"
*End
*?OutputOrder: "
  save
  currentpagedevice /OutputFaceUp get {(Reverse)}{(Normal)}ifelse
  = flush restore"
*End
*CloseUI: *OutputOrder

*OpenUI *Collate/Quick Collate: Boolean
*OrderDependency: 70 AnySetup *Collate
*DefaultCollate: False
*Collate False: "
  (<<) cvx exec
    /Collate false
  (>>) cvx exec setpagedevice"
*End
*Collate True: "
  (<<) cvx exec
    /Collate true
  (>>) cvx exec setpagedevice"
*End
*?Collate: "
  save
  currentpagedevice /Collate get {(True)}{(False)}ifelse
  = flush restore"
*End
*CloseUI: *Collate

*%================================
*% Two-sided Printing (Duplex)
*%================================

*OpenUI *Duplex/Duplex: PickOne
*OrderDependency: 50 AnySetup *Duplex
*DefaultDuplex: None
*Duplex None/Off: "
    <</Duplex false /Tumble false>> setpagedevice"
*End
*Duplex DuplexNoTumble/Flip on Long Edge (Standard): "
    <</Duplex true /Tumble false>> setpagedevice"
*End
*Duplex DuplexTumble/Flip on Short Edge: "
    <</Duplex true /Tumble true>> setpagedevice"
*End
*?Duplex: "save
   currentpagedevice dup /Duplex known
     {dup /Duplex get
       {/Tumble get{(DuplexTumble)}{(DuplexNoTumble)}ifelse}
       {pop (None)} ifelse
     }
     {(None)} ifelse = flush
restore
"
*End
*CloseUI: *Duplex

*% =================================
*% User Interface Constraints
*% =================================

*% If the duplex unit is not installed disable duplex modes.

*UIConstraints: *DuplexUnit NotInstalled               *Duplex DuplexNoTumble
*UIConstraints: *DuplexUnit NotInstalled               *Duplex DuplexTumble


*% Font Information =====================
*DefaultFont: Courier
*Font Courier: Standard "(002.003)" Standard ROM
*Font Courier-Bold: Standard "(002.003)" Standard ROM
*Font Courier-BoldOblique: Standard "(002.003)" Standard ROM
*Font Courier-Oblique: Standard "(002.003)" Standard ROM
*Font Helvetica: Standard "(001.006)" Standard ROM
*Font Helvetica-Bold: Standard "(001.007)" Standard ROM
*Font Helvetica-BoldOblique: Standard "(001.007)" Standard ROM
*Font Helvetica-Condensed: Standard "(001.001)" Standard ROM
*Font Helvetica-Condensed-Bold: Standard "(001.002)" Standard ROM
*Font Helvetica-Condensed-BoldObl: Standard "(001.002)" Standard ROM
*Font Helvetica-Condensed-Oblique: Standard "(001.001)" Standard ROM
*Font Helvetica-Narrow: Standard "(001.006)" Standard ROM
*Font Helvetica-Narrow-Bold: Standard "(001.007)" Standard ROM
*Font Helvetica-Narrow-BoldOblique: Standard "(001.007)" Standard ROM
*Font Helvetica-Narrow-Oblique: Standard "(001.006)" Standard ROM
*Font Helvetica-Oblique: Standard "(001.006)" Standard ROM
*Font Symbol: Special "(001.007)" Special ROM
*Font Times-Bold: Standard "(001.007)" Standard ROM
*Font Times-BoldItalic: Standard "(001.009)" Standard ROM
*Font Times-Italic: Standard "(001.007)" Standard ROM
*Font Times-Roman: Standard "(001.007)" Standard ROM
*Font ZapfChancery-MediumItalic: Standard "(001.006)" Standard ROM
*Font ZapfDingbats: Special "(001.004)" Special ROM
*?FontQuery: "
  save
  { count 1 gt
    { exch dup 127 string cvs (/) print print (:) print
     /Font resourcestatus {pop pop (Yes)} {(No)} ifelse =
    } { exit } ifelse
  } bind loop
  (*) = flush restore"
*End

*?FontList: "
   save (*) {cvn ==} 128 string /Font resourceforall
   (*) = flush restore"
*End

*DefaultColorSep: ProcessBlack.60lpi.600x600dpi/60 lpi / 600x600 dpi

*%  For 60 lpi / 600x600dpi ================================

*ColorSepScreenAngle ProcessBlack.60lpi.600x600dpi/60 lpi / 600x600 dpi: "0.0"
*ColorSepScreenAngle CustomColor.60lpi.600x600dpi/60 lpi / 600x600 dpi: "0.0"
*ColorSepScreenAngle ProcessCyan.60lpi.600x600dpi/60 lpi / 600x600 dpi: "0.0"
*ColorSepScreenAngle ProcessMagenta.60lpi.600x600dpi/60 lpi / 600x600 dpi: "0.0"
*ColorSepScreenAngle ProcessYellow.60lpi.600x600dpi/60 lpi / 600x600 dpi: "0.0"

*ColorSepScreenFreq ProcessBlack.60lpi.600x600dpi/60 lpi / 600x600 dpi: "60.0"
*ColorSepScreenFreq CustomColor.60lpi.600x600dpi/60 lpi / 600x600 dpi: "60.0"
*ColorSepScreenFreq ProcessCyan.60lpi.600x600dpi/60 lpi / 600x600 dpi: "60.0"
*ColorSepScreenFreq ProcessMagenta.60lpi.600x600dpi/60 lpi / 600x600 dpi: "60.0"
*ColorSepScreenFreq ProcessYellow.60lpi.600x600dpi/60 lpi / 600x600 dpi: "60.0"

*% end of PPD file for MS PS5 OEM Custimization

Our Services

  • What our customers say about us?

© 2011-2024 All Rights Reserved. Joya Systems. 4425 South Mopac Building II Suite 101 Austin, TX 78735 Tel: 800-DEV-KERNEL

Privacy Policy. Terms of use. Valid XHTML & CSS