WPF FlowDocument 缩放以适合页面
由于 BlockUIContainer 中的 ItemsControl,我有一个 FlowDocument 的高度有所不同。 在某些情况下,ItemsControl 会超出页面高度。 如果需要的话,有没有办法在打印之前缩放 FlowDocument 以适合页面 (8.5" X 11")?
截至目前,FlowDocument 名为“doc”,我使用的打印方法是:
private void Print_Click(object sender, RoutedEventArgs e)
{
PrintDialog pd = new PrintDialog();
doc.PageHeight = pd.PrintableAreaHeight;
doc.PageWidth = pd.PrintableAreaWidth;
doc.ColumnGap = 0;
doc.ColumnWidth = pd.PrintableAreaWidth;
IDocumentPaginatorSource dps = doc;
pd.PrintDocument(dps.DocumentPaginator, "Sheet");
}
I have a FlowDocument that varies in height due to an ItemsControl in a BlockUIContainer. In some cases, the ItemsControl extends beyond the page height. Is there a way to scale the FlowDocument to fit a page (8.5" X 11") right before printing if needed?
As of right now, the FlowDocument is named 'doc' and the method for printing I am using is:
private void Print_Click(object sender, RoutedEventArgs e)
{
PrintDialog pd = new PrintDialog();
doc.PageHeight = pd.PrintableAreaHeight;
doc.PageWidth = pd.PrintableAreaWidth;
doc.ColumnGap = 0;
doc.ColumnWidth = pd.PrintableAreaWidth;
IDocumentPaginatorSource dps = doc;
pd.PrintDocument(dps.DocumentPaginator, "Sheet");
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我知道有点晚了,但这是我想出的解决方案。
首先,我们创建一个包装器,它将为我们生成文档页面。 每个页面在返回之前都会应用比例转换。
使用它相当简单:
如果您有兴趣,以下是我们确定比例的方法。 在我们的例子中,文档延伸超过了页面宽度,但可以轻松修改以适应页面高度。
I know it's a bit late, but here is the solution I came up with.
First, we create a wrapper that will generate the document pages for us. Each page will have a scale transformation applied to it before returning it.
Using it is fairly simple:
If you're interested, here is how we determined the scale. In our case, the document was extended past the page width, but it can easily be modified to accommodate the page height.