Getting capabilities for the printer registered through Universal Print connector

Process

To convert the capabilities of a printer from its driver to the supported IPP attributes, Universal Print follows the following process:

Step1: Connector gets printer's capabilities from the driver being used through its Print Device Capabilities (PDC). If PDC is not available, Universal Print uses the combination of Print Capabilities (PC) and Print Ticket (PT) to generate a PDC.

Step2: Universal Print parses the PDC XML and maps the elements and options to IPP Printer Description Attributes (PDAs). If a mapping is not found, then the PDC print attribute is ignored and dropped from the Universal Print printer options. For example, if the A6 paper option is listed under PageMediaSize as ns0001:ISOA6_PAPER then it will not be recognized. However, if it is included as psk:ISOA6 then it will be accepted and converted to the corresponding IPP attribute.

Namespaces

While mapping the top-level PDC elements to IPP Printer Description Attributes, Universal Print only looks at the name of the element and ignores the namespace. For example, psk:PageOutputColor is mapped to print-color-mode-supported, but if the element was ns0001:PageOutputColor it would still be mapped correctly to print-color-mode-supported.

For the options underneath elements, Universal Print sometimes does require the namespace to match and currently supports the namespaces below. If no namespace is given in the PDC to IPP mapping table, that means the conversion is performed regardless of namespace.

Namespace URL
ns0000 http://schemas.microsoft.com/windows/2018/04/printing/printschemakeywords/Ipp
xsi http://www.w3.org/2001/XMLSchema-instance
xsd http://www.w3.org/2001/XMLSchema
xml http://www.w3.org/XML/1998/namespace
psk http://schemas.microsoft.com/windows/2003/08/printing/printschemakeywords
psk12 http://schemas.microsoft.com/windows/2013/12/printing/printschemakeywordsv12
psf http://schemas.microsoft.com/windows/2003/08/printing/printschemaframework
psf2 http://schemas.microsoft.com/windows/2013/12/printing/printschemaframework2

PDC to IPP mapping

Here is the information on how elements and options are mapped from PDC to IPP.

PDC Top-level element IPP Printer Description Attribute Options underneath PDC top-level element Values inside IPP Printer Description Attribute
PageOutputColor print-color-mode-supported
print-color-mode-default
psk:Monochrome monochrome
psk:Color color
psk:Grayscale monochrome
psk:Highlight highlight
JobCopiesAllDocuments copies-supported
copies-default
MaxValue Used as the maximum value in the copies-supported range. 1 is always used as the minimum value
DefaultValue Used as the value in copies-default
PageOrientation orientation-requested-supported
orientation-requested-default
psk:Portrait 3
psk:Landscape 4
psk:ReverseLandscape 5
psk:ReversePortrait 6
DocumentDuplex
JobDuplexAllDocumentsContiguously
sides-supported
sides-default
psk:OneSided one-sided
psk:TwoSidedLongEdge two-sided-long-edge
psk:TwoSidedShortEdge wwo-sided-short-edge
PageMediaSize media-supported
media-default

media-col-database
media-col-default
_4X6 na_index-4x6_4x6in
_5X7 na_5x7_5x7in
_5X8 na_index-5x8_5x8in
Br3x5 na_index-3x5_3x5in
CreditCard om_card_54x86mm
EnglishPhoto-L oe_photo-l_3.5x5in
ISOA3 iso_a3_297x420mm
ISOA4 iso_a4_210x297mm
ISOA5 iso_a5_148x210mm
ISOA6 iso_a6_105x148mm
^ See Notes ISOB5Envelope iso_b5_176x250mm
^ See Notes ISOC4Envelope iso_c4_229x324mm
^ See Notes ISOC5Envelope iso_c5_162x229mm
^ See Notes ISODLEnvelope iso_dl_110x220mm
^ See Notes JapanChou3Envelope jpn_chou3_120x235mm
^ See Notes JapanChou40Envelope jpn_chou40_90x225mm
^ See Notes JapanChou4Envelope jpn_chou4_90x205mm
JapanHagakiPostcard jpn_hagaki_100x148mm
^ See Notes JapanKaku2Envelope jpn_kaku2_240x332mm
^ See Notes JapanYou4Envelope jpn_you4_105x235mm
JISB4 jis_b4_257x364mm
JISB5 jis_b5_182x257mm
MetricPhoto-L om_dsc-photo_89x119mm
NorthAmerica3x5 na_index-3x5_3x5in
NorthAmerica4x6 na_index-4x6_4x6in
NorthAmerica4x6Postcard na_index-4x6_4x6in
NorthAmerica5x7 na_5x7_5x7in
NorthAmerica5x8 na_index-5x8_5x8in
NorthAmerica8x10 na_govt-letter_8x10in
NorthAmerica11x17 na_ledger_11x17in
NorthAmericaExecutive na_executive_7.25x10.5in
NorthAmericaLegal na_legal_8.5x14in
NorthAmericaLetter na_letter_8.5x11in
^ See Notes NorthAmericaMonarchEnvelope na_monarch_3.875x7.5in
^ See Notes NorthAmericaNumber10Envelope na_number-10_4.125x9.5in
^ See Notes NorthAmericaNumber9Envelope na_number-9_3.875x8.875in
NorthAmericaStatement na_invoice_5.5x8.5in
NorthAmericaTabloid na_ledger_11x17in
MediaSizeWidth media-col entry: media-size->x-dimension
MediaSizeHeight media-col entry: media-size->y-dimension
BorderlessImageableSize media-col-entry: media-*-margin (calculate)

* indicates top, bottom, left, right
PortraitImageableSize media-col-entry: media-*-margin (calculate)

* indicates top, bottom, left, right

(Used only if BorderlessImageableSize element could not be found)
PageMediaType media-type-supported

media-col-database
media-col-default
Auto auto
AutoSelect auto
Color stationery-colored
Colored stationery-colored
Envelope envelope
EnvelopePlain envelope
Heavy stationery-heavyweight
HeavyweightPaper stationery-heavyweight
Label labels
Labels labels
Letterhead stationery-letterhead
Light stationery-lightweight
LightweightPaper stationery-lightweight
LxkColorPaper stationery-colored
LxkHeavy stationery-heavyweight
LxkLight stationery-Lightweight
MediaAutoSelect auto
Photographic photographic
PhotographicGlossy photographic-glossy
PhotographicHighGloss photographic-high-gloss
PhotographicSemiGloss Photographic-semi-gloss
Plain stationery
Thick stationery-heavyweight
Thin stationery-lightweight
Transparency transparency
stationery-letterhead stationery-letterhead
stationery-lightweight stationery-lightweight
DocumentNUp
JobNUpAllDocumentsContiguously
number-up-supported
number-up-default
Psk:PagesPerSheet Iterate through all PDC PagesPerSheet elements, add them to the set of supported values. Use the default element for number-up-default.
DocumentCollate multiple-document-handling-supported
multiple-document-handling-default

Note: Universal Print currently does not support multiple document jobs
psk:Collated separate-documents-collated-copies
Psk:Uncollated separate-documents-uncollated-copies
JobInputBin media-source-supported

media-col-database
media-col-default
Alternate alternate
AlternateRoll alternate-roll
Auto auto
AutoSelect auto
autoselect auto
Bottom bottom
ByPassTray by-pass-tray
Bypass-Tray by-pass-tray
Cassette tray-1
Center center
Disc disc
Envelope envelope
EnvFeed envelope
Hagaki hagaki
LargeCapacity large-capacity
Lct large-capacity
Left left
LxkTray1 tray-1
Main main
MainRoll main-roll
Manual manual
ManualFeed manual
Middle middle
Photo photo
Rear rear
Right right
Side side
Top top
DRAWER*
(* indicates numbers 1 through 4)
tray-*
Roll*
(* indicates numbers 1 through 10)
roll-*
Roll-*
(* indicates numbers 1 through 10)
roll-*
Tray*
(* indicates numbers 1 through 20)
tray-*
Tray-*
(* indicates numbers 1 through 20)
tray-*
Cassette*
(* indicates numbers 1 through 20)
tray-*
Cassette-*
(* indicates numbers 1 through 20)
tray-*
psk:FeedDirection
(under each JobInputBin element)
media-source-feed-direction
(in media-source-properties of media-col entries)
psk:ShortEdgeFirst short-edge-first
(Use short-edge-first if FeedDirection element not found)
psk:LongEdgeFirst long-edge-first
JobOutputBin output-bin-supported
output-bin-default
Auto auto
Bottom bottom
BottomBin bottom
Center center
CenterBin center
DestBulkTray large-capacity
DestBulkTrayFU stacker-1
DestMailbox my-mailbox
DestPrinterDefault auto
DestSideTray side
DestTopTray top
FaceDown face-down
Face-Down face-down
FaceUp face-up
Face-Up face-up
LargeCapacity large-capacity
Large-Capacity large-capacity
LargeStacker stacker-1
LargeStacker2 stacker-2
Left left
LeftBin left
LeftTray left
Middle middle
MiddleBin middle
MyMailbox my-mailbox
My-Mailbox my-mailbox
PrinterDefault auto
Rear rear
RearBin rear
Right right
RightBin right
Side side
SideBin side
Stacker stacker-1
Top top
TopBin top
UpperTray top
MailBoxBin*
(* indicates numbers 1 through 9)
mailbox-*
OutputBin*
(* indicates numbers 1 through 10)
tray-*
Tray*
(* indicates numbers 1 through 20)
tray-*
Tray-*
(* indicates numbers 1 through 20)
tray-*
Stacker*
(* indicates numbers 1 through 10)
stacker-*
Stacker-*
(* indicates numbers 1 through 10)
stacker-*
Mailbox*
(* indicates numbers 1 through 25)
mailbox-*
Mailbox-*
(* indicates numbers 1 through 25)
mailbox-*
PageResolution printer-resolution-supported
printer-resolution-default
ResolutionX X value of printer-resolution value
ResolutionY Y value of printer-resolution value
JobNUpPresentationDirection presentation-direction-number-up-supported
presentation-direction-number-up-default
psf:RightBottom to-right-to-bottom
psf:BottomRight to-bottom-to-right
psf:LeftBottom to-left-to-bottom
psf:BottomLeft to-bottom-to-left
psf:RightTop to-right-to-top
psf:TopRight to-top-to-right
psf:LeftTop to-left-to-top
psf:TopLeft to-top-to-left
DocumentStaple
JobStapleAllDocuments
DocumentHolePunch
JobHolePunch
DocumentBinding
JobBindAllDocuments
finishings-supported
finishings-default
_1diagonal 4
_1diagonalmax15 4
_1diagonalRight 22
_1diagonalZT 4
_1left 20
_1parallel 4
_1PLB_CN 21
_1PLU_CN 20
_1PRU_CN 22
_1Right 22
_1rightAngled 22
_1Staple_PC 4
_1StapleLeftLEPort_SH 20
_1StapleRight_PC 22
_1StapleRightREPort_SH 22
_23PunchBottom 77
_23PunchLeft 74
_23PunchRight 76
_23PunchTop 75
_24PunchBottom 77
_24PunchLeft 74
_24PunchRight 76
_24PunchTop 75
_2leftCM8060 28
_2OnAbv 93
_2OnRev 93
_2parallel 28
_2PB 74
_2PBTOP 75
_2PL 74
_2PL_CN 28
_2PLLandscape 75
_2PU 75
_2PU_CN 29
_2PULEFT 74
_2Right 30
_2StaplesBottom_PC 31
_2StaplesLeft_PC 28
_2StaplesLeftLEPort_SH 28
_2StaplesRight_PC 30
_2StaplesRightREPort_SH 30
_2StaplesTop_PC 29
_2StaplesTopSEPort_SH 29
_2topCM8060 29
_3OnBack 100
_3OnFront 100
_3PunchBottom 81
_3PunchLeft 78
_3PunchRight 80
_3PunchTop 79
_4OnObvIn 97
_4OnObvOut 97
_4OnRevIn 97
_4OnRevOut 97
_4PB 82
_4PBTOP 83
_4PL 82
_4PLLandscape 83
_4PU 83
_4PULEFT 82
_4PunchBottom 85
_4PunchLeft 82
_4PunchRight 84
_4PunchTop 83
Bale 12
Bind 7
BindBottom 53
BindLeft 50
BindRight 52
BindTop 51
COnDownL 96
COnDownR 96
COnUpL 96
COnUpR 96
EdgeStitch 9
EdgeStitchBottom 27
EdgeStitchLeft 24
EdgeStitchRight 26
EdgeStitchTop 25
Fold 10
FoldEngineeringZ 101
FoldHalf 93
FoldLetter 96
FoldParallel 97
FoldZ 100
FourHolesBottom_PC 85
FourHolesBottomSwd_PC 85
FourHolesLeft_PC 82
FourHolesLeftSwd_PC 82
FourHolesRight_PC 84
FourHolesRightSwd_PC 84
FourHolesTop_PC 83
FourHolesTopSwd_PC 83
HolePunch 5
HolePunchDualBottom 77
HolePunchDualLeft 74
HolePunchDualRight 76
HolePunchDualTop 75
HolePunchMultipleBottom 89
HolePunchMultipleLeft 86
HolePunchMultipleRight 88
HolePunchMultipleTop 87
HolePunchQuadBottom 85
HolePunchQuadLeft 82
HolePunchQuadRight 84
HolePunchQuadTop 83
HolePunchTripleBottom 81
HolePunchTripleLeft 78
HolePunchTripleRight 80
HolePunchTripleTop 79
InAnyPB 74
InAnyPL 78
InAnyPLLandscape 79
InAnyPU 79
JogOffset 14
Longside_Left_or_Top 50
Longside_Right_or_Bottom 52
SaddleStitch 8
Shortside_Left_or_Top 51
Shortside_Right_or_Bottom 53
Staple 4
StapleBottomLeft 21
StapleBottomRight 23
StapleDualBottom 31
StapleDualLeft 28
StapleDualRight 30
StapleDualTop 29
StapleTopLeft 20
StapleTopRight 22
ThreeHolesBottom_PC 81
ThreeHolesLeft_PC 78
ThreeHolesRight_PC 80
ThreeHolesTop_PC 79
Trim 11
TwoHolesBottom_PC 77
TwoHolesLeft_PC 74
TwoHolesRight_PC 76
TwoHolesTop_PC 75
ZOnL 101
ZOnR 101
Bottom 89
BottomEdge 89
InAnyPBLEFT 86
InAnyPULEFT 86
InAnyPUTOP 87
Left 86
LeftEdge 86
Right 88
RightEdge 88
Top 87
TopEdge 87
PageOutputQuality print-quality-supported
print-quality-default
psk:Draft 3
psk:Normal 4
psk:High 5

NOTES:

  • If an option is marked as default in the PDC, it will be used as the value for the *-default IPP attribute.
  • To generate the media-col-database, Universal Print adds all the possible combinations of media sizes, media types and media sources.
  • To generate media-col-default, Universal Print picks the combination that uses the default size, type and source.
  • Universal Print may also add attributes that could not be translated from PDC but are mandatory as per Mopria's IPP specification (version 2.0).
  • Media sizes marked with ^ are envelope sizes that were recently added to the Windows OS. They will not yet appear on existing versions of Windows.

Diagnosing missing printer options

These steps can be used to diagnose why some options are not showing up for the Universal Print printer registered via Universal Print connector.

  1. On the Universal Print connector that has the corresponding printer registered, launch the connector app.
  2. Login and select the printer that is being investigated.
  3. Click on the “Collect Diagnostics” button. This will collect the diagnostic information and launch File Explorer with an archived file corresponding to the printer’s name. Open the file to access the following files:
    1. LocalPcPt.xml or LocalPdc.xml: This is the PDC or PC/PT that Universal Print picked up for the printer.
    2. ServiceAttributes.txt: This file contains the IPP Printer Description Attributes that were successfully generated from the PDC.
    3. ServicePdc.xml: This is the PDC that is generated from the IPP Printer Description Attributes in ServiceAttributes.txt.
  4. Compare the LocalPcPt/LocalPdc.xml with either the ServiceAttributes.txt or ServicePdc.xml to determine which capabilities were either converted or dropped.