Nastavení v .NET Standard / Core

Soubor Startup.cs

V souboru Startup.cs projektu .NET Core tyto řádky kódu definují konfiguraci middleware pipeline pomocí metody MapWhen. Poskytnutý predikát kontroluje, zda cesta příchozího požadavku končí na DocImage.axd. Uvnitř tohoto bloku je volána metoda UseDoconut s objektem DoconutOptions jako argumentem.

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

Přidat jmenné prostory Doconut

Ve svém projektu přidejte následující using direktivy:

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

// TODO: implement licence loading, viewer registration, document opening, conversion using current API

Vytvořit instanci objektu Viewer

Tento řádek vytvoří novou instanci třídy Viewer, což vám umožní vytvořit objekt viewer ve vašem kódu.

Instantiation
// Viewer is injected; no explicit construction required in Doconut.NETStandard 26.9.0

Nastavit objekt DocOptions

Příklad inicializace objektu DocOptions s konkrétními konfiguracemi:

DocOptions
var documentOptions = new DocOptions
{
    Password = "",
    // ImageResolution is obsolete; omitted.
    TimeOut = 30
};

Nastavit konfigurační objekt

Inicializujte nový objekt PdfConfig s konkrétními konfiguracemi pro zpracování PDF dokumentů:

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

Otevřít dokument

Tento řádek volá metodu OpenDocument objektu viewer a předává cestu k souboru dokumentu umístěnému na serveru a dříve nakonfigurované objekty PdfConfig a DocOptions jako parametry.

OpenDocument
dynamic viewer = null;
var token = viewer.LoadDocument(path, null, null);

Přidat viewer do vašeho HTML

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

Přidat soubory CSS a JavaScript

Přidejte následující soubory CSS a JavaScript na stránku. Tyto skripty jsou zahrnuty v ZIP souboru s ukázkovým kódem.

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>

Přidat licence do vašeho projektu

Automatická detekce licencí

Pro inicializaci docViewer s automatickou detekcí licencí použijte následující řádek:

C#
```csharp
// Create a Viewer instance using the current API (no constructor arguments required).
var docViewer = new Viewer();
```

Přidat výchozí licenci ručně

Můžete ručně zadat cestu k jedinému výchozímu licenčnímu souboru při inicializaci vieweru.

C#
using System.IO;
using Microsoft.Extensions.DependencyInjection;
using Doconut;

var licenseFilePath = Path.Combine(builder.Environment.WebRootPath, "path/to/your/license");
var docViewer = app.Services.GetRequiredService<Viewer>();

Přidat licenci pomocí streamu

Tato metoda používá přetížení Viewer.DoconutLicense(Stream licenseStream) k přidání licence pomocí streamu.

C#
using System.IO;
using Doconut.Infrastructure.Licensing;

using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open, FileAccess.Read))
{
    var license = new DoconutLicense { DocBytes = new BinaryReader(licenseStream).ReadBytes((int)licenseStream.Length) };
}

Přidat licenci pomocí XML dokumentu

Tato metoda používá přetížení Viewer.DoconutLicense(XMLDocument licence) k přidání licence pomocí XML dokumentu.

C#
using System.Xml;
using Doconut.Infrastructure.Licensing;

var xmlDoc = new XmlDocument(); // load the license XML
xmlDoc.Load("path/to/your/license.xml");
var license = new DoconutLicense(); // instantiate license object (populate properties as needed)

Ruční výchozí více plugin licencí

Pokud potřebujete zadat více licencí, můžete poskytnout seznam cest k souborům při inicializaci vieweru.

C#
```csharp
// Prepare the paths to the viewer licence files (kept for reference; the current API loads them automatically)
var 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")
};

// The Viewer class no longer requires the licences in its constructor.
// Create an instance with the default constructor.
var docViewer = new Viewer();

// Open a document (e.g., a PDF) and obtain a token that represents the opened file.
string token = await docViewer.OpenDocumentAsync(
    filePath: Path.Combine(_hostingEnvironment.WebRootPath, "sample.pdf"),
    options: new DocOptions(),
    ct: CancellationToken.None);
```

Přidat plugin licenci pomocí streamu

Tato metoda používá přetížení Viewer.SetLicensePlugin(Stream pluginLicence) k přidání plugin licence pomocí streamu.

C#
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
    // In Doconut.NETStandard 26.9.0 the license is supplied via the configuration
    // passed to OpenDocumentAsync (BaseConfig), so the explicit SetLicensePlugin call
    // is no longer required. Keep the license file accessible to the viewer or
    // include it in your BaseConfig as shown in other samples.
}

Přidat plugin licenci pomocí XML dokumentu

Tato metoda používá přetížení Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) k přidání plugin licence pomocí XML dokumentu.

C#
// The license XML is discovered automatically by the viewer in Doconut.NETStandard 26.9.0.
// No explicit API call is required to register it.

string token = await Viewer.OpenDocumentAsync(
    "path/to/your/document.pdf",
    null, // DocOptions – use default settings
    CancellationToken.None);

Požadované NuGet balíčky

Aby byl váš projekt plně kompatibilní s .NET Core Standard, je třeba zahrnout následující NuGet balíčky, uvedené v abecedním pořadí.

  • 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

Možnosti konfigurace renderování

Můžete konfigurovat chování renderování pomocí následujících možností:

  • CadConfig: Používá se pro soubory DWG, DXF a DGN.
  • EmailConfig: Používá se pro soubory EML, EMLX a MSG.
  • EpubConfig: Používá se pro soubory EPUB.
  • ExcelConfig: Používá se pro soubory Excel a CSV.
  • MhtConfig: Používá se pro soubory MHT.
  • PptConfig: Používá se pro soubory PowerPoint.
  • ProjectConfig: Používá se pro soubory MPP.
  • PsdConfig: Používá se pro soubory PSD.
  • TxtConfig: Používá se pro soubory TXT.
  • TiffConfig: Používá se pro soubory TIFF.

Konfigurace možností renderování

Možnosti renderování jsou konfigurovány pomocí vlastnosti DefaultRender:

  • DefaultRender = true : Tato možnost nabízí vyšší kvalitu renderování, ale používá více paměti serveru a času na zpracování.
  • DefaultRender = false : Tato možnost poskytuje rychlejší renderování na úkor mírně snížené kvality.

Jak přidat obrázkovou anotaci

V C#

1. Otevřete dokument a získejte rozměry první stránky. 2. Inicializujte AnnotationManager s rozměry stránky. 3. Vytvořte ImageAnnotation, nastavte cestu k obrázku v imgUrl a určete pozici a velikost v Rectangle. 4. Přidejte anotaci do manageru a načtěte ji v prohlížeči dokumentu pro zobrazení.

C#
using Doconut.Annotations;
using System.Drawing;

// Placeholder: open the document and obtain page dimensions using the current Doconut.NETStandard API.
// Placeholder: create an annotation manager for the page size.

string imgUrl = "img/sample.png";
var imgAnn = new ImageAnnotation(
    1,
    new Rectangle(600, 700, 750, 300),
    imgUrl
);

// Placeholder: add the annotation to the manager and load the annotation XML back into the viewer using the current API.

V JavaScriptu

1. Ujistěte se, že YourController je dostupný. 2. Vytvořte novou ImageAnnotation, nastavte cestu k obrázku pomocí SetNote. 3. Přidejte a vykreslete anotaci, aby se zobrazila v dokumentu.

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

Vlastní písma ve Word dokumentech

Vlastnost FontFolders ve třídě WordConfig určuje vlastní adresáře, kde bude aplikace hledat písma. To je zvláště užitečné při zpracování Word dokumentů, které spoléhají na písma nenainstalovaná ve výchozích systémových adresářích písem.

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

Důležitá aktualizace pro Doconut 25.2.0

Je nezbytné aktualizovat balíček System.Text.Json na verzi 8.0.5 ve všech vašich projektech. Tato aktualizace je klíčová pro zajištění kompatibility s nejnovějšími funkcemi a pro řešení důležitých bezpečnostních vylepšení.

Kódování e‑mailu

Vlastnost EmailEncoding ve třídě EmailConfig určuje preferované kódování jak předmětu, tak těla e‑mailu.

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

Kódování předmětu a těla

Vlastnosti SubjectEncoding a BodyEncoding ve třídě EmailConfig definují kódování použité pro předmět a tělo e‑mailu, respektive.

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

Podpora kultury pro Word Viewer

Vlastnost DocumentCulture ve třídě WordConfig vám umožňuje explicitně definovat kulturu pro soubory DOC a DOCX. To zajišťuje, že lokalizovaný obsah — například data, měny a čísla — se zobrazí přesně tak, jak je v Microsoft Wordu. To je zvláště užitečné pro jazyky s konkrétními požadavky na formátování.

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)