Налаштування в .NET Standard / Core
Файл Startup.cs
У файлі Startup.cs проєкту .NET Core ці рядки коду визначають конфігурацію конвеєра проміжного програмного забезпечення за допомогою методу 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
};Налаштування об’єкта конфігурації
Ініціалізуйте новий об’єкт PdfConfig з конкретними налаштуваннями для обробки PDF‑документів:
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };Відкриття вашого документу
Цей рядок викликає метод OpenDocument об’єкта переглядача, передаючи шлях до файлу документа, розташованого на сервері, та раніше налаштовані об’єкти PdfConfig і DocOptions як параметри.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);Додайте переглядач у ваш HTML
<div id="div_ctlDoc"></div>Додайте CSS та JavaScript файли
Додайте наступні CSS та JavaScript файли на сторінку. Ці скрипти включені у ZIP‑файл з прикладами коду.
<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 з автоматичним виявленням ліцензій, використайте наступний рядок:
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 - Версія 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. Додайте анотацію до менеджера і завантажте її у переглядач документа для відображення.
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 у всіх ваших проєктах. Це оновлення критично важливе для забезпечення сумісності з останніми функціями та виправлення важливих проблем безпеки.
Кодування електронної пошти
Властивість 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)