Codecs: How to convert DOCX to SVG?
In This Topic
VintaSoft Imaging .NET SDK can render DOCX page in vector form and save vector content to a SVG file.
For executing code below it is necessary:
- VintaSoft Imaging .NET SDK (Vintasoft.Shared.dll; Vintasoft.Imaging.dll; Vintasoft.Imaging.Gdi.dll or Vintasoft.Imaging.Drawing.SkiaSharp.dll)
- VintaSoft Office .NET Plug-in (Vintasoft.Imaging.Office.OpenXml.dll)
- System.IO.Packaging nuget-package (nuget-package is used by Vintasoft.Imaging.Office.OpenXml.dll)
- System.Drawing.Common nuget-package (nuget-package is necessary if GDI+ should be used as the 2D drawing engine in VintaSoft Imaging .NET SDK) or
SkiaSharp nuget-package (nuget-package is necessary if SkiaSharp should be used as the 2D drawing engine in VintaSoft Imaging .NET SDK)
Here is C#/VB.NET code that shows how to convert DOCX document to a SVG file(s) using
ImageCollection and
SvgEncoder classes:
/// <summary>
/// Converts DOCX document to the SVG files using ImageCollection and SvgEncoder classes.
/// </summary>
public static void ConvertDocxToSvg(string docxFileName)
{
// specify that VintaSoft Imaging .NET SDK should use GDI+ for drawing of 2D graphics
Vintasoft.Imaging.Drawing.Gdi.GdiGraphicsFactory.SetAsDefault();
// specify that VintaSoft Imaging .NET SDK should use SkiaSharp for drawing of 2D graphics
//Vintasoft.Imaging.Drawing.SkiaSharp.SkiaSharpDrawingFactory.SetAsDefault();
// create image collection
using (Vintasoft.Imaging.ImageCollection images = new Vintasoft.Imaging.ImageCollection())
{
// add DOCX document to the image collection
images.Add(docxFileName);
// create SVG encoder
using (Vintasoft.Imaging.Codecs.Encoders.SvgEncoder svgEncoder =
new Vintasoft.Imaging.Codecs.Encoders.SvgEncoder())
{
// specify that SVG encoder should compress embedded image using PNG compression
svgEncoder.Settings.EmbeddedImageEncoder = new Vintasoft.Imaging.Codecs.Encoders.PngEncoder();
// for each page in DOCX document
for (int i = 0; i < images.Count; i++)
{
// save page to SVG file
images[i].Save(string.Format("page{0}.svg", i), svgEncoder);
}
}
// dispose images
images.ClearAndDisposeItems();
}
}
''' <summary>
''' Converts DOCX document to the SVG files using ImageCollection and SvgEncoder classes.
''' </summary>
Public Shared Sub ConvertDocxToSvg(docxFileName As String)
' specify that VintaSoft Imaging .NET SDK should use GDI+ for drawing of 2D graphics
Vintasoft.Imaging.Drawing.Gdi.GdiGraphicsFactory.SetAsDefault()
' specify that VintaSoft Imaging .NET SDK should use SkiaSharp for drawing of 2D graphics
'Vintasoft.Imaging.Drawing.SkiaSharp.SkiaSharpDrawingFactory.SetAsDefault()
' create image collection
Using images As New Vintasoft.Imaging.ImageCollection()
' add DOCX document to the image collection
images.Add(docxFileName)
' create SVG encoder
Using svgEncoder As New Vintasoft.Imaging.Codecs.Encoders.SvgEncoder()
' specify that SVG encoder should compress embedded image using PNG compression
svgEncoder.Settings.EmbeddedImageEncoder = New Vintasoft.Imaging.Codecs.Encoders.PngEncoder()
' for each page in DOCX document
For i As Integer = 0 To images.Count - 1
' save page to SVG file
images(i).Save(String.Format("page{0}.svg", i), svgEncoder)
Next
End Using
' dispose images
images.ClearAndDisposeItems()
End Using
End Sub