我正在使用System.Windows.Controls.PrintDialog打印XPS文档。当我在打印对话框中选择横向方向时,生成的页面将旋转为横向,但实际内容将保持纵向模式并被剪裁。
这是我打印的方式。我还试图在PrintDialog.PrintQueue上使用AddJob方法,在PrintQueue.CreateXpsDocumentWriter(...)上使用重载。写(...)所有结果相同或更差。我试图将DocumentPaginator.PageSize,printDialog.PrintTicket.PageMediaSize和第一个FixedPage的宽度和高度设置为正确的lanscape大小而没有结果。 PrintDialog.PrintTicket.PageOrientation在横向上,PrintDialog.PrintableAreaWidth和PrintDialog.PrintableAreaHeight在显示PrintDialog后选择lanscape时应该是这样。
var printDialog = new PrintDialog
{
MaxPage = (uint)pageCount,
MinPage = 1,
PageRange = new PageRange(1, pageCount),
UserPageRangeEnabled = true
};
if (printDialog.ShowDialog() != true) return;
using (var doc = new XpsDocument(filename, FileAccess.Read))
{
var paginator = doc.GetFixedDocumentSequence().DocumentPaginator;
printDialog.PrintDocument(fds.paginator , "myPrintJob");
}