Skip to main content

IUriProviderService Interface

Represents a service that calls the registered IUriProvider interface when required.

Namespace: DevExpress.Office.Services

Assembly: DevExpress.Office.v23.2.Core.dll

NuGet Packages: DevExpress.Office.Core, DevExpress.Win.Navigation

Declaration

[ComVisible(true)]
public interface IUriProviderService

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.

View Example: Export to HTML - How to export only tag content and specify the location of CSS styles

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.

View Example: Retain the Original Image URI in an HTML Document

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;
        }
    }
See Also