问题标签 [documentpage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2029 浏览

wpf - 使用没有默认构造函数的 XamlWriter 序列化 WPF 组件

我发现你可以序列化一个 wpf 组件,在我的例子中 a FixedDocument,使用XamlWriter和 a MemoryStream

然后将其取回:

但是,现在我也需要能够序列化 a DocumentPage。它缺少一个默认构造函数,这使得XamlReader.Load调用抛出异常。

有没有办法在没有默认构造函数的情况下序列化 wpf 组件?

0 投票
5 回答
1265 浏览

wpf - 在后台线程中创建 WPF 组件

我正在开发一个报告系统,DocumentPage将通过DocumentPaginator. 这些文档包括许多要实例化的WPF 组件XpsDocumentWriter,因此分页器在稍后发送到(又发送到实际打印机)时包含正确的内容。

我现在的问题是DocumentPage创建实例需要相当长的时间(足以让 Windows 将应用程序标记为已冻结)所以我尝试在后台线程中创建它们,这是有问题的,因为 WPF 期望它们的属性从图形用户界面线程。我还想显示一个进度条,指示到目前为止已经创建了多少页。因此,看起来我试图让两件事在 GUI 上并行发生。

这个问题很难解释,我真的不知道如何解决它。简而言之:

  • 创建一系列DocumentPage。
    • 这些包括WPF 组件
    • 这些将在后台线程上创建,或者使用其他一些技巧,这样应用程序就不会被冻结。
  • 创建每个页面后,应更新WPF ProgressBar 。

如果没有合适的方法来做到这一点,那么替代解决方案和方法将非常受欢迎。

0 投票
2 回答
2905 浏览

.net - WPF DocumentPaginator 和 DocumentPage 意外裁剪

我正在尝试在多个页面上打印 WPF 画布。

我对缩放它以适应页面宽度非常满意,然后为每一页剪裁和翻译画布;所有非常简单的数学。

我不明白的是如何获得可打印区域的尺寸,以及如何告诉打印机打印到哪里。无论我尝试什么,我使用的值似乎都是纸张的大小,因此由于打印机无法打印到纸张的边缘,因此我会出现裁剪。

能力具有以下属性:

什么是“可成像”区域?那是我可以在纸上放置内容的区域吗?我猜是因为:

但是底部和右边距呢?我在哪里可以找到这些信息?

应该将PageSize属性DocumentPaginator设置为什么?我应该设置这个capabilities.PageImageableArea吗?或者dialog.Print()函数是否设置了这个,我只需要从中读取GetPage()

最后,当我返回 a 时,我将DocumentPage什么传递给三个几何参数pageSize和?bleedBoxcontentBox

谢谢 :)

0 投票
2 回答
2935 浏览

wpf - WPF DocumentPaginator 是否将所有 DocumentPages 保留在内存中,直到完成打印作业?

关于 WPF 的 DocumentPaginator 的严格理论问题:

使用 WPF DocumentPaginator 类打印多页文档时,分页器是否将其请求的所有 DocumentPages 保留在内存中,直到文档完成打印为止?或者它是否曾经在打印作业完成之前处理掉不再需要的任何 DocumentPages(即释放内存)?有没有办法在打印过程中手动告诉分页器释放旧的/不需要的 DocumentPages 而不会遇到异常?

非常感谢您对此的帮助!

0 投票
2 回答
1806 浏览

c# - WPF 中是否可以通过页码获取每个 DocumentPage 的内容?

我使用 DocumentPaginator 将 FlowDocument 的文本分成页面。ComputePageCount() 后是否可以通过页码获取每个页面的内容?如果没有,我该如何以其他方式做到这一点?

代码:

0 投票
1 回答
973 浏览

wpf - 如何从 PageDocuments 中获取 FixedDocument

我正在使用 WPF 进行打印。
我实现了一个从类继承的DocumentPaginator

有更多的辅助方法来完成这些工作。

我想创建FixedDocument对象以使用从方法返回的对象从Source属性中返回它。DocumentPageGetPage

我需要FixedDocument从源属性返回一个因为我想在打印之前对文件进行预览

预览器是DocumentViewer对象存在于ReportPreviewerWindow

0 投票
1 回答
48 浏览

c# - 我可以关闭 Xaml 的交互部分并保留布局管理吗?

我正在努力在 WCF 服务中呈现 XPS 文档,并希望它尽可能快。

是否可以关闭任何与 UI 相关的开销,因为在我的用例中不需要 UI 交互?我只想利用 Xaml 的 UI 布局管理部分。基本上,我怎样才能关闭创建文档时不必要的东西?

完成渲染后,我将每个添加FrameworkElement到 aDocumentPage以使用 a 渲染,DocumentPaginator然后使用XpsDocumentWriter.

0 投票
1 回答
541 浏览

wpf - WPF DocumentPaginator:将 DocumentPage 大小更改为横向

我尝试使用 DocumentPaginator 以 A4 横向格式(尺寸(96 * 11、96 * 8.5))将 WPF 窗口打印为 pdf 文件(Microsoft Print to pdf),但始终以 A4 纵向格式获取它。(对于 DocumentPaginator,我使用此处描述的方法:WPF - 打印视觉时分页

错在哪里?除非格式问题它完美无缺。如何调整 DocumentPage 的大小,因为它在 DocumentPage.Size 属性的文档中写入:“备注...使用受保护的 SetSize 方法设置此属性。”?

XAML:

C#: