Konfiguracja w .NET Standard / Core

Plik Startup.cs

W pliku Startup.cs projektu .NET Core te linie kodu definiują konfigurację potoku middleware 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 argumentem.

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 instrukcje 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 utworzenie obiektu Viewer w Twoim kodzie.

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

Skonfiguruj obiekt DocOptions

Przykładowa inicjalizacja obiektu DocOptions z określonymi konfiguracjami:

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

Utwórz obiekt konfiguracyjny

Zainicjalizuj nowy obiekt PdfConfig z określonymi konfiguracjami do obsługi dokumentów PDF:

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

Otwórz dokument

Ta linia wywołuje metodę OpenDocument obiektu przeglądarki, 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 podgląd w swoim 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ą dołączone w pliku ZIP z przykładami kodu.

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>

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 przeglądarki.

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

Dodaj licencję za pomocą strumienia

Ta metoda używa przeciążenia Viewer.DoconutLicense(Stream licenseStream) do dodania licencji przy użyciu strumienia.

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

Dodaj licencję za pomocą dokumentu XML

Ta metoda używa przeciążenia Viewer.DoconutLicense(XMLDocument licence) do dodania licencji przy użyciu dokumentu XML.

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

Ręczne domyślne licencje wielu wtyczek

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

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 za pomocą strumienia

Ta metoda używa przeciążenia Viewer.SetLicensePlugin(Stream pluginLicence) do dodania licencji 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 za pomocą dokumentu XML

Ta metoda używa przeciążenia Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) do dodania licencji 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ść Twojego projektu z .NET Core Standard, należy uwzględnić następujące pakiety NuGet, wymienione w kolejności alfabetycznej.

  • MessagePack - Wersja 2.5.140
  • Microsoft.Bcl.AsyncInterfaces - Wersja 8.0.0
  • Microsoft.Extensions.Caching.Abstractions - Wersja 8.0.0
  • Microsoft.Extensions.Configuration - Wersja 8.0.0
  • Microsoft.Extensions.Configuration.Abstractions - Wersja 8.0.0
  • Microsoft.Extensions.Configuration.FileExtensions - Wersja 8.0.0
  • Microsoft.Extensions.Configuration.Json - Wersja 8.0.0
  • Microsoft.Extensions.FileProviders.Abstractions - Wersja 8.0.0
  • Microsoft.Extensions.FileProviders.Physical - Wersja 8.0.0
  • Microsoft.Extensions.FileSystemGlobbing - Wersja 8.0.0
  • Microsoft.Extensions.Primitives - Wersja 8.0.0
  • System.Buffers - Wersja 4.5.1
  • System.Formats.Asn1 - Wersja 8.0.0
  • System.Numerics.Vectors - Wersja 4.5.0
  • System.Security.Cryptography.Cng - Wersja 5.0.0
  • System.Security.Cryptography.Pkcs - Wersja 8.0.0
  • System.Text.Encoding.CodePages - Wersja 8.0.0
  • System.Text.Encodings.Web - Wersja 8.0.0
  • System.Text.Json - Wersja 8.0.3
  • System.Threading.Tasks.Extensions - Wersja 4.5.4

Opcje konfiguracji renderowania

Możesz skonfigurować zachowanie renderowania, używając następujących opcji:

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

Konfiguracja Opcji Renderowania

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

  • DefaultRender = true : Ta opcja oferuje renderowanie wyższej jakości, 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, i określ pozycję oraz 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 pomaluj 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 wyszukiwać czcionki. Jest to szczególnie przydatne przy przetwarzaniu dokumentów Word, które polegają na czcionkach niezainstalowanych w domyślnych katalogach czcionek systemu.

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

Ważna aktualizacja dla Doconut 25.2.0

Niezbędne jest zaktualizowanie pakietu System.Text.Json do wersji 8.0.5 we wszystkich projektach. Ta aktualizacja jest kluczowa, aby zapewnić kompatybilność z najnowszymi funkcjami oraz rozwiązać ważne poprawki bezpieczeństwa.

Kodowanie e-maila

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

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

Kodowanie tematu i treści

Właściwości SubjectEncoding i BodyEncoding w klasie EmailConfig określają kodowanie używane dla tematu i treści wiadomości e-mail, odpowiednio.

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

Obsługa kultury w przeglądarce Word

Właściwość DocumentCulture w klasie WordConfig pozwala wyraźnie określić kulturę dla plików DOC i DOCX. Zapewnia to, że treści lokalizowane — takie jak daty, waluty i liczby — są wyświetlane dokładnie tak, jak w programie Microsoft Word. Jest to szczególnie przydatne w przypadku języków wymagających określonych formatów.

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)