问题标签 [fixeddocument]

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 投票
0 回答
122 浏览

wpf - 如何从固定文档转换为 xls

如何从固定文档转换为 xls?

有没有办法从固定文档转换为 xls?我正在使用固定文档来打印 xps,但现在我需要“另存为 xls”选项。

我是否必须遍历固定文档中的所有控件才能一次将其转换为 xls 一行?或者,还有更好的方法?我需要保持格式和布局不变。

我不是在寻找第三方控件。

0 投票
2 回答
1254 浏览

wpf - WPF Checkbox 状态不会在 FixedPage 中更新

我正在尝试基于在 WPF 中用作模板的 FixedPage 元素导出一些数据,但我似乎在更新复选框的值时遇到了问题。奇怪的是我也在我的模板中使用了文本块和文本框,但是这些更新它们的内容没有问题。

所以……从一开始。我要导出的数据在一个名为 RepairStatement 的类中,它允许使用 printForm 函数打印到自定义 xps 文件。

我使用的 xaml 模板如下所示:

问题出在 printForm 函数的这 3 行中:

前两行正常修改文本框的内容。我也可以毫无问题地修改 Textblocks 的内容,但无论我尝试做什么,复选框的值都不会改变。我认为这与 FixedPage 或 FixedDocument 有关,但我无法理解问题可能是什么。如果我在 XAML 中设置 IsChecked="True",则复选框将在最终 xps 文档中显示为已选中,但同样我无法取消选中它。

任何关于可能出错的提示将不胜感激。如果您知道有关 FixedPage 和 FixedDocument 的良好教程或信息源,我也很想看看它们,因为到目前为止我找到的文档至少可以说是适度的。

谢谢!

更新:我还在此处的 msdn 论坛上问了这个问题,并得到了一些关于在导出到 xps 之前使用 Measure()、Arrange 和 updatelayout() 的提示。不幸的是,这个解决方案似乎不起作用。考虑到文本块和文本框元素的行为符合预期,我认为这将是一个遥远的目标,而我只有复选框有问题。

我决定做一个小项目来显示这个错误,这样你也可以自己做一些实验。你可以在这里找到它。

让我知道你是否想出办法:D

0 投票
1 回答
1976 浏览

wpf - WPF TextBlock在文本换行后获取行

我有FixedDocument页面,我想TextBlock放在它上面,但它可能Textblock不适合页面的高度。
所以我想从生成TextBlock的 with中取出线条TextWrapping,然后创建新TextBlock的,按高度拟合并将其放在页面上。
TextBlockLineCount私有财产,这意味着它TextLines在包装后有,我可以以某种方式得到它。使用运行
创建:TextBlock

TextBlock用文字创作:

将宽度设置为TextBlock并获得DesiredSize

0 投票
1 回答
9511 浏览

wpf - 在 WPF 中将 PageContent/FixedPage 添加到 FixedDocument 的正确方法是什么?

在 WPF 中,为了将 a 添加FixedPageFixedDocument代码中,需要:

然而,这似乎是唯一的方法:

  • MSDN 文档明确指出不应该这样做('此 API 支持 .NET Framework 基础结构,不打算直接从您的代码中使用。'- PageContent.IAddChild.AddChild 方法)。

  • 为了将内容添加到PageContent.

  • 进行基本的操作并不简单PageContent

该文档实际上并未解释如何执行此操作,而且我找不到有关如何执行此操作的任何其他信息。还有其他方法吗?一个“正确”的方式?

0 投票
1 回答
1573 浏览

wpf - 如何从打印中隐藏 DocumentViewer 页面元素

所以我一直在构建一个在某些表单上打印的 WPF 应用程序。这些表格预先印有空白,您应该在其中填写一些信息。WPF 应用程序需要精确打印文本,以便 WPF 打印的文本与预打印形式的文本和空白完美对齐。通过使用 DocumentViewer 和 FixedDocument,我能够在很大程度上成功地完成任务。

最大的问题是,由于某种原因,VS WPF 设计器不喜欢将 PageContent 放入 DocumentViewer 中的 FixedDocument 中,即使您可以将 PageContent 放入任何其他容器(如 Scroll Viewer)中并且它会完美呈现。但即使 VS XAML 解析器无法运行,我也可以毫无问题地编译和运行我的应用程序。

另一方面的问题来自于我无法找到一种方法来隐藏 FixedDocument 中的某些元素以防止打印。为了让用户更准确地将信息输入应用程序并知道我将在打印表单中放置该信息的位置,我将表单的扫描图像放在 FixedDocument 的背景中。但我只希望在用户在 DocumentViewer 中查看文档时显示它,我不希望在他按下打印按钮时打印该图像。

现在在 Windows 窗体中,我可以处理 OnPrint 事件并使用 IsPrintPreview 属性可以决定打印什么和不打印什么。另一方面,DocumentViewer 似乎不允许我决定打印什么和不打印什么。

Soooo,长话短说,有没有办法隐藏 FixedDocument 中的某些控件以防止在 DocumentViewer 中打印?

0 投票
0 回答
825 浏览

wpf - DocumentViewer 中 FixedDocument 周围的边距

我在 DocumentViewer 中显示 FixedDocument,默认情况下,ScrollViewer 显示的文档在文档顶部上方或底部下方没有边距。

我想要更改 DocumentViewer 的样式,以便滚动条沿 DocumentViewer 的整个边缘延伸,这是文档顶部上方和底部下方的边距,但如果顶部和/或底部无法看到文档,文档分别延伸到 DocumentViewer 的顶部和/或底部边缘。(如果我有“声誉”,我可以张贴图片来展示我正在努力实现的目标。)

问题是 ScrollViewer 使用 ScrollContentPresenter 来显示 FixedDocument,并且您不能在 ScrollContentPresenter 中填充内容(或者至少我还没有找到方法)。

使用以下代码,我在 DocumentViewer 的样式中修改了 ScrollViewer 的样式,我让它看起来正确,但由于某种原因,它不会启用垂直滚动条,直到您单击文档,而水平滚动条永远不会启用:

通常有一个 ScrollContentPresenter,我在其中放置了一个 ScrollViewer,其中包含一个带边距的 ContentPresenter。这是一个混乱的解决方案,所以我希望有人会知道更好的解决方案。

如果我使用的是 FixedDocument 以外的任何控件,我可以只在 ScrollViewer 中显示的对象周围定义一个边距,但无论出于何种原因,您都不能在 FixedDocument 周围定义边距,也不能在 PageContent 周围定义边距控制什么也不做。

0 投票
1 回答
2594 浏览

.net - 修复文档打印问题(由 TeamViewer 解决???)

所以,我有一个 WPF(.NET 4,MVVM,如果它很重要)应用程序,它从数据库中获取一些数据,创建FixedDocument,然后执行以下两件事之一:

  1. 'print without preview':将其发送到不带预览的打印;

  2. “带预览打印”:在DocumentViewer控件中显示它,并在单击“打印”时将其发送到打印;

在绝大多数工作站和打印机上,这工作得很好。但是,有一些有时会遇到问题:打印不起作用。

报告的症状:

  • 执行“无预览打印”时,所有文档仅堆叠在打印队列中,不打印;
  • 执行“使用预览打印”时,预览的加载栏(等待数据获取和 FixedDocument 创建)停止并且预览不显示;
  • 这些问题并不一致——它们来来去去;
  • 此刻,当有人通过 TeamViewer 连接到该工作站时,一切都在继续 - 打印队列中的所有项目都打印出来,加载栏继续,预览显示等等。我知道......;
  • 我自己从未亲眼目睹过这个问题——在我的工作站上一切正常,到达有问题的工作站的唯一方法是通过 TeamViewer;
  • 通常,工作站(或有时打印机)重新启动可以解决问题 - 下一个打印作业可以正常工作;

有没有理论上的线索?

TeamViewer 怎么会解冻我的流程?

一种可能性可能是:TeamViewer 在连接时打开一些端口,这是获取数据所必需的,但 subj 问题不会不断重复(如果有关闭的端口,它会重复)并且没有 DataGet 超时(有会是,如果这是一个网络问题)...

0 投票
1 回答
6872 浏览

c# - 如何使用 FlowDocument 的 IDocumentPaginatorSource DocumentPaginator 将 FlowDocument 转换为 FixedDocument?

我有:

和:

如何使用 DocumentPaginator 将 FlowDocument 转换为 FixedDocument?我似乎无法找到如何做到这一点。我查看的所有网站都使用 XpsWriter,如下所示:

我可以编写 XPS 然后取回 FixedDocument 但必须有更好的方法吗?

0 投票
1 回答
3569 浏览

c# - 在 WPF 中打印固定文档

我有一个包含大约 70 个固定页面的固定文档,当我尝试通过以下代码打印该固定页面时,出现异常

代码:

异常:内存不足,无法继续执行程序。

我想一页一页地打印那 70 页,但是尽管我通过 google 上网,但我没有得到任何打击....任何方式....?

0 投票
0 回答
2034 浏览

c# - 在 WPF 中打印时出现内存不足异常

我试图在 WPF 中打印一组 70 张图像。所以我使用了我在许多参考资料中看到的固定文档,并尝试使用下面的代码进行打印。

我在 d.PrintDocument “内存不足,无法继续执行程序”中得到以下异常。

注意,这仅在 X86 配置中重现,而不在 X64 中重现。有帮助的朋友吗?