PrintCapabilities printCapabilites = SelectedPrinter.GetPrintCapabilities(); IEnumerable pagesizeList = printCapabilites.PageMediaSizeCapability;GetPrintCapabilities ne retournera pas toutes les tailles de page
Le code ci-dessus ne répertorie pas toutes les tailles de page prises en charge par le pilote d'imprimante et c'est mon problème. Par exemple, si vous utilisez le pilote d'imprimante Microsoft XPS, vous remarquerez qu'il manque des tailles de page à pagesizeList (ci-dessus). "Letter Small" est l'une des tailles de page manquantes (MS Word listera avec succès cette taille de page).
En tant que vérification rapide J'ai vidé les capacités de l'imprimante au format XML comme ci-dessous:
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();
Le nœud PageMediaSize dans le fichier xml produit a en effet toutes les tailles de page et les disparus.
pages affichées semblent avoir leur départ nom psk:
<psf:Option name="psk:ISOA4" constrained="psk:None">
mais les pages non affichées semblent avoir:
<psf:Option name="ns0000:LETTERSMALL" constrained="psk:None">
Undisplayed pages du pilote d'impression Epson sont similaires:
<psf:Option name="epns200:IndexCard5x8" constrained="psk:None">
Fondamentalement, une page dont le nom commence 'psk' affiche PageMediaSizeCapability, mais si c'est la fabrication personnalisé c'est-à-dire epns200, ns0000, il ne liste pas. Des idées pourquoi et comment résoudre ce problème s'il vous plaît? Les nœuds/Pages sont là mais PageMediaSizeCapability ne l'aime pas!
Merci à l'avance
EDIT:
Comme état MS 'Un objet PrintCapabilities est un outil facile à travailler avec la représentation d'un certain type de document XML appelé un document PrintCapabilities.' Mais le document contient plus d'informations que l'objet Full description
+1: cela fonctionne et devrait être accepté comme réponse. –