Как создать предварительный просмотр в .NET с помощью GroupDocs.Annotation
Создание как создать предварительный просмотр является краеугольным камнем современных приложений, ориентированных на документы. С GroupDocs.Annotation для .NET вы можете отрисовывать миниатюры PDF, создавать защищённые потоки предварительных просмотров и поддерживать отзывчивый пользовательский интерфейс даже на мобильных устройствах. В этом руководстве вы узнаете, почему генерация превью важна, рассмотрите типичные сценарии реализации и получите план по добавлению высококачественных превью в свои решения.
Быстрые ответы
Класс AnnotationApi — основной компонент GroupDocs.Annotation, который загружает документы и создаёт изображения превью. Метод GetPages возвращает отрисованные изображения страниц в виде массивов байтов. Флаг HideAnnotations удаляет все слои аннотаций с отрисованного изображения.
- Какой самый быстрый способ отрисовать миниатюру PDF? Загрузите PDF с помощью
AnnotationApi, установите DPI = 150 и вызовитеGetPages— первая страница будет возвращена в формате PNG менее чем за 200 мс для файла размером 2 МБ. - Могу ли я скрыть все аннотации в превью? Да — используйте флаг
HideAnnotationsперед отрисовкой, чтобы получить чистый вид. - Является ли генерация превью потокобезопасной? API без состояния; вы можете безопасно запускать несколько задач генерации превью параллельно.
- Нужна ли лицензия для использования в продакшене? Для неограниченной генерации превью требуется действующая лицензия GroupDocs.Annotation.
- Какие версии .NET поддерживаются? .NET Framework 4.6+, .NET Core 3.1+, .NET 5/6/7.
Что такое предварительный просмотр документа?
Предварительный просмотр документа — это лёгкое визуальное представление файла — обычно изображение или серия изображений, позволяющие пользователям быстро увидеть содержимое без загрузки полного документа. Это улучшает UX, снижает нагрузку на полосу пропускания и добавляет уровень безопасности, показывая только то, что вы решили отобразить.
Почему использовать безопасный предварительный просмотр документов?
Безопасный предварительный просмотр гарантирует, что конфиденциальные метаданные, скрытые слои или ограниченные аннотации никогда не покидают сервер. GroupDocs.Annotation шифрует поток превью и удаляет любую разметку, которую вы явно не разрешили, предоставляя полный контроль над тем, что видят конечные пользователи. Количественное утверждение: библиотека поддерживает 30+ форматов файлов и может генерировать превью для PDF‑документов до 500 страниц менее чем за 2 секунды на стандартном 8‑ядерном сервере при использовании DPI 150 по умолчанию.
Как отрисовать миниатюру PDF?
Загрузите PDF с помощью AnnotationApi, укажите DPI от 150 до 300 для чёткого текста и запросите первую страницу в формате PNG. Такой двухшаговый подход возвращает массив байтов, который можно сразу передать в браузер или сохранить на диск. Использование более высокого DPI (например, 300) улучшает читаемость текстовых документов, тогда как более низкое DPI (например, 72) уменьшает размер файла для сеток миниатюр.
Предварительные требования
- .NET Framework 4.6+ или .NET Core 3.1+ установлен.
- Действующая лицензия GroupDocs.Annotation (временная лицензия подходит для оценки).
- Доступ к PDF, Word, Excel или другим поддерживаемым файлам, которые вы планируете просматривать.
Как создать предварительный просмотр шаг за шагом
Чтобы создать превью, необходимо установить пакет GroupDocs.Annotation, инициализировать API с вашей лицензией, настроить параметры превью, сгенерировать изображение и, при необходимости, кэшировать результат. Ниже представлены разделы, подробно описывающие каждый шаг с примерами кода, показывающие, как скрыть аннотации, задать DPI и эффективно обрабатывать большие файлы.
Шаг 1: установить пакет NuGet
Откройте консоль Package Manager Console вашего проекта и выполните:
Install-Package GroupDocs.Annotation
Шаг 2: инициализировать API
Создайте экземпляр AnnotationApi, передав путь к файлу лицензии и необязательную конфигурацию (например, папку кэша, ограничение памяти).
var config = new AnnotationConfig
{
LicensePath = "GroupDocs.Annotation.lic",
CacheFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Cache")
};
var annotationApi = new AnnotationApi(config);
Шаг 3: создать предварительный просмотр без аннотаций
Установите флаг HideAnnotations в true, выберите нужный DPI и запросите нужные страницы.
var previewOptions = new PreviewOptions
{
HideAnnotations = true,
Dpi = 150,
OutputFormat = PreviewOutputFormat.Png,
PageNumbers = new[] { 1 } // first page only for thumbnail
};
byte[] previewBytes = annotationApi.GetPreview("sample.pdf", previewOptions);
File.WriteAllBytes("sample_thumb.png", previewBytes);
Вызов GetPreview возвращает массив байтов, который можно отправить напрямую в HTTP‑ответ, сохранить в CDN или встроить в UI‑компонент.
Шаг 4: кэшировать и повторно использовать предварительные просмотры
Чтобы не генерировать одно и то же превью многократно, сохраняйте изображение, используя хеш исходного файла и настроек превью в качестве ключа кэша. При изменении исходного документа инвалидируйте кэш, сравнив метки времени.
string cacheKey = $"{Path.GetFileNameWithoutExtension(filePath)}_{previewOptions.Dpi}_{previewOptions.HideAnnotations}";
Шаг 5: эффективно обрабатывать большие документы
Для файлов размером более 100 МБ используйте блок using, чтобы гарантировать своевременное освобождение внутренних потоков AnnotationApi. Обрабатывайте страницы пакетами, если нужны многостраничные превью, освобождая каждый пакет перед переходом к следующему.
Распространённые сценарии реализации
- Системы управления документами — отображение сетки миниатюр для быстрой визуальной навигации.
- Платформы совместной работы — рендер только превью‑вью для рецензентов, с возможностью включения слоёв аннотаций по запросу.
- Веб‑порталы — показывать превью при наведении на ссылки файлов, уменьшая необходимость полной загрузки.
- Мобильные приложения — генерировать PNG низкого разрешения (72 DPI), чтобы расход трафика не превышал 50 KB на страницу.
Устранение неполадок при генерации предварительных просмотров
- Пики памяти при больших PDF — вызывайте
Dispose()уAnnotationApiпосле каждой партии превью и ограничьте количество одновременных задач. - Размытие текста в миниатюрах — увеличьте DPI до 300 или переключитесь на формат PNG; сжатие JPEG может размыть тонкие символы.
- Отсутствие изображений в превью Excel — убедитесь, что объекты диаграмм полностью загружены, установив
LoadCharts = trueв параметрах превью. - Длительное время отклика — перенесите генерацию превью в фоновой поток (например,
Task.Run) и показывайте заглушку, пока реальное превью не будет готово.
Часто задаваемые вопросы
Q: Могу ли я генерировать предварительные просмотры для документов, защищённых паролем?
A: Да. Укажите пароль в LoadOptions при создании экземпляра AnnotationApi; превью будет сгенерировано после успешного расшифрования.
Q: Поддерживает ли библиотека рендер превью для форматов, отличных от PDF, таких как DOCX или XLSX?
A: Абсолютно. GroupDocs.Annotation может создавать превью более чем для 30 различных форматов, включая DOCX, XLSX, PPTX и многие типы изображений.
Q: Как убедиться, что превью не раскрывает скрытые метаданные?
A: Используйте опцию HideMetadata в PreviewOptions; API удалит все свойства документа перед отрисовкой изображения.
Q: Безопасно ли публично открывать эндпоинт превью?
A: Поток превью генерируется на сервере и может передаваться по HTTPS. Сочетайте его с токен‑базированной аутентификацией, чтобы ограничить доступ только авторизованным пользователям.
Q: Какова рекомендуемая политика истечения кэша?
A: Кэшируйте превью на протяжении жизни версии исходного документа. При изменении метки времени последнего изменения документа инвалидируйте кэшированное изображение и генерируйте новое.
Дополнительные ресурсы
- Создание высококачественных PDF‑предпросмотров с пользовательскими разрешениями с помощью GroupDocs.Annotation для .NET
- Создание превью страниц PDF с использованием GroupDocs.Annotation .NET: Полное руководство
- Создание целевых превью листов Excel с помощью GroupDocs.Annotation .NET
- Как создать чистый предварительный просмотр документа без аннотаций с помощью GroupDocs.Annotation .NET
- Как генерировать превью документов без комментариев с помощью GroupDocs.Annotation .NET
- GroupDocs.Annotation for Net Documentation
- GroupDocs.Annotation for Net API Reference
- Download GroupDocs.Annotation for Net
- GroupDocs.Annotation Forum
- Free Support
- Temporary License
Последнее обновление: 2026-08-09
Тестировано с: GroupDocs.Annotation 23.10 for .NET
Автор: GroupDocs