Как вставлять изображения в 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()
{
// Get your free 100-day key here:
// https://sautinsoft.com/start-for-free/
// If you need more information about "RTF to HTML .Net"
// Email us at: support@sautinsoft.com.
// 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 });
}
}
}
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.
' Get your free 100-day key here:
' https://sautinsoft.com/start-for-free/
' If you need more information about "RTF to HTML .Net"
' Email us at: support@sautinsoft.com.
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
Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.ru или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже: