Налаштування у .NET Standard / Core

Файл 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 statements:

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
};

Налаштувати об’єкт конфігурації

Ініціалізуйте новий об’єкт 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
<link rel="stylesheet" href="css/viewer.css" />

<!-- Main Viewer Related Scripts -->
<script src="scripts/jquery.min.js"></script>
<script src="scripts/docViewer.js"></script>
<script src="scripts/splitter.js"></script>
<script src="scripts/search.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);

Додати ліцензію за Stream

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

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

Додати ліцензію за XML Document

Цей метод використовує перегляд Viewer.DoconutLicense(XMLDocument licence) overload для додавання ліцензії за 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);

Додати ліцензію плагін за Stream

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

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

Додати ліцензію плагін за XML Document

Цей метод використовує перегляд Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) overload для додавання ліцензії плагіну за 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 : Цей параметр забезпечує швидший рендеринг за рахунок трохи зниженої якості.

Як додати зображення‑анотацію

In 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());
}

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

Кодування електронної пошти

Властивість 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 та JS файлів

Щоб Doconut функціонував правильно, необхідно включити конкретні CSS і JS файли у ваш проект. Ви можете завантажити ZIP‑файл, що містить усі необхідні файли, за допомогою посилання нижче: