Постраничные изображения
Каждая страница растеризуется на сервере и доставляется по запросу. Большие документы открываются на первой странице, а не после полной загрузки файла.
Встроенный в браузер PDF‑просмотрщик работает, отдавая пользователю файл. Для контракта, медицинской карты или закрытого предложения это часто именно то, чего вы хотите избежать. Doconut рендерит страницы на сервере и отправляет изображения, поэтому просмотр и владение перестают быть одним и тем же действием.
Проблема
Отдайте файл и позвольте браузеру отобразить его: самый простой способ, но он передаёт пользователю оригинальные байты, метаданные, вложения и возможность переслать всё это одним кликом.
Отправьте JavaScript‑движок PDF: файл остаётся в браузере, добавляет значимую загрузку в ваш пакет, но вам всё равно придётся писать панель инструментов, полосу миниатюр и поле поиска самостоятельно.
Рендеринг на сервере и отправка изображений: пользователь видит страницы, файл никогда не покидает вашу инфраструктуру, и тот же механизм работает для Word, Excel, CAD и электронной почты — обычно это требование появляется через два спринта.
Возможности
Каждая страница растеризуется на сервере и доставляется по запросу. Большие документы открываются на первой странице, а не после полной загрузки файла.
С плагином AdvancedSearch полнотекстовый поиск выполняется по текстовому слою PDF, поэтому результаты попадают на нужную страницу с правильным выделением.
Полоса миниатюр, переходы по страницам, масштабирование и подгонка по ширине поставляются вместе с виджетом. Установите showThumbs и FitType и продолжайте.
С плагином Annotation: выделения, комментарии, штампы и подписи, хранятся и экспортируются вашим приложением, а не встраиваются обратно в исходный файл.
Зашифрованные PDF открываются на сервере с паролем, предоставляемым вашим кодом. Пароль никогда не попадает в браузер.
Печать — это возможность просмотрщика, которую вы можете предоставить или скрыть, что отличается от решения о том, может ли пользователь скачать оригинал.
Интеграция
Клиент получает только токен. Он никогда не узнаёт имя файла, место хранения или то, что документ был PDF, а не что‑то другое в каталоге.
Поддерживаемые расширения
// Server-side: returns an opaque token, never a path or a URL
app.MapPost("/api/open", async (Viewer viewer) =>
{
string token = await viewer.OpenDocumentAsync("wwwroot/files/Contract.pdf");
return Results.Ok(new { token });
});
// For an encrypted PDF, supply the password server-side —
// it is used to decrypt in your process and goes no further.Подробности
Только если вы реализуете это сами. Просмотрщик доставляет изображения страниц, адресованные непрозрачным токеном, поэтому выпуск исходного файла остаётся явным решением в вашем коде, а не побочным эффектом предоставления возможности чтения.
Они рендерятся как изображения, но искать нечего. OCR доступен только через плагин AdvancedSearch и обычно недоступен — движок переписывается, так что не планируйте на него сегодня.
Страницы рендерятся и доставляются по запросу, а не все сразу, поэтому длина документа влияет на память гораздо меньше, чем сложность страниц. Очень тяжёлые векторные страницы являются основной нагрузкой, а не количество страниц.
Word
Нативный рендеринг DOC/DOCX/RTF/ODT без установки Office, без COM‑interop и без серверной автоматизации.
WordASP.NET Core
Регистрируется как обычный DI плюс middleware. Наследует аутентицию, логирование и хостинг, которые у вас уже есть.
ASP.NET CoreВременная лицензия запрашивается за несколько минут и полностью работает на вашем компьютере. Важные файлы — это те, которые уже вызывают сбои в вашем текущем просмотрщике.