
Просмотрщик DOCX в ASP.NET Core: Предпросмотр файлов Word
Чтобы просмотреть документ Word внутри приложения ASP.NET Core, используйте SDK просмотрщика DOCX, который рендерит файл на сервере и отображает его страницы в браузере. Doconut предоставляет этот процесс без необходимости установки Microsoft Word на сервере. Ваши пользователи могут читать контракт, предложение или отчёт внутри вашего приложения, не открывая отдельную настольную программу.

Полезный вопрос — что происходит, когда вы заменяете демонстрационный файл своими документами. В контракте могут быть пользовательские шрифты, повторяющиеся заголовки, широкие таблицы и страницы с подписями. В этом руководстве показан шаг открытия документа для приложения .NET 8 и проверки, которые помогут оценить результат.
Открыть файл DOCX из C#
Начните с быстрого старта Doconut .NET 8, чтобы настроить сервисы, ASP.NET‑сессию, middleware для документов, ресурсы просмотрщика и виджет браузера. Ниже приведён конечный пункт, расширяющий эту конфигурацию; это не полностью самостоятельное приложение.
Поместите нечувствительный тестовый документ в App_Data/Sample.docx внутри корня содержимого приложения. Добавьте этот конечный пункт перед app.Run():
using Doconut;
app.MapPost("/api/preview-word", async (
Viewer viewer,
IWebHostEnvironment environment) =>
{
var filePath = Path.Combine(
environment.ContentRootPath, "App_Data", "Sample.docx");
if (!File.Exists(filePath))
return Results.NotFound();
var token = await viewer.OpenDocumentAsync(filePath);
return Results.Ok(new { token });
});
Сохраните директиву using вместе с другими импортами в начале Program.cs. Жёстко заданный путь упрощает воспроизведение примера и исключает возможность передачи произвольного пути с клиента.
Справочник API Viewer описывает перегрузку OpenDocumentAsync с параметром пути к файлу. Он открывает файл и возвращает токен сеанса документа. На странице, где быстрый старт уже инициализировал objViewer, откройте предварительный просмотр так:
async function previewWordDocument() {
const response = await fetch('/api/preview-word', {
method: 'POST'
});
if (!response.ok) {
throw new Error('The Word preview could not be opened.');
}
const { token } = await response.json();
objViewer.View(token);
}
Вызовите эту функцию из действия предварительного просмотра на вашей странице и отобразите любые ошибки через уже существующий UI ошибок приложения. Оставьте запрос в том же происхождении приложения, что и просмотрщик, в этом примере.
Держите доступ к документу под контролем приложения
В клиентском портале замените фиксированный пример записью документа, выбранной вашим приложением. Убедитесь, что текущий пользователь имеет право просматривать эту запись, прежде чем определять её место хранения и открывать её. Имя файла, полученное из браузера, не является решением вопроса авторизации.
Храните защищённые оригиналы вне публичного веб‑корня. Папка App_Data в примере служит лишь конвенцией хранения, а не механизмом контроля доступа: не делайте её доступной через статическое сопоставление файлов. Аутентификацию и разрешения на документы реализуйте в хост‑приложении.
Браузер получает токен просмотра для сеанса документа. Рассматривайте этот токен как учётные данные, а не как постоянный URL документа. Быстрый старт также описывает закрытие документа, когда пользователь покидает просмотрщик или открывает другой файл.
Тестирование макета Word с репрезентативными файлами
Пустой DOCX мало что говорит о документах, которые используют ваши клиенты. Сформируйте небольшой набор оценочных файлов из реальных шаблонов, которые ваше приложение должно отображать, удалив конфиденциальную информацию.
| Тестовый документ | Что проверять в предварительном просмотре |
|---|---|
| Контракт с заголовками и колонтитулами | Повторяющийся контент, номера страниц и расположение страниц с подписями |
| Предложение с корпоративным шрифтом | Подмена шрифтов, перенос строк и ширина заголовков |
| Отчёт с широкими или вложенными таблицами | Ширина колонок, разбиение строк и обрезка текста у границ страниц |
| Документ, сочетающий портретные и альбомные секции | Размеры страниц и переход между секциями |
| Руководство с большим количеством изображений | Размещение изображений, подписи и читаемость при увеличении |
Сравните отрендеренный результат с утверждённым исходным документом. Определите, какие различия важны для вашего рабочего процесса, прежде чем окончательно интегрировать решение.
Doconut раскрывает настройки рендеринга, специфичные для Word, через WordConfig. Справочник по конфигурации форматов включает FontFolders для дополнительных каталогов шрифтов, параметры размеров бумаги и AutoFitAllTables для подгонки таблиц. Меняйте эти параметры осознанно: заставив таблицу заполнять доступную ширину, вы также можете изменить макет, который пытались сохранить.
Повторите проверки на целевом сервере развертывания. Предпросмотр, использующий шрифт, установленный только на машине разработчика, может выглядеть иначе, если этого шрифта нет на сервере. Используйте шрифты, которые ваша организация имеет право развернуть.
Выбирайте просмотр, редактирование и конвертацию отдельно
Предпросмотр DOCX решает задачу чтения. Он не превращает ваше приложение в среду редактирования Word.
- Чтение: используйте просмотрщик, когда необходимо просмотреть существующий документ внутри дела, заказа или записи клиента.
- Редактирование: если пользователи должны переписать абзацы и сохранить обновлённый DOCX, оцените отдельный процесс редактирования. Предпросмотр файла не является доказательством поддержки редактирования Word.
- Конвертация: если требуется скачиваемый файл в другом формате, оцените процесс экспорта отдельно от отображения страниц.
Обзор Word viewer для .NET описывает путь просмотра семейства Word от Doconut. Используйте его, чтобы проверить соответствие продукта, а затем применяйте свои файлы для оценки поведения рендеринга, важного для вашего приложения.
Оцените просмотрщик, начав с самого сложного документа
Начните с документа, который уже вызывает запросы в поддержку: длинный контракт, отчёт с множеством таблиц или шаблон с необычными шрифтами. Проверьте предварительный просмотр, пролистайте несколько страниц, откройте его заново в новой сессии и убедитесь, что окружающее приложение соблюдает правильные разрешения на документ.
Скачать Doconut и запустите пример .NET 8 с этим файлом. Успешная оценка должна продемонстрировать, что пользователи могут читать те документы, которые они действительно получают, с макетом, одобренным вашей командой, и интеграцией, которую ваше приложение способно поддерживать.