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

Файл Startup.cs

У файлі Startup.cs .NET Core проєкту ці рядки коду визначають конфігурацію конвеєра проміжного програмного забезпечення за допомогою методу 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, дозволяючи створити об’єкт переглядача у вашому коді.

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 об’єкта переглядача, передаючи шлях до файлу документа, розташованого на сервері, та раніше налаштовані об’єкти 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 - Версія 2.5.140
  • Microsoft.Bcl.AsyncInterfaces - Версія 8.0.0
  • Microsoft.Extensions.Caching.Abstractions - Версія 8.0.0
  • Microsoft.Extensions.Configuration - Версія 8.0.0
  • Microsoft.Extensions.Configuration.Abstractions - Версія 8.0.0
  • Microsoft.Extensions.Configuration.FileExtensions - Версія 8.0.0
  • Microsoft.Extensions.Configuration.Json - Версія 8.0.0
  • Microsoft.Extensions.FileProviders.Abstractions - Версія 8.0.0
  • Microsoft.Extensions.FileProviders.Physical - Версія 8.0.0
  • Microsoft.Extensions.FileSystemGlobbing - Версія 8.0.0
  • Microsoft.Extensions.Primitives - Версія 8.0.0
  • System.Buffers - Версія 4.5.1
  • System.Formats.Asn1 - Версія 8.0.0
  • System.Numerics.Vectors - Версія 4.5.0
  • System.Security.Cryptography.Cng - Версія 5.0.0
  • System.Security.Cryptography.Pkcs - Версія 8.0.0
  • System.Text.Encoding.CodePages - Версія 8.0.0
  • System.Text.Encodings.Web - Версія 8.0.0
  • System.Text.Json - Версія 8.0.3
  • System.Threading.Tasks.Extensions - Версія 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 у всіх ваших проектах. Це оновлення є вирішальним для забезпечення сумісності з останніми функціями та вирішення важливих покращень безпеки.

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

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

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