IUriProviderService Interface
Represents a service that calls the registered IUriProvider interface when required.
Namespace: DevExpress.Office.Services
Assembly: DevExpress.Office.v24.2.Core.dll
NuGet Package: DevExpress.Office.Core
#Declaration
#Remarks
Create a class that implements the IUriProvider interface to enable specify custom locations for exported images and styles. Call the IUriProviderService.RegisterProvider method to register the target service.
#Example
This example demonstrates how to use the DocumentImage.Uri property to set the image’s src attribute when a document is saved in HTML format. You can switch on the HtmlDocumentExporterOptions.EmbedImages option to observe that the custom URI provider is idle for embedded images.
using DevExpress.Office.Services;
using DevExpress.XtraRichEdit.API.Native;
using DevExpress.XtraRichEdit.Export;
using System;
// ...
private void richEditControl1_DocumentLoaded(object sender, EventArgs e)
{
IUriProviderService service = richEditControl1.GetService<IUriProviderService>();
if (service != null) {
service.RegisterProvider(new CustomUriProvider());
}
}
private void richEditControl1_ContentChanged(object sender, EventArgs e)
{
ReloadHtml();
}
private void ReloadHtml()
{
HtmlDocumentExporterOptions exportOptions = new HtmlDocumentExporterOptions();
exportOptions.EmbedImages = embedImagesCheck.Checked;
string sText = richEditControl1.Document.GetHtmlText(richEditControl1.Document.Range, new CustomUriProvider(), exportOptions);
memoEdit1.Text = sText;
}
using DevExpress.Office.Services;
using DevExpress.Office.Utils;
using System;
// ...
public class CustomUriProvider : IUriProvider
{
public string CreateCssUri(string rootUri, string styleText, string relativeUri)
{
return String.Empty;
}
public string CreateImageUri(string rootUri, OfficeImage image, string relativeUri)
{
return image.Uri;
}
}