Как вставлять изображения в HTML-документ используя base64 на C# и .NET


Полный код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using SautinSoft;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            EmbedImages();
        }
        /// <summary>
        /// How to embed images inside HTML document using base64.
        /// </summary>
        static void EmbedImages()
        {
            // Here we'll convert to two HTML documents:
            // 1. HTML-document which have linked images.
            // 2. HTML-document with embedded images.

            string inpFile = @"..\..\..\example.docx";
            string htmlFileNonEmbeddedImg = Path.GetFullPath(@"NonEmbedded.html");
            string imgDir = Path.GetDirectoryName(htmlFileNonEmbeddedImg);

            string htmlFileEmbeddedImg = Path.GetFullPath(@"Embedded.html");

            RtfToHtml r = new RtfToHtml();


            // 1. Convert to HTML with linked images.
            RtfToHtml.HtmlFixedSaveOptions opt = new RtfToHtml.HtmlFixedSaveOptions()
            {
                ImagesDirectoryPath = Path.Combine(imgDir, "Result_images"),
                ImagesDirectorySrcPath = "Result_images",
                // Change to store images as physical files on local drive.
                EmbedImages = false,
                Title = "HTML with linked images."
            };
            try
            {
                r.Convert(inpFile, htmlFileNonEmbeddedImg, opt);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Conversion failed! {ex.Message}");
            }

            // 2. Convert to HTML with embedded images.
            opt.EmbedImages = true;
            opt.Title = "HTML with embedded images";
            try
            {
                r.Convert(inpFile, htmlFileEmbeddedImg, opt);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Conversion failed! {ex.Message}");
            }

            // Open the results.
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(htmlFileNonEmbeddedImg) { UseShellExecute = true });
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(htmlFileEmbeddedImg) { UseShellExecute = true });
        }
    }
}

Download

Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.IO
Imports SautinSoft

Namespace Example
    Friend Class Program
        Shared Sub Main(ByVal args() As String)
            EmbedImages()
        End Sub
        ''' <summary>
        ''' How to embed images inside HTML document using base64.
        ''' </summary>
        Private Shared Sub EmbedImages()
            ' Here we'll convert to two HTML documents:
            ' 1. HTML-document which have linked images.
            ' 2. HTML-document with embedded images.

            Dim inpFile As String = "..\..\..\example.docx"
            Dim htmlFileNonEmbeddedImg As String = Path.GetFullPath("NonEmbedded.html")
            Dim imgDir As String = Path.GetDirectoryName(htmlFileNonEmbeddedImg)

            Dim htmlFileEmbeddedImg As String = Path.GetFullPath("Embedded.html")

            Dim r As New RtfToHtml()


            ' 1. Convert to HTML with linked images.
            Dim opt As new RtfToHtml.HtmlFixedSaveOptions() With {
                .ImagesDirectoryPath = Path.Combine(imgDir, "Result_images"),
                .ImagesDirectorySrcPath = "Result_images",
                .EmbedImages = False,
                .Title = "HTML with linked images."
            }
            Try
                r.Convert(inpFile, htmlFileNonEmbeddedImg, opt)
            Catch ex As Exception
                Console.WriteLine($"Conversion failed! {ex.Message}")
            End Try

            ' 2. Convert to HTML with embedded images.
            opt.EmbedImages = True
            opt.Title = "HTML with embedded images"
            Try
                r.Convert(inpFile, htmlFileEmbeddedImg, opt)
            Catch ex As Exception
                Console.WriteLine($"Conversion failed! {ex.Message}")
            End Try

            ' Open the results.
            System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(htmlFileNonEmbeddedImg) With {.UseShellExecute = True})
            System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(htmlFileEmbeddedImg) With {.UseShellExecute = True})
        End Sub
    End Class
End Namespace

Download


Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу [email protected] или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже:



Вопросы и предложения всегда приветствуются!

Мы разрабатываем компоненты .Net с 2002 года. Мы знаем форматы PDF, DOCX, RTF, HTML, XLSX и Images. Если вам нужна помощь в создании, изменении или преобразовании документов в различных форматах, мы можем вам помочь. Мы напишем для вас любой пример кода абсолютно бесплатно.