Nastavení v .NET 6 nebo vyšší
Soubor Startup.cs
V souboru Startup.cs projektu .NET Core definují tyto řádky kódu 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 argument.
app.MapWhen(
ctx => ctx.Request.Path.Value?.EndsWith("DocImage.axd", StringComparison.OrdinalIgnoreCase) == true,
branch => branch.UseDoconut());Přidat jmenné prostory Doconut
Ve svém projektu přidejte následující using direktivy:
using Doconut;
using Doconut.Configs;
using Doconut.Clouds;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.
// License is configured via AddDoconut; obtain the viewer from DI.
var docViewer = app.Services.GetRequiredService<Viewer>();Nastavit objekt DocOptions
Příklad inicializace objektu DocOptions se specifickými konfiguracemi:
```csharp
// Document opening options – password and session timeout
var docOptions = new DocOptions
{
Password = string.Empty,
TimeOut = 30
};
// Per‑format rendering options – set image resolution via the format‑specific config
var pdfConfig = new PdfConfig
{
ImageResolution = 200
};
```Nastavit konfigurační objekt
Inicializujte nový objekt PdfConfig se specifickými konfiguracemi pro zpracování PDF dokumentů:
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };Otevřít dokument
Tento řádek volá metodu OpenDocument objektu viewer, předává cestu k souboru dokumentu umístěnému na serveru a dříve nakonfigurované objekty PdfConfig a DocOptions jako parametry.
var token = await viewer.OpenDocumentAsync(path, new PdfConfig
{
AllowSearch = true,
AllowCopy = true,
ImageResolution = 150
});Přidat viewer do vašeho 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.
<!-- 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>Přidat licence do vašeho projektu
Automatická detekce licencí
Pro inicializaci docViewer s automatickou detekcí licencí použijte následující řádek:
app.MapPost("/api/open", async (Viewer viewer) =>
{
// The token is opaque — hand it to the widget, never log or persist it.
string token = await viewer.OpenDocumentAsync("wwwroot/files/Sample.pdf");
return Results.Ok(new { token });
});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.
builder.Services.AddDoconut(options =>
{
options.LicensePath = Path.Combine(AppContext.BaseDirectory, "wwwroot", "Doconut.Viewer.lic");
});Přidat licenci pomocí streamu
Tato metoda používá přetížení Viewer.DoconutLicense(Stream licenseStream) k přidání licence pomocí streamu.
builder.Services.AddDoconut(options =>
{
options.LicensePath = Path.Combine(AppContext.BaseDirectory, "wwwroot", "Doconut.Viewer.lic");
});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.
// License XML from a database, environment variable, or secret manager —
// no file on disk. Beaten only by LicenseStream.
builder.Services.AddDoconut(options =>
{
options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
});Ruční výchozí více plugin licencí
Pokud potřebujete specifikovat více licencí, můžete poskytnout seznam cest k souborům při inicializaci vieweru.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // session state needs a cache (MVC/Razor Pages already add one)
builder.Services.AddSession(); // Doconut document security rides on ASP.NET session state
app.UseSession(); // call UseSession() before UseDoconut()
app.UseDoconutResources(); // must be registered before UseDoconut()
app.UseDoconut();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.
using var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open);
builder.Services.AddDoconut(options =>
{
// The stream takes precedence over LicenseContent, LicensePath, and auto‑search.
options.LicenseStream = pluginLicenseStream;
});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.
builder.Services.AddDoconut(options =>
{
options.LicensePath = Path.Combine(AppContext.BaseDirectory, "wwwroot", "Doconut.Viewer.lic");
});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í.
var token = await viewer.OpenDocumentAsync(pathToFile, config, documentOptions);
// The annotation manager is automatically bound to the opened document's page dimensions.
using var annMgr = viewer.GetAnnotationManager(token);
var imgAnn = new ImageAnnotation(
1,
new Rectangle(600, 700, 750, 300),
"img/sample.png"
);
annMgr.Add(imgAnn);
viewer.LoadAnnotationData(token, annMgr);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.
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í fonty ve Word dokumentech
Vlastnost FontFolders ve třídě WordConfig určuje vlastní adresáře, kde bude aplikace hledat fonty. To je zvláště užitečné při zpracování Word dokumentů, které spoléhají na fonty nenainstalované ve výchozích systémových adresářích fontů.
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 pro předmět e-mailu, tak pro tělo.
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.
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í.
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)