WPFのXPSDocumentの横向き印字
Programmer's Report: WPF で横長(Landscape)印刷をするを参考にしつつ。
こんなコードで横向き出来ました。
var printQueue = new LocalPrintServer().GetPrintQueue( "YOUR PRINTER NAME"); PrintTicket ticket = printQueue.DefaultPrintTicket; ticket.PageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA4); ticket.PageOrientation = PageOrientation.Landscape; var xpsDocWriter = PrintQueue.CreateXpsDocumentWriter(printQueue); FixedDocument fixedDoc = new FixedDocument(); for (int i = 1; i <= invoice.totalPage; i++) { var fixedPage = new FixedPage(); fixedPage.Width = 11.69 * 96; fixedPage.Height = 8.27 * 96; var pageContent = new PageContent(); fixedPage.Children.Add(new MyUserControl()); ((IAddChild)pageContent).AddChild(fixedPage); fixedDoc.Pages.Add(pageContent); } xpsDocWriter.Write(fixedDoc, ticket);
- PrintTicketで横向きにする
- サイズを決め打ちでfixedPageに与える。
- XPSに書き込む時に、引数にTicketを与えておく。
以上です。