问题标签 [xpsdocument]

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 回答
768 浏览

c# - WPF 到 XPS 非常慢

您好我们正在尝试创建一个基于诸如 WPF 页眉和页脚元素的自定义模板系统,以及用于导出到 PDF 的 2D 绘图的画布。问题是 XpsWriter 需要大约 7 秒来编写 XPS 文档,另外需要 3 秒才能使用 PDFSharp 转换为 pdf。当用户等待 PDF 时,我们需要把它记下来。我首先怀疑是因为FrameworkElements的数量,但只有5000个。框架元素大多是PATH数据,带有填充、笔触和画笔。

有谁知道加快速度的方法?也许某种类型的视觉对象,或以某种方式或任何想法“展平”画布。当它工作时,PDF 超过 5MB。

想尽可能保留它 VECTOR

0 投票
1 回答
141 浏览

c# - XPS 中的 Visual 中未包含 VisualBrush 资源到位图的转换

更新:我们用解决问题的替代方法(PDF 到图像)替换了图像生成,但我将保留这个问题,因为我想了解这是否可能。

在我们的网站http://www.cloudformatter.com上,我们试图实现一些代码来将我们生成的 XPS 文件处理为图像。除了页面中的 SVG 通过 VisualBrush 资源包含在 XPS 文档中之外,大多数都运行良好。

我们从这里的代码和网络 XPS周围的其他代码中获取灵感

下面是我们的转换器的代码,它正在为通过该网站的 REST 响应构建一个页面图像包。XPS 很好,大多数页面都按预期工作,因此代码目前适用于页面中除 SVG 之外的所有内容。我应该注意,生成用于下载的 XPS 的相同代码会生成输入到下面代码中的流,因此它不会被破坏。即使在调试中检查 Visual 也可以显示 VisualBrush 对象的存在。

这个页面是完美的(没有 SVG 图像)[单击“嵌入 PNG”和“下载 XPS”选项,它们是正确的。

http://www.cloudformatter.com/CSS2Pdf.APIDoc.Usage

但是这个页面有 SVG:

http://www.cloudformatter.com/CSS2Pdf.SVGCharts.HighCharts

下载 XPS 是完美的。但是使用以下代码获取 PNG 会导致 SVG 丢失。再次注意:后端实现的系统目前不使用下面的代码,因为我们找到了 PDF 到图像的工作解决方案。但是,我们想解决我们遇到的 XPS 到图像问题。XPS 有这个:

资源有这个:

代码如下。以这种方式获得页面的视觉效果是不可能的吗?

0 投票
1 回答
955 浏览

c# - 从 xps 文档中提取文本到文本框

我在研究时一直在运行此代码,但是将其复制到我的表单中会给我一个错误的documentViewerElement部分说The name 'documentViewerElement' does not exist in the current context

我希望从 xps 文档中获取所有文本并将其放在富文本框中。

0 投票
1 回答
2452 浏览

c# - 错误:值不能为空

我正在尝试使用 FreeSpire 将受保护的 PDF 转换为 XPS 并返回为 PDF,然后使用 iTextSharp 将它们组合起来。下面是我用于转换各种文件的代码片段。

问题是我得到了一个Value cannot be null errordoc.LoadFromFile(Loan_list[f]);我必须string path = Loan_list[f];检查 Loan_list[f] 是否为空,但事实并非如此。我试图Loan_list[f]用命名的变量替换参数,path但它也没有。我以较小的规模测试了它的 PDF 转换(见下文)

我想了解为什么我会收到此错误以及如何修复它。

0 投票
1 回答
1728 浏览

matlab - 如何从 XPS 文件中提取文本或表格到 matlab

我有一些包含文本、表格和图表的 XPS 文件。我需要将表中的数据提取到我的 matlab 代码中并继续它们。请您帮助我在 Matlab 中编写此提取代码。谢谢

0 投票
1 回答
429 浏览

c# - XPS 文档中的问号

我在 C# 中使用 XPS 并以此示例为起点:https ://code.msdn.microsoft.com/windowsdesktop/How-to-Edit-XPS-file-in-WPF-724ef6fb

我稍微修改了示例并为 XPS 文档创建了一个搜索和替换应用程序。

输出看起来不太好:

在此处输入图像描述

将问号复制并粘贴到编辑器效果很好,并给了我正确的字符。

现在我发现当字符不在源 XPS 中而新字符在目标 XPS 中时,在字体中找不到它们(在这里找到这个解释:https ://stackoverflow.com/a/28236296/ 2058139)。

问题的本质在于XPS文档中ODTTF字体的使用。ODTTF 是一种基于原始文档中使用的字体的模糊子集字体。这意味着您不能使用任何不在原始文档中的字符来替换。

有什么解决办法吗?

0 投票
1 回答
284 浏览

c# - 合并 XPS 文件会将打开的文件句柄留给文档参考

我正在通过 IIS Web 应用程序合并 XPS 文件,但在合并过程中,它使文档参考文件句柄保持打开状态。在 Windows WPF 或控制台应用程序中,我不会担心句柄,因为它们会在应用程序关闭后被释放。回收应用程序池也会有效地关闭句柄。但是,由于缓存和性能,我不能仅仅为了关闭文件句柄而回收应用程序池。

合并完成后有没有办法关闭这些文件句柄?我尝试了几种不同的合并方法,但以下代码给了我最好的结果:

我追踪了打开xpsWriter.Write(seqNew)代码行的文件句柄。这是预期的,因为它需要加载文件以复制到新的FixedDocumentSequence. XpsDocumentWriter但是,如果 an是一次性的并清理了它的非托管资源/文件句柄,那就太好了。

在我的研究过程中,我尝试了其他一些方法。我尝试过的一种方法是将每个页面可视化写入SerializerWriterCollator. 我研究过的另一种方法是处理 FixedPage 内容并将 URI 更新为复制的图像和字体流,并将原始 XAML 写回到XmlWriter. 两者都没有很好地工作。使用页面视觉效果和SerializerWriterCollator,我在合并的 XPS 上获得了不正确的页面大小,并且它正在切断内容。使用原始XmlWriter方法时,合并的 XPS 中的一些图像会混杂在一起,并且会错误地显示一些页面内容。

0 投票
0 回答
131 浏览

wpf - 在损坏的 PrintDialog 中打印 XpsDocument 结果

我在打印 XPS 文档时遇到问题。第一个打印工作正常,但随后打印对话框和打印出现损坏,如您在该图像中看到的那样。

我尝试使用 Write 函数的其他重载,例如使用 DocumentPaginator 作为参数或打印对话框的 PrintDocument 函数的重载,但它也不起作用。

我注意到结果取决于打印机的选择。使用 Microsoft XPS Document Writer 可以正常工作,但使用真正的打印机或 PDF 打印机却不能。

这是重现该问题的最简单代码:

0 投票
2 回答
1365 浏览

c# - XpsDocument GetFixedDocumentSequence 为特定计算机生成的文件返回 null

Solidworks 生成“EDRWX”文件。通常,这些是使用Microsoft XPS 查看器 打开的。

问题:
应用程序使用 .net XPSDocument 打开它们并在打印前对它们进行一些操作。错误方法是“GetFixedDocumentSequence”。它返回 null 以及从特定计算机生成的文件。即使应用程序在特定计算机上运行,​​它也会这样做。但它适用于其他计算机生成的文件。

在此处输入图像描述

尝试使用 XPS 文档查看器打开文件时,无法打开,说无法打开。但是,它会在创建它的特定计算机上打开。如果这台电脑从 microsoft word 打印一个普通的 XPS 文件,其他电脑可以用 XPS 文档查看器正常打开它。此外,其他计算机生成的“EDRWX”文件可以在包括特定计算机在内的每台计算机上使用 XPS 文档查看器轻松打开。

更多规范:
具体电脑运行windows 8.1。
其他计算机在 Windows 7 下运行。
该应用程序使用 .net Framework 4.0 运行。

是特定计算机生成的“EDRWX”虚拟文件。
是由其他计算机之一生成的“EDRWX”虚拟文件。

问题的原因是什么?如何解决?

旁注:我已经调查了将近 3 天......所以我对这个问题很生气。可能是你的眼睛能看到我因为被吸了这么多而再也看不到的东西了。

在我的挖掘中,我发现了这两个文件之间的差异。 在此处输入图像描述

0 投票
1 回答
101 浏览

wpf - 使用注释打印 XPS 失败

这行得通

这失败了

printDialog.PrintDocument(adp, "标题"); 是什么在杀死它
不知何故,它似​​乎正在破坏 XPSdoc

商店看起来不错-我可以得到注释的计数
即使我创建零个注释它也会失败
但是打印本身不会失败-我得到一个有效的打印
上面的尝试捕获不会捕获错误
几秒钟后打印错误开始于
(我有一个未处理异常的处理程序)

指定的视觉对象不是视觉对象的祖先

应用程序崩溃,并且 XPS 文档永远不会在 DocumentViewer 中重新绘制

我可以使用 ScrollViewer 获取 FlowDocuments 以打印注释
并以相同的方式创建存储,所以我认为代码很好

.NET 4.5