Как настроить файлы аннотаций

В данный момент я нахожусь на этапе разработки проекта, и клиент хочет настольное приложение, которое он может использовать для просмотра и комментирования «любого» типа документа. Я провел некоторое исследование средства просмотра документов WPF и документов XPS, и оно кажется идеальным, потому что с помощью средства записи документов XPS вы можете распечатать что угодно в документе XPS и легко просмотреть его в своем приложении WPF. Я протестировал это с несколькими различными типами документов (PDF, веб-страницы, текстовые документы и т. д.), и результаты были очень впечатляющими. Я хотел держаться подальше от инструмента рецензирования Adobe PDF, потому что работа с их API, вероятно, будет сложной, и я хотел разработать решение, полностью ориентированное на MS, если это возможно.

Еще одним важным преимуществом XPS является то, что мы можем использовать инфраструктуру аннотаций WPF (System.Windows.Annotations), но моя проблема в том, что эта инфраструктура является хорошим началом, но клиенту понадобятся более богатые функции, которые не предоставляет инфраструктура. , как показано ниже:

  • Возможность рисовать прямоугольники или эллипсы вокруг различных частей документа
  • Возможность рисовать на документе
  • Возможность добавить заметку к изображению или в любом месте документа, не привязывая его к определенной части текста.
  • Показать автора комментария на заметке
  • Отображение заметки разного цвета для каждого
  • Кнопка, которая будет помечать заметку как имеющую высокий или низкий приоритет и соответствующим образом изменять цвет заметки.

Спасибо за любой совет, который вы можете предложить.

--Мехар


person Community    schedule 15.09.2009    source источник
comment
Интересно, но я не вижу здесь вопроса.   -  person Nifle    schedule 15.09.2009


Ответы (2)


Вы можете выполнить все вышеупомянутые требования с документами XPS и WPF.

Вам просто нужно создать закадровый холст (который пользователь не может видеть), загрузить существующий документ XPS. Затем вы можете просто добавить любые графические объекты/объекты пользовательского интерфейса, которые вам нужны (прямоугольник, круг, растровые эффекты, текст и т. д.), и вы сможете легко отображать свой элемент управления поверх существующего документа XPS.

И у вас будет полная мощность рендеринга/интерфейса WPF для рисования всего, что вам нужно.

Для вызова InvalidateArrange() и InvalidateMeasure() на вашем холсте потребуется некоторая ручная работа, но это должно быть довольно просто.

Мое единственное другое предложение - использовать PDF-файлы, поскольку большинство обычных гражданских лиц привыкли к ним или предоставляют какую-то функцию импорта в вашем приложении. Вы также можете ознакомиться с проектом с открытым исходным кодом PDFSharp, если вы выбрали путь в формате PDF.

person jonathanpeppers    schedule 16.09.2009

Хм, звучит знакомо http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/8ed381ad-21b6-4479-b9b2-b6317591e93a

Если бы я был на вашем месте, я бы избегал настройки фреймворка аннотаций WPF, поскольку я шел по этому пути, и он высок по шкале сложности и требует размышлений, чтобы получить доступ к свойствам, которые вам понадобятся. Если есть возможность предоставить это решение в виде веб-приложения, я бы посоветовал взглянуть на документ toolkit: firstfloorsoftware.com/documenttoolkit/ программного обеспечения First Floor.

Это средство просмотра/преобразования/аннотации XPS в Silverlight, полностью работающее в веб-браузере. Я не связан с First Floor, но если бы этот фреймворк (и silverlight 3) был доступен год назад, то я бы точно на него пошел. Это не дешево, но было бы намного дешевле, чем выполнять всю работу в WPF.

Если вы решите пойти по пути WPF, то в блоге Дерека Мелхорна есть кое-что интересное: блоги .msdn.com/mehlhorn/default.aspx

person Ben Pink    schedule 30.09.2009