Налаштування у .NET 6 або вище

Файл Startup.cs

У файлі Startup.cs .NET Core проекту ці рядки коду визначають конфігурацію конвеєра middleware за допомогою методу MapWhen. Наданим предикатом перевіряється, чи закінчується шлях вхідного запиту на DocImage.axd. Усередині цього блоку викликається метод UseDoconut з об’єктом DoconutOptions у вигляді аргументу.

Startup.cs
app.MapWhen(
    context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
    appBranch =>
    {
        appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
    }
);

Додати простори імен Doconut

У вашому проекті додайте наступні using‑директиви:

Usings
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;

Створити екземпляр об’єкта Viewer

Цей рядок створює новий екземпляр класу Viewer, що дозволяє створити об’єкт переглядача у вашому коді.

Instantiation
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);

Налаштування об’єкта DocOptions

Приклад ініціалізації об’єкта DocOptions із конкретними налаштуваннями:

DocOptions
var documentOptions = new DocOptions
{
    Password = "",
    ImageResolution = 200,
    TimeOut = 30
};

Налаштування об’єкта config

Ініціалізуйте новий об’єкт PdfConfig із конкретними налаштуваннями для PDF‑документів:

PdfConfig
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };

Відкрити ваш документ

Цей рядок викликає метод OpenDocument об’єкта viewer, передаючи шлях до файлу документа, розташованого на сервері, та раніше налаштовані об’єкти PdfConfig і DocOptions як параметри.

OpenDocument
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);

Додати переглядач у ваш HTML

HTML
<div id="div_ctlDoc"></div>

Додати файли CSS та JavaScript

Додайте на сторінку необхідні CSS та JavaScript файли. Ці скрипти включені у ZIP‑файл з код‑зразками.

HTML Headers
<!-- 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 з автоматичним виявленням ліцензій, використайте наступний рядок:

C#
var docViewer = new Viewer(_cache, _accessor);

Додати ручну дефолтну ліцензію

Ви можете вручну вказати шлях до єдиного файлу ліцензії при ініціалізації переглядача.

C#
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);

Додати ліцензію за потоком

Цей метод використовує перегрузку Viewer.DoconutLicense(Stream licenseStream) для додавання ліцензії за потоком.

C#
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
    Viewer.DoconutLicense(licenseStream);
}

Додати ліцензію за XML‑документом

Цей метод використовує перегрузку Viewer.DoconutLicense(XMLDocument licence) для додавання ліцензії за XML‑документом.

C#
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);

Ручна дефолтна множинна ліцензія плагінів

Якщо потрібно вказати кілька ліцензій, можна надати список шляхів до файлів при ініціалізації переглядача.

C#
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) для додавання ліцензії плагіна за потоком.

C#
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
    Viewer.SetLicensePlugin(pluginLicenseStream);
}

Додати ліцензію плагіна за XML‑документом

Цей метод використовує перегрузку Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) для додавання ліцензії плагіна за XML‑документом.

C#
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. Додайте анотацію до менеджера і завантажте її у документ‑вьюер для відображення.

C#
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. Додайте та назвіть анотацію, щоб відобразити її у документі.

JavaScript
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‑документів, які покладаються на шрифти, не встановлені у системних каталогах за замовчуванням.

Usage
var config = new WordConfig
{
    FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};

Важливе оновлення для Doconut 25.2.0

Необхідно оновити пакет System.Text.Json до версії 8.0.5 у всіх ваших проектах. Це оновлення важливе для сумісності з новими функціями та виправлення критичних вразливостей безпеки.

Кодування Email

Властивість EmailEncoding у класі EmailConfig визначає бажане кодування для теми та тіла листа.

Usage
var emailConfig = new EmailConfig {
    EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};

Тема та кодування тіла листа

Властивості SubjectEncoding і BodyEncoding у класі EmailConfig визначають кодування, яке використовується для теми та тіла листа відповідно.

Usage
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. Це особливо корисно для мов із специфічними вимогами форматування.

Usage
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‑файл, що містить усі необхідні файли, за посиланням нижче: