.net Windows打印机队列的PaperType变量

.net Windows打印机队列的PaperType变量,.net,powershell,printing,queue,.net,Powershell,Printing,Queue,另一个问题开始问我的问题: 如果其他人读到这篇文章,最初的请求是一个PaperType变量,它应该是类似于plain、label、preprinted等的内容 我使用powershell查看.net,但仍然找不到PaperType,尽管它似乎向我显示了其他所有内容…:-(如链接问题中所述,WMI确实具有当前/默认纸张类型,但其为空 我想做的是:获取现有打印队列,复制变量:名称、默认纸盘、双面打印、注释、纸张类型。更改驱动程序,并将变量设置回原位。除了纸张类型,我所有的工作都在进行中 有人有什么想

另一个问题开始问我的问题:

如果其他人读到这篇文章,最初的请求是一个PaperType变量,它应该是类似于plain、label、preprinted等的内容

我使用powershell查看.net,但仍然找不到PaperType,尽管它似乎向我显示了其他所有内容…:-(如链接问题中所述,WMI确实具有当前/默认纸张类型,但其为空

我想做的是:获取现有打印队列,复制变量:名称、默认纸盘、双面打印、注释、纸张类型。更改驱动程序,并将变量设置回原位。除了纸张类型,我所有的工作都在进行中

有人有什么想法吗

$Printer = new-object System.Drawing.Printing.PRinterSettings 
$Printer | GM
输出:

Name

Clone
CreateMeasurementGraphics Equals
GetHashCode
GetHdevmode
GetHdevnames
GetType
IsDirectPrintingSupported SetHdevmode
SetHdevnames
ToString
CanDuplex
Collate
Copies
DefaultPageSettings
Duplex
FromPage
IsDefaultPrinter
IsPlotter
IsValid
LandscapeAngle
MaximumCopies
MaximumPage
MinimumPage
PaperSizes
PaperSources
PrinterName
PrinterResolutions
PrintFileName
PrintRange
PrintToFile
SupportsColor
ToPage
Name

Clone
CreateMeasurementGraphics Equals
GetHashCode
GetHdevmode
GetHdevnames
GetType
IsDirectPrintingSupported SetHdevmode
SetHdevnames
ToString
CanDuplex
Collate
Copies
DefaultPageSettings
Duplex
FromPage
IsDefaultPrinter
IsPlotter
IsValid
LandscapeAngle
MaximumCopies
MaximumPage
MinimumPage
PaperSizes
PaperSources
PrinterName
PrinterResolutions
PrintFileName
PrintRange
PrintToFile
SupportsColor
ToPage





PageMediaType
。这里是
Get-PSPTPrintConfiguration
Set-PSPTPrintConfiguration
使用它的地方。嗨,Ben,谢谢你的回复。看起来你的脚本能够找到支持的媒体类型并能够设置PageMediaType,但我需要能够获得当前的PageMediaTypet已配置。(为了迁移它)。我确实在Get PrintConfiguration命令中找到了它。将该输出保存到一个变量并执行$var.PrintTicketXML,它通常位于该非常长的变量的最后一行。但是必须有一种更干净/更简单的方法来获取它?
Win8
和更新版本您可以使用
Get PrintConfiguration>获取该
PrintTicketXML
上。否则抓取打印机的
系统.Printing.PrintQueue
对象有一个名为
DefaultPrintTicket
UserPrintTicket
的属性,如果您不想解析XML,它具有
PageMediaType
属性。啊,这很好,但是,它显示了我和“未知”PageMediaType。这一定与为什么我运行GetPrintCapabilities()有关。PageMediaTypeCapability实际上没有显示GUI显示给我的所有纸张类型。可能这与bin文件的适当设置有关?仅供参考,GUI显示“预打印”被选中。看起来我唯一的选择是解析XML?我真的不明白为什么,但我可以让它工作。System.printing非常糟糕。如果它不属于其中的类型,则显示为未知,XML是查看它的方式。(因此,不能将属性设置为unknown,因此如果需要设置该属性,则还需要使用xml进行设置)。
Name

Clone
CreateMeasurementGraphics Equals
GetHashCode
GetHdevmode
GetHdevnames
GetType
IsDirectPrintingSupported SetHdevmode
SetHdevnames
ToString
CanDuplex
Collate
Copies
DefaultPageSettings
Duplex
FromPage
IsDefaultPrinter
IsPlotter
IsValid
LandscapeAngle
MaximumCopies
MaximumPage
MinimumPage
PaperSizes
PaperSources
PrinterName
PrinterResolutions
PrintFileName
PrintRange
PrintToFile
SupportsColor
ToPage
$Printer.DefaultPageSettings.PrinterSettings
Name

Clone
CreateMeasurementGraphics Equals
GetHashCode
GetHdevmode
GetHdevnames
GetType
IsDirectPrintingSupported SetHdevmode
SetHdevnames
ToString
CanDuplex
Collate
Copies
DefaultPageSettings
Duplex
FromPage
IsDefaultPrinter
IsPlotter
IsValid
LandscapeAngle
MaximumCopies
MaximumPage
MinimumPage
PaperSizes
PaperSources
PrinterName
PrinterResolutions
PrintFileName
PrintRange
PrintToFile
SupportsColor
ToPage