WPF XPS 红色处理

4

我喜欢使用DocumentViewer在WPF应用程序中显示XPS文档。但我还需要编辑XPS文档。我已经找到了用于编辑XPS的独立应用程序(.exe)。我需要一个WPF控件来查看和编辑XPS,或者是DocumentViewer的扩展程序来进行编辑。编辑必须真正地删除数据而不仅仅是隐藏它(这是一个诉讼应用程序)。有人知道如何在WPF中查看和编辑XPS吗?


可能可以使用自定义分页器,因为此时所有内容都已转换为可视化形式。1)查找要编辑的文本,创建一个黑色形状覆盖在文本上,然后将页面压缩为单个图像。唯一我不确定的部分是明天需要检查的内容,即您能否准确选择段落/运行/字形并编辑它们。也不确定您是否能够选择任何未编辑的文本。 - Dennis
不要忘记这部分“必须实际删除数据”。不能有未编辑的内容。 - paparazzo
这就是我关于展平视觉效果的观点,红色编辑块下面的文本视觉效果将被破坏。 - Dennis
@DennisRoche 如果您发布答案,我会投票支持或接受它。目前唯一的答案不如您的评论好。 - paparazzo
我希望我的评论能引导你朝着正确的方向思考并找到解决方案。我可以发布几篇关于分页器的文章和背景信息来帮助你,但是我没有时间(过去7天也一直没有),写一篇合适的答案。 - Dennis
2个回答

3

使用自定义DocumentPaginator,您可以控制文档中每个元素的打印方式。

如果您能够确定要删除的文本范围,则可以使用黑色视觉效果替换字形,并且不将文本范围添加到最终文档中。

...

嗯。当有更简单的解决方案时,上面的内容听起来确实有点复杂。

  1. 读取XPS文档,将其转换为FlowDocument。
  2. 允许用户选择要删除的文本范围。
  3. 用████████████████字符(U+2588,全块)替换所选文本。
  4. 将文档转换回XPS并打印。

*由于您替换了原始文本,因此在复制/粘贴操作中将无法使用它。

有很多关于如何单独执行上述步骤的教程。如果您需要任何其他帮助,请告诉我。


1

如果我没记错的话,你不能直接编辑XPS文件,但是你可以创建WPF文档表示形式,对其进行编辑并打印到新的XPS文件中。


1
阿曼是正确的... 即使你可以“添加文本”(不建议)到 XPS,它也不会保留重要的东西如边距和页面长度,所以 WPF 不会重新格式化文档。请记住,XPS 文档几乎是“铸成了石头”,已经格式化好并准备好打印。 - NestorArturo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接