Какого уровня верности вы хотите достичь?
Я совершенно уверен, что самый простой способ сделать это - преобразовать документ в серверную часть XPS (возможно, с принтером XPS), а затем манипулировать им для создания контента, совместимого с Silverlight (XAP)
Почему это? Потому что, например:
- Silverlight не поддерживает потоковые документы, поэтому вам не нужно выполнять макет на клиенте.
- Silverlight требует, чтобы шрифты были включены в тот же XAP, который его использует (даже в той же сборке), поэтому вам нужно сгенерировать сборку со шрифтом, встроенным в серверную часть.
- XPS - это XAML в zip-формате (поэтому управлять им намного лучше, чем Word2003 doc), но это не Silverlight Xaml, вам нужно преобразовать его в Silverlight, прежде чем вы сможете читать его в приложении Silverlight (используя XSLT? будьте осторожны, есть некоторые вычисления, необходимые для преобразования видовых экранов в масштабируемые / преобразованные преобразования). Хорошей новостью является то, что в процессе генерации XPS были учтены все проблемы с макетом.
Год назад я разработал для опытного образца прототип XPS-ридера для Silverlight. Это работало, но рендеринг не был идеальным (я мог бы, тем не менее, с большим количеством работы)
Одним словом: это возможно, не очень сложно, но требует большой работы и практики в нескольких областях (от XSLT до генерации сборок и знания норм XPS). Но я не знаю ни о каких доступных бесплатных решениях.
Поэтому я бы рекомендовал использовать доступное (и работающее) решение, а не идти по пути рискованного развития.