1

我目前正处于一个项目的设计阶段,客户想要一个桌面应用程序,他们可以用它来查看和注释“任何”类型的文档。我一直在对 WPF 文档查看器和 XPS 文档进行一些研究,这似乎是一个完美的选择,因为使用 XPS 文档编写器,您可以将任何内容打印到 xps 文档并在您的 WPF 应用程序中轻松查看。我已经用几种不同的文档类型(PDF、网页、word 文档等)对此进行了测试,结果非常令人印象深刻。我想远离 Adob​​e PDF 审阅工具,因为处理它们的 API 可能很困难,如果可能的话,我想设计一个全 MS 解决方案。

XPS 的另一个主要优点是我们可以使用 WPF 注释框架(System.Windows.Annotations),但我的问题是这个框架是一个好的开始,但客户端会想要框架不提供的更丰富的功能,如下所示:

  • 能够在文档的各个部分周围绘制矩形或椭圆
  • 能够在文档上绘图
  • 能够将便笺添加到图像或文档上所需的任何位置,而无需将其锚定到文本的特定部分
  • 在便笺上显示评论的作者
  • 为每个显示不同颜色的便签
  • 一个按钮,将注释标记为高或低优先级并相应地更改非的颜色

感谢您提供的任何建议。

——梅哈尔

4

2 回答 2

0

嗯,这听起来很熟悉http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/8ed381ad-21b6-4479-b9b2-b6317591e93a

如果我是你,我会避开自定义 WPF 注释框架,因为我一直在走这条路,它的难度很高,需要反射才能访问你需要的属性。如果有可能将此解决方案作为网络应用程序提供,那么我建议您查看一楼软件的文档toolkit: firstfloorsoftware.com/documenttoolkit/

这是 silverlight 中的 XPS 查看器/转换器/注释框架,完全在 Web 浏览器中运行。我不隶属于一楼,但如果这个框架(和 silverlight 3)在一年前就可用,那么我肯定会选择它。它并不便宜,但比在 WPF 中完成所有工作要便宜得多。

如果您确实决定采用 WPF 路线,那么 Derek Melhorn 的博客上有一些有趣的东西:blogs.msdn.com/mehlhorn/default.aspx

于 2009-09-30T02:11:01.193 回答
0

您可以使用 XPS 文档和 WPF 完成上述所有要求。

您只需创建一个屏幕外画布(用户看不到),加载现有的 XPS 文档。然后您可以只添加您需要的任何图形/UI 对象(矩形、圆形、位图效果、文本等),并且应该能够轻松地将您的控件呈现在现有 XPS 文档之上。

您将拥有 WPF 的完整渲染/UI 功能,可以在世界上绘制您需要的任何内容。

在您的画布上调用 InvalidateArrange() 和 InvalidateMeasure() 需要一些手动工作,但它应该相当简单。

我唯一的其他建议是使用 PDF,因为大多数普通平民都习惯了这些或在您的应用程序中提供某种导入功能。如果您走 pdf 路线,还可以查看PDFSharp的开源项目。

于 2009-09-16T16:08:32.023 回答