Instalacja w .NET 6 lub wyższej wersji

Plik Startup.cs

W pliku Startup.cs projektu .NET Core te linie kodu definiują konfigurację potoku pośredników przy użyciu metody MapWhen. Podany predykat sprawdza, czy ścieżka żądania kończy się na DocImage.axd. Wewnątrz tego bloku wywoływana jest metoda UseDoconut z obiektem DoconutOptions jako argument.

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

Dodaj przestrzenie nazw Doconut

W swoim projekcie dodaj następujące dyrektywy using:

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

Utwórz obiekt Viewer

Ta linia tworzy nową instancję klasy Viewer, umożliwiając stworzenie obiektu viewer w Twoim kodzie.

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

Skonfiguruj obiekt DocOptions

Przykład inicjalizacji obiektu DocOptions z określonymi ustawieniami:

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

Skonfiguruj obiekt config

Zainicjalizuj nowy obiekt PdfConfig z konkretnymi ustawieniami obsługi dokumentów PDF:

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

Otwórz swój dokument

Ta linia wywołuje metodę OpenDocument obiektu viewer, przekazując ścieżkę do pliku dokumentu znajdującego się na serwerze oraz wcześniej skonfigurowane obiekty PdfConfig i DocOptions jako parametry.

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

Dodaj viewer w HTML

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

Dodaj pliki CSS i JavaScript

Dodaj następujące pliki CSS i JavaScript na stronie. Skrypty te są zawarte w pliku ZIP z przykładami kodu.

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>

Dodaj licencje do swojego projektu

Automatyczne wykrywanie licencji

Aby zainicjować docViewer z automatycznym wykrywaniem licencji, użyj następującej linii:

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

Dodaj ręczną domyślną licencję

Możesz ręcznie określić ścieżkę do pojedynczego domyślnego pliku licencji podczas inicjalizacji viewer.

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

Dodaj licencję przy pomocy strumienia

Ta metoda używa przeciążenia Viewer.DoconutLicense(Stream licenseStream), aby dodać licencję przy użyciu strumienia.

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

Dodaj licencję przy pomocy dokumentu XML

Ta metoda używa przeciążenia Viewer.DoconutLicense(XMLDocument licence), aby dodać licencję przy użyciu dokumentu XML.

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

Ręczne domyślne wiele licencji wtyczek

Jeśli musisz określić wiele licencji, możesz podać listę ścieżek do plików przy inicjalizacji viewer.

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

Dodaj licencję wtyczki przy pomocy strumienia

Ta metoda używa przeciążenia Viewer.SetLicensePlugin(Stream pluginLicence), aby dodać licencję wtyczki przy użyciu strumienia.

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

Dodaj licencję wtyczki przy pomocy dokumentu XML

Ta metoda używa przeciążenia Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence), aby dodać licencję wtyczki przy użyciu dokumentu XML.

C#
var pluginXmlDoc = new XmlDocument();
pluginXmlDoc.Load("path/to/your/plugin-license.xml");
Viewer.SetLicensePlugin(pluginXmlDoc);

Wymagane pakiety NuGet

Aby zapewnić pełną zgodność projektu ze standardem .NET Core, należy uwzględnić następujące pakiety NuGet, wymienione w kolejności alfabetycznej.

  • 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

Opcje konfiguracji renderowania

Możesz skonfigurować zachowanie renderowania przy użyciu następujących opcji:

  • CadConfig: używany dla plików DWG, DXF i DGN.
  • EmailConfig: używany dla plików EML, EMLX i MSG.
  • EpubConfig: używany dla plików EPUB.
  • ExcelConfig: używany dla plików Excel i CSV.
  • MhtConfig: używany dla plików MHT.
  • PptConfig: używany dla plików PowerPoint.
  • ProjectConfig: używany dla plików MPP.
  • PsdConfig: używany dla plików PSD.
  • TxtConfig: używany dla plików TXT.
  • TiffConfig: używany dla plików TIFF.

Konfiguracja opcji renderowania

Opcje renderowania są konfigurowane przy użyciu właściwości DefaultRender:

  • DefaultRender = true : Ta opcja oferuje wyższą jakość renderowania, ale zużywa więcej pamięci serwera i czasu przetwarzania.
  • DefaultRender = false : Ta opcja zapewnia szybsze renderowanie kosztem nieco obniżonej jakości.

Jak dodać adnotację obrazu

W C#

1. Otwórz dokument i pobierz wymiary pierwszej strony. 2. Zainicjalizuj AnnotationManager przy użyciu wymiarów strony. 3. Utwórz ImageAnnotation, ustawiając ścieżkę obrazu w imgUrl oraz określ pozycję i rozmiar w Rectangle. 4. Dodaj adnotację do menedżera i załaduj ją w przeglądarce dokumentu, aby wyświetlić.

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

W JavaScript

1. Upewnij się, że YourController jest dostępny. 2. Utwórz nowy ImageAnnotation, ustawiając ścieżkę obrazu za pomocą SetNote. 3. Dodaj i narysuj adnotację, aby wyświetlić ją w dokumencie.

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

Niestandardowe czcionki w dokumentach Word

Właściwość FontFolders w klasie WordConfig określa niestandardowe katalogi, w których aplikacja będzie szukać czcionek. Jest to szczególnie przydatne przy przetwarzaniu dokumentów Word, które korzystają z czcionek niezainstalowanych w domyślnych katalogach systemu.

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

Współpraca kultury w przeglądarce Word

Właściwość DocumentCulture w klasie WordConfig umożliwia wyraźne określenie kultury dla plików DOC i DOCX. Zapewnia to, że lokalizowana zawartość — taka jak daty, waluty i liczby — jest renderowana dokładnie tak, jak w programie Microsoft Word. Jest to szczególnie przydatne w językach o specyficznych wymaganiach formatowania.

Ważna aktualizacja dla Doconut 25.2.0

Konieczne jest zaktualizowanie pakietu System.Text.Json do wersji 8.0.5 we wszystkich Twoich projektach. Ta aktualizacja jest niezbędna, aby zapewnić kompatybilność z najnowszymi funkcjami oraz wprowadzić ważne ulepszenia bezpieczeństwa.

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

Kodowanie e‑mail

Właściwość EmailEncoding w klasie EmailConfig określa preferowane kodowanie zarówno tematu, jak i treści e‑maila.

Usage
var emailConfig = new EmailConfig {
    SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
    BodyEncoding = Encoding.UTF8     // Set encoding for the body
};

Kodowanie tematu i treści

Właściwości SubjectEncoding i BodyEncoding w klasie EmailConfig definiują kodowanie używane odpowiednio dla tematu i treści e‑maila.

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)

Pobierz wymagane pliki CSS i JS

Aby Doconut działał prawidłowo, musisz dołączyć określone pliki CSS i JS do swojego projektu. Możesz pobrać plik ZIP zawierający wszystkie niezbędne pliki, korzystając z poniższego linku: