Точность макета
Постраничность, колонтитулы, колонки, таблицы и встроенные изображения размещаются так же, как в Word, потому что результат — изображение страницы, а не приближение в HTML.
Interop Office на веб‑сервере — решение, о котором команды жалеют с предсказуемой скоростью: требуется лицензия на рабочий стол, возникают утечки процессов, при высокой нагрузке происходят взаимные блокировки, и Microsoft уже много лет советует этого не делать. Doconut нативно рендерит DOC, DOCX, RTF и ODT — без Office, без COM, без оставшихся в 4 утра процессов WINWORD.EXE.
Проблема
Автоматизация Office была разработана для настольного компьютера с вошедшим пользователем, а не для службы, обрабатывающей двадцать одновременных запросов. При нагрузке происходят взаимные блокировки, появляются диалоговые окна, которые никто не может закрыть, и процессы продолжают работать после завершения запросов, пока сервер не исчерпает память.
Ситуация с лицензированием не лучше: сервер, рендерящий документы для многих пользователей, требует лицензий на рабочий стол, чего изначально не предполагалось.
Нативный рендеринг обходится без всего этого. Doconut открывает файл, формирует макет и создает постраничные изображения в процессе. Нет второй программы, которую нужно устанавливать, контролировать или лицензировать.
Возможности
Постраничность, колонтитулы, колонки, таблицы и встроенные изображения размещаются так же, как в Word, потому что результат — изображение страницы, а не приближение в HTML.
.doc, .docx, .docm, .dot, .dotx, .dotm, .rtf, .odt, .ott и .xml открываются одним и тем же вызовом.
Рендеринг использует шрифты, установленные на вашем сервере, поэтому внешний вид документа зависит от вашей среды, а не от машины, на которой находится читатель.
Изображение страницы не содержит отслеживаемых изменений, удалённого текста, комментариев или метаданных автора. Отправка изображений вместо DOCX существенно уменьшает утечки информации.
С плагином AdvancedSearch поиск осуществляется по тексту документа, а не по его изображению.
С плагином Converter метод DocumentConverter.ConvertAsync() создает PDF или другие форматы в том же процессе — полезно, когда требуется архивировать, а не только просматривать.
Интеграция
Обратите внимание, что .xml обрабатывается рендерером Word и WordConfig. Это не универсальный просмотрщик XML — он нужен, потому что собственный XML-формат Word попадает в этот конвейер.
Поддерживаемые расширения
// Identical to every other format — the family is detected from the document
string token = await viewer.OpenDocumentAsync("wwwroot/files/Agreement.docx");
// With the Converter plugin, when the requirement is a PDF for the archive
await DocumentConverter.ConvertAsync(
"wwwroot/files/Agreement.docx",
"wwwroot/archive/Agreement.pdf");Подробности
Нет. Рендеринг нативный. Нет установки Office, нет сборки interop и нет процесса автоматизации, который нужно контролировать.
Постраничность и макет воспроизводятся на сервере, поэтому результат близко соответствует оригиналу, при условии, что шрифты, на которые ссылается документ, установлены на хосте рендеринга. Отсутствующие шрифты заменяются, и замена изменяет макет.
Отрендеренная страница показывает документ в виде макета, без метаданных ревизий. Если что, это преимущество — рецензенты часто пересылают файлы DOCX с удалённым текстом, который, как они полагали, исчез.
Excel
Рендеринг XLS/XLSX/ODS/CSV на сервере с сохранённым форматированием и скрытыми листами, оставленными позади.
ExcelСерверный рендеринг PDF в изображения страниц — пользователь читает документ, не получая файл.
PDFВременная лицензия запрашивается за несколько минут и полностью работает на вашем компьютере. Важные файлы — это те, которые уже вызывают сбои в вашем текущем просмотрщике.