WPF报表中XPS中的自定义页面大小输出



我有一个WPF报告,它以自定义页面大小绘制报告内容(我们可以将其视为A4,问题是一样的),如果我将输出发送到打印机(物理或虚拟,如PDFCreator),我的自定义页面大小将正确保留为每页。

但当我将其输出为XPS格式时,页面会调整为Letter页面大小。

如何在将WPF报告输出到XPS时保留我的自定义页面大小?

我的最终目标:是从WPF获得PDF,我的方法是使用PDFSharper将XPS转换为PDF。转换效果良好,但XPS输出破坏了我的自定义页面大小。其他方法是受欢迎的,但无论如何,我想了解并控制XPS输出页面的大小。

示例项目:Test_WpfToPDF_withXpsCorruptingPageSizeToLetter.zip

当您将用户控件(报表)封装在另一个元素中时,它似乎可以工作,同时提供真实大小,并且不要忘记放置背景。我不知道确切的原因,但背景和尺寸似乎起了作用。

public override DocumentPage GetPage(int pageNumber) {
    var page = new MyUserControl();
    Border wrapper = new Border();
    wrapper.Width = this.PageSize.Width;
    wrapper.Height = this.PageSize.Height;
    wrapper.Background = Brushes.White;
    wrapper.Child = page;
    wrapper.Measure(this.PageSize);
    wrapper.Arrange(new Rect(new Point(0, 0), this.PageSize));
    wrapper.UpdateLayout();
    return new DocumentPage(wrapper);
}

相关内容

  • 没有找到相关文章

最新更新