1

我正在使用 System.Windows.Controls.PrintDialog 打印 XPS 文档。当我在打印对话框中选择横向时,生成的页面旋转为横向,但实际内容保持纵向模式并被剪裁。

这就是我打印的方式。我还尝试使用 PrintDialog.PrintQueue 上的 AddJob 方法和 PrintQueue.CreateXpsDocumentWriter(...).Write(...) 上的重载方法,结果都相同或更差。我尝试将 DocumentPaginator.PageSize、printDialog.PrintTicket.PageMediaSize 以及第一个 FixedPage 的宽度和高度设置为正确的横向大小,但没有结果。PrintDialog.PrintTicket.PageOrientation 在横向上,而 PrintDialog.PrintableAreaWidth 和 PrintDialog.PrintableAreaHeight 在显示 PrintDialog 后选择横向时应如此。

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");
}
4

0 回答 0