- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 WPF 打印路径来处理在我们的应用程序中创建的大型图表。整个图表由视觉效果组成。
所谓的“DesignerPaginator”对图表进行分页(非常简单)。
从这一点来说,我做了以下三件事:
- 我用 PrintDialog.PrintDocument(Paginator, Title) 打印文档
- 我还使用 XpsDocumentWriter.Write(Paginator, PrintTicket) 创建了一个 XPS 文档;我保存在硬盘上
- 从 XPSDocument 我将 XpsDocumentWriter.GetFixedDocumentSequence() 分配给 DocumentViewer
简而言之,以下代码很重要:
PrintDialog _pdialog = new PrintDialog();
System.Printing.ValidationResult result = this.PrintQueue.MergeAndValidatePrintTicket(this.PrintQueue.UserPrintTicket, this.PrintTicket);
_pdialog.PrintTicket = result.ValidatedPrintTicket;
XpsDocument _xpsDocument = new XpsDocument("C:\\test.xps",FileAccess.ReadWrite);
XpsDocumentWriter xpsdw = XpsDocument.CreateXpsDocumentWriter(_xpsDocument);
xpsdw.Write(this.Paginator, result.ValidatedPrintTicket);
documentviewer.Document = _xpsDocument.GetFixedDocumentSequence();
_xpsDocument.Close();
_pdialog.PrintQueue = this.PrintQueue;
_pdialog.PrintDocument(this.Paginator, "Model Test");
最佳答案
我找到了如何避免我的问题,但我不能保证该解决方案也适用于您的问题。
事实上,使用两个嵌套的 VisualBrush 投影到您的 Visual 上,您使用的结果似乎是模糊的输出。
我们在 wpf 打印中使用的一种 VisualBrush 是不可避免的:它是通过我们的分页器应用的一种,用于剪切 Visual 并将其分发到多个页面上。
我还有一个用作"template"的 UserControl。我用我们图表的 VisualBrush 绘制一个矩形到 UserControl,在这个操作之后,UserControl 本身被分页器用 VisualBrush 作为矩形绘制到页面上。
由于 WPF 的打印路径使用 XPS 进行打印,因此您还可以创建 XPSDocument,将文件类型更改为 zip,将其解压缩并使用任何文本编辑器分析文档的一页。
这将极大地帮助您了解您的问题。
我还怀疑当 VisualBrush 的内容没有应用 Visual 具有的原始 1:1 高/宽比时,文档被“光栅化”。
调整大小计算中的错误导致应用的 VisualBrush 的高度/宽度比为 1:0.9948,这导致输出模糊(不包括“嵌套 VisualBrush”问题)。
这仍然只是一个怀疑。通过排除“额外”VisualBrush 并尊重原始纵横比,我的问题已得到解决。也可以假设一个/或两个问题仅与特定的视觉/效果/转换甚至 LinearBrushes 结合出现。
至少,当涉及到这些问题时,我学到了关于 WPF 打印路径的一件事:想想你的东西总是在幕后转换为 xps,而 xps 类似于 wpf,但不支持 wpf 所做的任何事情.事实上,如果我没有误解的话,XPS 是 WPF 中 XAML 的灵感来源。
我也非常欢迎对此问题的任何真正答案 .我的问题解决了,但我想知道它为什么会发生。
关于wpf - 通过分页器保存和打印 XPSDocument(似乎)会导致内容光栅化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1176565/
我想从字节数组创建一个新的 System.Windows.Xps.Packaging.XpsDocument 对象,因为我不想立即将它存储在本地机器上。 通过使用临时文件,它工作正常: public
当我尝试在 XPS 文档上声明 PageHeight 时遇到问题。 到目前为止,我的代码如下所示: private FixedDocumentSequence GetDocument(Document
我使用 WPF 打印路径来处理在我们的应用程序中创建的大型图表。整个图表由视觉效果组成。 所谓的“DesignerPaginator”对图表进行分页(非常简单)。 从这一点来说,我做了以下三件事: -
我试图在不挂起 UI 线程的情况下提供 XPS 文档的实时预览。打开文档的速度足够快,但是当我调用 GetFixedDocumentSequence() 时,我的 UI 在文档突然消失的同时几秒钟内没
我必须将 .xlsx 文件导入我的 WPF 应用程序并查看它。我将文档转换为 .xps 然后加载。之后我调用 GetFixedDocumentSequence() 并在那里我得到了这个异常 XamlP
Solidworks 生成“EDRWX”文件。通常,这些是 opened with微软 XPS 查看器。 问题: 应用程序使用 .net XPSDocument 打开它们并在打印前对它们进行一些操作。
更新! 装订工作。问题是 XpsDocumentWriter 没有正确写入 FixedDocumentSequence 的第一个文档的第一页。这似乎是很多人在做这种事情时遇到的问题(即全局有五个开发人
我对该代码有疑问, XpsDocument doc = new XpsDocument(_filePath, FileAccess.Read); XpsDocument = doc.GetFixedD
我正在尝试将 XPS 文档转换为 BMP,以便使用 MODI 的 C# Windows 窗体应用程序可以读取它,因为我的理解是 MODI 无法读取 XPS 文件,只能读取 .tif 和 .bmp 我似
问题 如何打印具有 BlockUIContainer 的 FlowDocument? 如何强制对 FlowDocument 进行测量/更新/安排? 背景 我有一个生成的 FlowDocument,其中
对于“文本/html”,以下工作: System.Net.Mime.MediaTypeNames.Text.Html 最佳答案 当前的 .NET Framework BCL 中没有内置常量。有许多 M
我正在处理一个 SQLCE 数据库,其中一个表有一个 image 类型的列,它存储 XPS 文档的原始二进制数据。 我正在将此数据读入 byte[],然后按如下方式将其保存到磁盘: File.Writ
我是一名优秀的程序员,十分优秀!