Configurazione in .NET Standard / Core
File Startup.cs
Nell file Startup.cs di un progetto .NET Core, queste righe di codice definiscono una configurazione della pipeline middleware utilizzando il metodo MapWhen. Il predicato fornito verifica se il percorso della richiesta in ingresso termina con DocImage.axd. All'interno di questo blocco, il metodo UseDoconut viene chiamato con un oggetto DoconutOptions come argomento.
app.MapWhen(
context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
appBranch =>
{
appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
}
);Aggiungi gli spazi dei nomi Doconut
Nel tuo progetto, aggiungi le seguenti istruzioni using:
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;Istanziare l'oggetto Viewer
Questa riga crea una nuova istanza della classe Viewer, permettendoti di creare un oggetto viewer nel tuo codice.
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);Imposta un oggetto DocOptions
Esempio di inizializzazione di un oggetto DocOptions con configurazioni specifiche:
var documentOptions = new DocOptions
{
Password = "",
ImageResolution = 200,
TimeOut = 30
};Imposta un oggetto di configurazione
Inizializza un nuovo oggetto PdfConfig con configurazioni specifiche per la gestione dei documenti PDF:
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };Apri il tuo documento
Questa riga invoca il metodo OpenDocument dell'oggetto viewer, passando il percorso del file del documento situato sul server e gli oggetti PdfConfig e DocOptions precedentemente configurati come parametri.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);Aggiungi il visualizzatore nel tuo HTML
<div id="div_ctlDoc"></div>Aggiungi file CSS e JavaScript
Aggiungi i seguenti file CSS e JavaScript nella pagina. Questi script sono inclusi nel file ZIP con esempi di codice.
<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>Aggiungi licenze al tuo progetto
Rilevamento automatico delle licenze
Per inizializzare il docViewer con il rilevamento automatico delle licenze, usa la riga seguente:
var docViewer = new Viewer(_cache, _accessor);Aggiungi licenza predefinita manuale
Puoi specificare manualmente il percorso di un singolo file di licenza predefinita durante l'inizializzazione del visualizzatore.
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);Aggiungi licenza tramite stream
Questo metodo utilizza il sovraccarico Viewer.DoconutLicense(Stream licenseStream) per aggiungere una licenza usando uno stream.
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
Viewer.DoconutLicense(licenseStream);
}Aggiungi licenza tramite documento XML
Questo metodo utilizza il sovraccarico Viewer.DoconutLicense(XMLDocument licence) per aggiungere una licenza usando un documento XML.
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);Licenze plugin multiple predefinite manuali
Se hai bisogno di specificare più licenze, puoi fornire un elenco di percorsi file all'inizializzazione del visualizzatore.
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);Aggiungi licenza plugin tramite stream
Questo metodo utilizza il sovraccarico Viewer.SetLicensePlugin(Stream pluginLicence) per aggiungere una licenza plugin usando uno stream.
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
Viewer.SetLicensePlugin(pluginLicenseStream);
}Aggiungi licenza plugin tramite documento XML
Questo metodo utilizza il sovraccarico Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) per aggiungere una licenza plugin usando un documento XML.
var pluginXmlDoc = new XmlDocument();
pluginXmlDoc.Load("path/to/your/plugin-license.xml");
Viewer.SetLicensePlugin(pluginXmlDoc);Pacchetti NuGet richiesti
Per garantire che il tuo progetto sia pienamente compatibile con .NET Core Standard, è necessario includere i seguenti pacchetti NuGet, elencati in ordine alfabetico.
- MessagePack - Versione 2.5.140
- Microsoft.Bcl.AsyncInterfaces - Versione 8.0.0
- Microsoft.Extensions.Caching.Abstractions - Versione 8.0.0
- Microsoft.Extensions.Configuration - Versione 8.0.0
- Microsoft.Extensions.Configuration.Abstractions - Versione 8.0.0
- Microsoft.Extensions.Configuration.FileExtensions - Versione 8.0.0
- Microsoft.Extensions.Configuration.Json - Versione 8.0.0
- Microsoft.Extensions.FileProviders.Abstractions - Versione 8.0.0
- Microsoft.Extensions.FileProviders.Physical - Versione 8.0.0
- Microsoft.Extensions.FileSystemGlobbing - Versione 8.0.0
- Microsoft.Extensions.Primitives - Versione 8.0.0
- System.Buffers - Versione 4.5.1
- System.Formats.Asn1 - Versione 8.0.0
- System.Numerics.Vectors - Versione 4.5.0
- System.Security.Cryptography.Cng - Versione 5.0.0
- System.Security.Cryptography.Pkcs - Versione 8.0.0
- System.Text.Encoding.CodePages - Versione 8.0.0
- System.Text.Encodings.Web - Versione 8.0.0
- System.Text.Json - Versione 8.0.3
- System.Threading.Tasks.Extensions - Versione 4.5.4
Opzioni di Configurazione del Rendering
È possibile configurare il comportamento del rendering utilizzando le seguenti opzioni:
- CadConfig: Usato per file DWG, DXF e DGN.
- EmailConfig: Usato per file EML, EMLX e MSG.
- EpubConfig: Usato per file EPUB.
- ExcelConfig: Usato per file Excel e CSV.
- MhtConfig: Usato per file MHT.
- PptConfig: Usato per file PowerPoint.
- ProjectConfig: Usato per file MPP.
- PsdConfig: Usato per file PSD.
- TxtConfig: Usato per file TXT.
- TiffConfig: Usato per file TIFF.
Configurazione delle opzioni di rendering
Le opzioni di rendering sono configurate usando la proprietà DefaultRender:
- DefaultRender = true : Questa opzione offre un rendering di qualità superiore ma utilizza più memoria del server e più tempo di elaborazione.
- DefaultRender = false : Questa opzione fornisce un rendering più veloce a scapito di una leggera riduzione della qualità.
Come aggiungere un'annotazione immagine
In C#
1. Apri il documento e ottieni le dimensioni della prima pagina. 2. Inizializza l'AnnotationManager con le dimensioni della pagina. 3. Crea un'ImageAnnotation, impostando il percorso dell'immagine in imgUrl, e specifica la posizione e le dimensioni all'interno di Rectangle. 4. Aggiungi l'annotazione al manager e caricala nel visualizzatore di documenti per visualizzarla.
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());
}In JavaScript
1. Assicurati che YourController sia disponibile. 2. Crea una nuova ImageAnnotation, impostando il percorso dell'immagine con SetNote. 3. Aggiungi e dipingi l'annotazione per renderla sul documento.
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();
}
}Font personalizzati nei documenti Word
La proprietà FontFolders nella classe WordConfig specifica directory personalizzate dove l'applicazione cercherà i font. Questo è particolarmente utile per l'elaborazione di documenti Word che dipendono da font non installati nelle directory di font predefinite del sistema.
var config = new WordConfig
{
FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};Aggiornamento importante per Doconut 25.2.0
È essenziale aggiornare il pacchetto System.Text.Json alla versione 8.0.5 in tutti i tuoi progetti. Questo aggiornamento è fondamentale per garantire la compatibilità con le ultime funzionalità e per affrontare importanti miglioramenti della sicurezza.
Codifica Email
La proprietà EmailEncoding nella classe EmailConfig specifica la codifica preferita sia per l'oggetto che per il corpo dell'email.
var emailConfig = new EmailConfig {
EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};Codifica dell'oggetto e del corpo
Le proprietà SubjectEncoding e BodyEncoding nella classe EmailConfig definiscono la codifica utilizzata per l'oggetto e il corpo di un'email, rispettivamente.
var emailConfig = new EmailConfig {
SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
BodyEncoding = Encoding.UTF8 // Set encoding for the body
};Supporto alla cultura del visualizzatore Word
La proprietà DocumentCulture nella classe WordConfig consente di definire esplicitamente la cultura per i file DOC e DOCX. Ciò garantisce che i contenuti localizzati — come date, valute e numeri — vengano visualizzati esattamente come avviene in Microsoft Word. Questo è particolarmente utile per le lingue con requisiti di formattazione specifici.
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)