Pengaturan di .NET 6 atau Lebih Tinggi
File Startup.cs
Dalam file Startup.cs dari proyek .NET Core, baris kode ini mendefinisikan konfigurasi pipeline middleware menggunakan metode MapWhen. Predikat yang diberikan memeriksa apakah jalur permintaan yang masuk berakhir dengan DocImage.axd. Di dalam blok ini, metode UseDoconut dipanggang dengan objek DoconutOptions sebagai argumen.
app.MapWhen(
context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
appBranch =>
{
appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
}
);Tambahkan Namespace Doconut
Di proyek Anda, tambahkan pernyataan using berikut:
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;Instansiasi objek Viewer
Baris ini membuat instance baru dari kelas Viewer, memungkinkan Anda membuat objek viewer dalam kode Anda.
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);Siapkan objek DocOptions
Contoh inisialisasi objek DocOptions dengan konfigurasi spesifik:
var documentOptions = new DocOptions
{
Password = "",
ImageResolution = 200,
TimeOut = 30
};Siapkan objek config
Inisialisasi objek PdfConfig baru dengan konfigurasi spesifik untuk menangani dokumen PDF:
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };Buka dokumen Anda
Baris ini memanggil metode OpenDocument dari objek viewer, dengan memberikan jalur file dokumen yang terletak di server serta objek PdfConfig dan DocOptions yang telah dikonfigurasi sebelumnya sebagai parameter.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);Tambahkan viewer di HTML Anda
<div id="div_ctlDoc"></div>Tambahkan file CSS dan JavaScript
Tambahkan file CSS dan JavaScript berikut ke dalam halaman. Skrip-skrip ini termasuk dalam file ZIP dengan contoh kode.
<!-- 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>Tambahkan Lisensi ke Proyek Anda
Deteksi Lisensi Otomatis
Untuk menginisialisasi docViewer dengan deteksi lisensi otomatis, gunakan baris berikut:
var docViewer = new Viewer(_cache, _accessor);Tambahkan Lisensi Default Manual
Anda dapat secara manual menentukan jalur ke satu file lisensi default saat menginisialisasi viewer.
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);Tambahkan Lisensi lewat Stream
Metode ini menggunakan overload Viewer.DoconutLicense(Stream licenseStream) untuk menambahkan lisensi menggunakan stream.
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
Viewer.DoconutLicense(licenseStream);
}Tambahkan Lisensi lewat Dokumen XML
Metode ini menggunakan overload Viewer.DoconutLicense(XMLDocument licence) untuk menambahkan lisensi menggunakan dokumen XML.
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);Lisensi Plugin Default Ganda Manual
Jika Anda perlu menentukan beberapa lisensi, Anda dapat menyediakan daftar jalur file ke inisialisasi viewer.
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);Tambahkan Lisensi Plugin lewat Stream
Metode ini menggunakan overload Viewer.SetLicensePlugin(Stream pluginLicence) untuk menambahkan lisensi plugin menggunakan stream.
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
Viewer.SetLicensePlugin(pluginLicenseStream);
}Tambahkan Lisensi Plugin lewat Dokumen XML
Metode ini menggunakan overload Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) untuk menambahkan lisensi plugin menggunakan dokumen XML.
var pluginXmlDoc = new XmlDocument();
pluginXmlDoc.Load("path/to/your/plugin-license.xml");
Viewer.SetLicensePlugin(pluginXmlDoc);Paket NuGet yang Diperlukan
Untuk memastikan proyek Anda sepenuhnya kompatibel dengan .NET Core Standard, paket NuGet berikut perlu dimasukkan, diurutkan secara alfabetis.
- 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
Opsi Konfigurasi Render
Anda dapat mengkonfigurasi perilaku rendering menggunakan opsi berikut:
- CadConfig: Digunakan untuk file DWG, DXF, dan DGN.
- EmailConfig: Digunakan untuk file EML, EMLX, dan MSG.
- EpubConfig: Digunakan untuk file EPUB.
- ExcelConfig: Digunakan untuk file Excel dan CSV.
- MhtConfig: Digunakan untuk file MHT.
- PptConfig: Digunakan untuk file PowerPoint.
- ProjectConfig: Digunakan untuk file MPP.
- PsdConfig: Digunakan untuk file PSD.
- TxtConfig: Digunakan untuk file TXT.
- TiffConfig: Digunakan untuk file TIFF.
Konfigurasi Opsi Render
Opsi render dikonfigurasi menggunakan properti DefaultRender:
- DefaultRender = true : Opsi ini menawarkan rendering dengan kualitas lebih tinggi tetapi menggunakan lebih banyak memori server dan waktu pemrosesan.
- DefaultRender = false : Opsi ini memberikan rendering lebih cepat dengan mengorbankan kualitas yang sedikit berkurang.
Cara Menambahkan Anotasi Gambar
Dalam C#
1. Buka dokumen dan dapatkan dimensi halaman pertama. 2. Inisialisasi AnnotationManager dengan dimensi halaman. 3. Buat ImageAnnotation, mengatur jalur gambar di imgUrl, dan tentukan posisi serta ukuran dalam Rectangle. 4. Tambahkan anotasi ke manager dan muat dalam document viewer untuk menampilkannya.
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());
}Dalam JavaScript
1. Pastikan YourController tersedia. 2. Buat ImageAnnotation baru, mengatur jalur gambar dengan SetNote. 3. Tambahkan dan gambar anotasi untuk merendernya pada dokumen.
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 Kustom dalam dokumen Word
Properti FontFolders dalam kelas WordConfig menentukan direktori khusus tempat aplikasi akan mencari font. Ini sangat berguna untuk memproses dokumen Word yang bergantung pada font yang tidak terpasang di direktori font default sistem.
var config = new WordConfig
{
FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};Pembaruan Penting untuk Doconut 25.2.0
Sangat penting untuk memperbarui paket System.Text.Json ke versi 8.0.5 di semua proyek Anda. Pembaruan ini penting untuk memastikan kompatibilitas dengan fitur terbaru dan mengatasi perbaikan keamanan penting.
Pengkodean Email
Properti EmailEncoding dalam kelas EmailConfig menentukan pengkodean yang diinginkan untuk subjek dan isi email.
var emailConfig = new EmailConfig {
EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};Pengkodean Subjek & Isi
Properti SubjectEncoding dan BodyEncoding dalam kelas EmailConfig mendefinisikan pengkodean yang digunakan untuk subjek dan isi email, masing-masing.
var emailConfig = new EmailConfig {
SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
BodyEncoding = Encoding.UTF8 // Set encoding for the body
};Dukungan Budaya Penampil Word
Properti DocumentCulture dalam kelas WordConfig memungkinkan Anda secara eksplisit menentukan budaya untuk file DOC dan DOCX. Hal ini memastikan bahwa konten terlokalisasi—seperti tanggal, mata uang, dan angka—ditampilkan persis seperti di Microsoft Word. Ini sangat berguna untuk bahasa dengan persyaratan format khusus.
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)Unduh File CSS dan JS yang Diperlukan
Untuk memastikan Doconut berfungsi dengan baik, Anda perlu menyertakan file CSS dan JS tertentu dalam proyek Anda. Anda dapat mengunduh file ZIP yang berisi semua file yang diperlukan menggunakan tautan di bawah ini: