PrintCapabilities printCapabilites = SelectedPrinter.GetPrintCapabilities(); IEnumerable pagesizeList = printCapabilites.PageMediaSizeCapability;GetPrintCapabilities no devolverá todos los tamaños de página
El código anterior no muestra todos los tamaños de página que admite el controlador de impresora y este es mi problema.
Como ejemplo si utiliza el controlador de impresora Microsoft XPS encontrará que pagesizeList (arriba) faltará algunos tamaños de página. "Letter Small" es uno de los tamaños de página que faltan (sin embargo, MS Word incluirá con éxito este tamaño de página).
Como comprobación rápida que vierten las capacidades de la impresora en XML de la siguiente manera:
long gpCLen = _selectedPrinter.GetPrintCapabilitiesAsXml().Length;
FileStream fs = File.OpenWrite(@"c:\test.txt");
MemoryStream ms = _selectedPrinter.GetPrintCapabilitiesAsXml();
byte[] b = new byte[gpCLen];
ms.Read(b, 0, (int)gpCLen);
fs.Write(b, 0, (int)gpCLen);
fs.Close();
El nodo PageMediaSize en el archivo XML producido tiene, de hecho todos los tamaños de página y los que faltan.
páginas Aparece parecen tener su PSK nombre de inicio:
<psf:Option name="psk:ISOA4" constrained="psk:None">
pero las páginas no visualizados parecen tener:
<psf:Option name="ns0000:LETTERSMALL" constrained="psk:None">
páginas del controlador de impresión sin visualizar Epson son similares:
<psf:Option name="epns200:IndexCard5x8" constrained="psk:None">
Básicamente, una página cuyo nombre comienza 'psk' muestra PageMediaSizeCapability, pero si se trata de fabricación personalizado, es decir, epns200, ns0000, no aparece. ¿Alguna idea de por qué y cómo solucionar esto, por favor? ¡Los nodos/páginas están ahí pero a PageMediaSizeCapability no le gusta!
Gracias de antemano
EDIT:
Como estado MS 'Un objeto PrintCapabilities es un fácil-a-trabajar-con la representación de un determinado tipo de documento XML llamado un documento PrintCapabilities' Pero el documento tiene más información que el objeto Full description
+1: esto funciona y debe aceptarse como la respuesta. –