Hogyan nyomtatni XPS fájlok programozottan

Print File Format XPS (XML Paper Specification), akkor a módszer túlterhelése AddJob megnyitása nélkül PrintDialog vagy elvben valamennyi felhasználói felület.

Ezen túlmenően, a nyomtatási fájl formátum XPS (XML Paper Specification), akkor a Write eljárás és WriteAsync XpsDocumentWriter objektumot. További információ erről lásd. Kinyomtatása XPS Document.

Egy másik módja, hogy a nyomtatási formátum XPS (XML Paper Specification), hogy használja a PrintDocument módszer vagy PrintVisual PrintDialog ellenőrzés. Cm. Partíció gyakorlati útmutató. Hívja a nyomtatási párbeszédablak.

Az alábbiakban az alapvető lépéseket a használat módja AddJob (String, String, logikai érték) három paraméterrel. Az alábbi példa tartalmazza a részletes információkat.

Határozzuk meg, hogy a nyomtató olyan nyomtató Xpsdrv. (További információt a járművezető Xpsdrv cm.,: A nyomtatási).

Ha a nyomtató nem nyomtató Xpsdrv állítsa áramlási egység egyszálú.

Egy példányának létrehozása a nyomtatószerver és nyomtatási sor objektumot.

Hívja a módszer megadásával a feladat nevét, a fájl a nyomtatáshoz és logikai zászló. jelzi, hogy a nyomtató olyan nyomtató Xpsdrv.

Az alábbi példában bemutatjuk, hogyan kell kötegnyomtatása katalógusban XPS fájlokat. Bár az alkalmazás figyelmezteti a felhasználót, hogy adja meg a könyvtár, a módszer három paraméter AddJob (String, String, logikai érték) nem igényel felhasználói felület. A módszer alkalmazható bármilyen módon a kódot, ahol az XPS fájl nevét és elérési útvonalát, amely akkor hivatkoznak rá.

Túlterhelés módszer AddJob (String, karakterlánc, logikai érték) a három paraméter AddJob végezni egy egyszálú egység, amikor a logikai paramétert értéket veszi hamis. meg kell tennie, ha a nyomtató nem Xpsdrv. Azonban az alapértelmezett állapota a Microsoft .NET egység több szálon. Ez az alapértelmezett kívül kell helyezni, mert a példa azt feltételezi, hogy a nyomtató nem Xpsdrv.

Kétféle módon megváltoztatni az alapértelmezett értéket. Az egyik egy egyszerű összeadás STAThreadAttribute (azaz "[System.STAThreadAttribute ()]") közvetlenül fentebb az első sor Fő alkalmazási módszer (általában, "static void Main (string [] args)"). Azonban sok alkalmazás megköveteli, hogy az eljárás fő volt multistream állapot egység, tehát van egy másik módszer: a metódusmeghívást szoba AddJob (String, String, logikai érték) külön áramban állam halmaz, amelynek egységei STA. A módszer SetApartmentState. A példában az alábbiakban megadott, ezt a második eljárást alkalmazzuk.

Ennek megfelelően, a például kezdődik a szál objektum példány létrehozására és továbbítására, mint egy módszert PrintXPS ThreadStart paramétert. (PrintXPS meghatározott módszer később ebben a példában). Ezután, az áramlás beállítása egyszálú egység. Az új szál fut az egyetlen megmaradt módszer kód Main.

A lényege a példákban szereplő staticBatchXPSPrinter.PrintXPS módszerrel. Miután létrehozta a nyomtatási sorban, és szerver módszer kéri a felhasználót, hogy válassza ki a könyvtárat tartalmazó fájlok XPS. Miután meggyőződött róla, hogy létezik egy könyvtár, és a jelenléte benne XPS módszerrel hozzáadja minden fájlt a fájlt a nyomtatási sorból. Feltételezzük, hogy a nyomtató nem támogatja Xpsdrv, ezért át hamis AddJob utolsó paraméter módszer (String, String, logikai érték). Emiatt az eljárás ellenőrzi az XPS jelölést a fájlban, mielőtt alakítani egy oldal leírása a nyomtató nyelvére. Ha a teszt sikertelen, kivételt dob. A minta kódot kap egy kivétel, akkor értesíti a felhasználót, és lépni a következő fájl XPS.