In this part, I explain how to attach "Page Settings" to the XpsDocument. This can be done by using the System.Printing.PrintTicket in your code.
In my example, I print to A3, landscape.
Define the printticket
1:private static PrintTicket pt = new PrintTicket ();Fill it with the necessary data:
1:PrintQueue pq = LocalPrintServer .GetDefaultPrintQueue();2: 3:pt = new System.Printing.PrintTicket 4: { OutputColor = OutputColor .Color,5: PageMediaType = PageMediaType .Plain,6: PageOrientation = PageOrientation .Landscape,7: PageMediaSize = new PageMediaSize(PageMediaSizeName .ISOA3),8: PageBorderless = PageBorderless .Borderless9: };10:System.Printing.ValidationResult result = pq.MergeAndValidatePrintTicket(pq.UserPrintTicket, pt);Code the printing itself:
1: XpsDocument document =
2: new XpsDocument (path + @"\\sample.xps" , System.IO.FileAccess .Write);
3: XpsDocumentWriter writer =
4: XpsDocument .CreateXpsDocumentWriter(document);
5: writer.WritingPrintTicketRequired +=6: new WritingPrintTicketRequiredEventHandler (writer_WritingPrintTicketRequired);
7: writer.Write(myfixedDocumentToPrint, pt);And finally the writer_WritingPrintTicketRequired function
1: static void writer_WritingPrintTicketRequired(object sender,
2: WritingPrintTicketRequiredEventArgs e)
3: {
4: e.CurrentPrintTicket = pt;5: }
Have fun...
No comments:
Post a Comment