Налаштування у .NET 6 або вище
Файл Startup.cs
У файлі Startup.cs .NET Core проекту ці рядки коду визначають конфігурацію конвеєра middleware за допомогою методу MapWhen. Наданим предикатом перевіряється, чи закінчується шлях вхідного запиту на DocImage.axd. Усередині цього блоку викликається метод UseDoconut з об’єктом DoconutOptions у вигляді аргументу.
app.MapWhen(
context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
appBranch =>
{
appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
}
);Додати простори імен Doconut
У вашому проекті додайте наступні using‑директиви:
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;Створити екземпляр об’єкта Viewer
Цей рядок створює новий екземпляр класу Viewer, що дозволяє створити об’єкт переглядача у вашому коді.
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);Налаштування об’єкта DocOptions
Приклад ініціалізації об’єкта DocOptions із конкретними налаштуваннями:
var documentOptions = new DocOptions
{
Password = "",
ImageResolution = 200,
TimeOut = 30
};Налаштування об’єкта config
Ініціалізуйте новий об’єкт PdfConfig із конкретними налаштуваннями для PDF‑документів:
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };Відкрити ваш документ
Цей рядок викликає метод OpenDocument об’єкта viewer, передаючи шлях до файлу документа, розташованого на сервері, та раніше налаштовані об’єкти PdfConfig і DocOptions як параметри.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);Додати переглядач у ваш HTML
<div id="div_ctlDoc"></div>Додати файли CSS та JavaScript
Додайте на сторінку необхідні CSS та JavaScript файли. Ці скрипти включені у ZIP‑файл з код‑зразками.
<!-- Main Viewer Related Scripts -->
<script src="scripts/splitter.js"></script>
<script src="scripts/docViewer.js"></script>
<script src="scripts/documentLinks.js"></script>
<!-- Viewer functions -->
<script src="scripts/docViewer.UI.js?v=1"></script>Додати ліцензії у ваш проект
Автоматичне виявлення ліцензій
Щоб ініціалізувати docViewer з автоматичним виявленням ліцензій, використайте наступний рядок:
var docViewer = new Viewer(_cache, _accessor);Додати ручну дефолтну ліцензію
Ви можете вручну вказати шлях до єдиного файлу ліцензії при ініціалізації переглядача.
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);Додати ліцензію за потоком
Цей метод використовує перегрузку Viewer.DoconutLicense(Stream licenseStream) для додавання ліцензії за потоком.
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
Viewer.DoconutLicense(licenseStream);
}Додати ліцензію за XML‑документом
Цей метод використовує перегрузку Viewer.DoconutLicense(XMLDocument licence) для додавання ліцензії за XML‑документом.
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);Ручна дефолтна множинна ліцензія плагінів
Якщо потрібно вказати кілька ліцензій, можна надати список шляхів до файлів при ініціалізації переглядача.
List<string> licenseFilePaths = new List<string>
{
Path.Combine(_hostingEnvironment.WebRootPath, "Doconut.Viewer.lic"),
Path.Combine(_hostingEnvironment.WebRootPath, "Doconut.Viewer.Annotation.lic"),
Path.Combine(_hostingEnvironment.WebRootPath, "Doconut.Viewer.Search.lic")
};
var docViewer = new Viewer(_cache, _accessor, licenseFilePaths);Додати ліцензію плагіна за потоком
Цей метод використовує перегрузку Viewer.SetLicensePlugin(Stream pluginLicence) для додавання ліцензії плагіна за потоком.
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
Viewer.SetLicensePlugin(pluginLicenseStream);
}Додати ліцензію плагіна за XML‑документом
Цей метод використовує перегрузку Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) для додавання ліцензії плагіна за XML‑документом.
var pluginXmlDoc = new XmlDocument();
pluginXmlDoc.Load("path/to/your/plugin-license.xml");
Viewer.SetLicensePlugin(pluginXmlDoc);Необхідні NuGet пакети
Щоб ваш проект був повністю сумісний з .NET Core Standard, необхідно включити наступні NuGet пакети, перелічені у алфавітному порядку.
- MessagePack - Version 2.5.140
- Microsoft.Bcl.AsyncInterfaces - Version 8.0.0
- Microsoft.Extensions.Caching.Abstractions - Version 8.0.0
- Microsoft.Extensions.Configuration - Version 8.0.0
- Microsoft.Extensions.Configuration.Abstractions - Version 8.0.0
- Microsoft.Extensions.Configuration.FileExtensions - Version 8.0.0
- Microsoft.Extensions.Configuration.Json - Version 8.0.0
- Microsoft.Extensions.FileProviders.Abstractions - Version 8.0.0
- Microsoft.Extensions.FileProviders.Physical - Version 8.0.0
- Microsoft.Extensions.FileSystemGlobbing - Version 8.0.0
- Microsoft.Extensions.Primitives - Version 8.0.0
- System.Buffers - Version 4.5.1
- System.Formats.Asn1 - Version 8.0.0
- System.Numerics.Vectors - Version 4.5.0
- System.Security.Cryptography.Cng - Version 5.0.0
- System.Security.Cryptography.Pkcs - Version 8.0.0
- System.Text.Encoding.CodePages - Version 8.0.0
- System.Text.Encodings.Web - Version 8.0.0
- System.Text.Json - Version 8.0.3
- System.Threading.Tasks.Extensions - Version 4.5.4
Конфігурація параметрів рендерингу
Ви можете налаштувати поведінку рендерингу за допомогою наступних параметрів:
- CadConfig: Використовується для файлів DWG, DXF та DGN.
- EmailConfig: Використовується для файлів EML, EMLX та MSG.
- EpubConfig: Використовується для файлів EPUB.
- ExcelConfig: Використовується для файлів Excel та CSV.
- MhtConfig: Використовується для файлів MHT.
- PptConfig: Використовується для файлів PowerPoint.
- ProjectConfig: Використовується для файлів MPP.
- PsdConfig: Використовується для файлів PSD.
- TxtConfig: Використовується для файлів TXT.
- TiffConfig: Використовується для файлів TIFF.
Конфігурація параметрів рендерингу
Параметри рендерингу налаштовуються за допомогою властивості DefaultRender:
- DefaultRender = true : Ця опція забезпечує вищу якість рендерингу, а також споживає більше памʼяті сервера і часу процесора.
- DefaultRender = false : Ця опція забезпечує швидший рендеринг, скорочуючи використання памʼяті та процесорного часу.
Як додати зображення‑анотацію
У C#
1. Відкрийте документ і отримайте розміри першої сторінки. 2. Ініціалізуйте AnnotationManager з розмірами сторінки. 3. Створіть ImageAnnotation, задавши шлях до зображення в imgUrl, і вкажіть позицію та розмір у Rectangle. 4. Додайте анотацію до менеджера і завантажте її у документ‑вьюер для відображення.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);
var firstPage = docViewer.GetThumbnailDimensions(1, 0, 100, false);
var pageWidth = firstPage.Width;
var pageHeight = firstPage.Height;
using (var annMgr = docViewer.GetAnnotationManager(pageWidth, pageHeight))
{
string imgUrl = "img/sample.png";
var imgAnn = new ImageAnnotation(
1,
new Rectangle(600, 700, 750, 300),
imgUrl
);
annMgr.Add(imgAnn);
docViewer.LoadAnnotationXML(annMgr.GetAnnotationXml());
}У JavaScript
1. Переконайтесь, що YourController доступний. 2. Створіть нову ImageAnnotation, задавши шлях до зображення за допомогою SetNote. 3. Додайте та назвіть анотацію, щоб відобразити її у документі.
function ImageStamp() {
if (null != objctlDoc.YourController()) {
var objStampImage = new ImageAnnotation({ left: 200, top: 200, width: 260, height: 55 });
objctlDoc.YourController().AddAnnotation(null, objStampImage, null);
objStampImage.SetNote('/images/Approved_Stamp.png');
objStampImage.Paint();
}
}Користувацькі шрифти у Word‑документах
Властивість FontFolders у класі WordConfig вказує користувацькі каталоги, у яких застосунок шукатиме шрифти. Це особливо корисно для обробки Word‑документів, які покладаються на шрифти, не встановлені у системних каталогах за замовчуванням.
var config = new WordConfig
{
FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};Важливе оновлення для Doconut 25.2.0
Необхідно оновити пакет System.Text.Json до версії 8.0.5 у всіх ваших проектах. Це оновлення важливе для сумісності з новими функціями та виправлення критичних вразливостей безпеки.
Кодування Email
Властивість EmailEncoding у класі EmailConfig визначає бажане кодування для теми та тіла листа.
var emailConfig = new EmailConfig {
EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};Тема та кодування тіла листа
Властивості SubjectEncoding і BodyEncoding у класі EmailConfig визначають кодування, яке використовується для теми та тіла листа відповідно.
var emailConfig = new EmailConfig {
SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
BodyEncoding = Encoding.UTF8 // Set encoding for the body
};Підтримка культур у Word Viewer
Властивість DocumentCulture у класі WordConfig дозволяє явно задати культуру для DOC та DOCX файлів. Це забезпечує, що локалізований контент — дати, валюти, числа — відображається так само, як у Microsoft Word. Це особливо корисно для мов із специфічними вимогами форматування.
var config = new WordConfig { DocumentCulture = "he-IL" }; // Hebrew (Israel)
var config = new WordConfig { DocumentCulture = "ar-SA" }; // Arabic (Saudi Arabia)
var config = new WordConfig { DocumentCulture = "th-TH" }; // Thai (Thailand)
var config = new WordConfig { DocumentCulture = "ja-JP" }; // Japanese (Japan)Завантажити файли CSS та JavaScript
Щоб Doconut функціонував правильно, вам потрібно включити специфічним чином CSS та JS файли у ваш проект. Ви можете завантажити ZIP‑файл, що містить усі необхідні файли, за посиланням нижче: