与 Word 文档相比,图片格式的文件不需要安装 MS Word 就可以直接查看,便于在不同平台之间分享和预览文档内容。而且将 Word 文档转换为图片可以保护文档的原始外观,让文档不会因被他人编辑而破坏原有的排布等。本文将展示用 Spire.Doc for .NET 以编程的方式将 Word 文档转换为图片的操作方法。
安装 Spire.Doc for .NET
首先,您需要添加 Spire.Doc for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.Doc
将 Word 文档转换为 JPG 格式的图片
Spire.Doc for .NET 为大家提供了 Document.SaveToImages() 方法以将 Word 文档的页面分别转换为位图(Bitmap)或图元文件(Metafile)。之后,我们可以将位图或图元文件保存为 BMP、EMF、JPEG、PNG、GIF、WMF 等格式的图片。以下是将 Word 文档转换为 JPG 格式图片的操作步骤。
- 创建 Document 类的对象。
- 使用 Document.LoadFromFile() 方法载入 Word 文档。
- 使用 Document.SaveToImages() 将文档转换为位图集合。
- 在转换出的图片集合中循环,找到指定的图片并保存为 JPG 文件。
- C#
- VB.NET
using Spire.Doc;
using Spire.Doc.Documents;
using System;
using System.Drawing;
using System.Drawing.Imaging;
namespace ConvertWordToJPG
{
class Program
{
static void Main(string[] args)
{
//创建 Document 类的对象
Document doc = new Document();
//载入Word文档
doc.LoadFromFile(@"C:\示例.docx");
//将整个文档的页面分别转换为图片
Image[] images = doc.SaveToImages(ImageType.Bitmap);
//在转换出的图片集合中循环
for (int i = 0; i < images.Length; i++)
{
//将图片保存的JPG文件
string outputfile = String.Format("图片-{0}.jpg", i);
images[i].Save(outputfile, ImageFormat.Jpeg);
}
}
}
}
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Namespace ConvertWordToJPG
Class Program
Shared Sub Main(ByVal args() As String)
'创建 Document 类的对象
Dim doc As Document = New Document()
'载入Word文档
doc.LoadFromFile("C:\示例.docx")
'将整个文档的页面分别转换为图片
Dim images() As Image = doc.SaveToImages(ImageType.Bitmap)
'在转换出的图片集合中循环
Dim i As Integer
For i = 0 To images.Length - 1 Step i + 1
'将图片保存的JPG文件
Dim outputfile As String = String.Format("图片-{0}.jpg", i)
images(i).Save(outputfile, ImageFormat.Jpeg)
Next
End Sub
End Class
End Namespace
将 Word 文档转换为 SVG 格式的图片
你可以用 Spire.Doc for .NET 将 Word 文档保存为一系列字节数组(Byte Array),然后再将这些字节数组分别写入 SVG 文件。以下是将 Word 文档转换为 SVG 文件的操作步骤。
- 创建 Document 类的对象。
- 使用 Document.LoadFromFile() 方法载入 Word 文档。
- 使用 Document.SaveToSVG() 方法将文档保存为字节数组。
- 循环遍历所有字节数组并获取指定的字节数组。
- 将字节数组写入 SVG 文件。
- C#
- VB.NET
using Spire.Doc;
using System;
using System.Collections.Generic;
using System.IO;
namespace CovnertWordToSVG
{
class Program
{
static void Main(string[] args)
{
//创建 Document 类的对象
Document doc = new Document();
//载入Word文档
doc.LoadFromFile(@"C:\示例.docx");
//将文档保存为一系列字节数组
Queue<byte[]> svgBytes = doc.SaveToSVG();
//循环遍历所有字节数组
for (int i = 0; i < svgBytes.Count; i++)
{
//将数组写入SVG文件
byte[][] bytes = svgBytes.ToArray();
string outputfile = String.Format("图片-{0}.svg", i);
FileStream fs = new FileStream(outputfile, FileMode.Create);
fs.Write(bytes[i], 0, bytes[i].Length);
fs.Close();
}
}
}
}
Imports Spire.Doc
Imports System
Imports System.Collections.Generic
Imports System.IO
Namespace CovnertWordToSVG
Class Program
Shared Sub Main(ByVal args() As String)
'创建 Document 类的对象
Dim doc As Document = New Document()
'载入Word文档
doc.LoadFromFile("C:\示例.docx")
'将文档保存为一系列字节数组
Dim svgBytes()> As Queue<Byte = doc.SaveToSVG()
'循环遍历所有字节数组
Dim i As Integer
For i = 0 To svgBytes.Count - 1 Step i + 1
'将数组写入SVG文件
Dim bytes()() As Byte = svgBytes.ToArray()
Dim outputfile As String = String.Format("图片-{0}.svg", i)
Dim fs As FileStream = New FileStream(outputfile, FileMode.Create)
fs.Write(bytes(i), 0, bytes(i).Length)
fs.Close()
Next
End Sub
End Class
End Namespace
将 Word 文档转换为 PNG 图片并自定义分辨率
分辨率更高的图片能够将内容展示得更清楚,通过以下步骤,你可以在转换 Word 文档到 PNG 图片时,设置其分辨率。
- 创建 Document 类的对象。
- 使用 Document.LoadFromFile() 方法载入 Word 文档。
- 使用 Document.SaveToImages() 将文档转换为位图集合。
- 在位图集合中循环,获取指定的位图。
- 调用自定义的 ResetResolution() 方法重新设置图片的分辨率。
- 将位图保存为 PNG 图片。
- C#
- VB.NET
using Spire.Doc;
using System;
using System.Drawing;
using System.Drawing.Imaging;
using Spire.Doc.Documents;
namespace ConvertWordToPng
{
class Program
{
static void Main(string[] args)
{
//创建 Document 类的对象
Document doc = new Document();
//载入 Word 文档
doc.LoadFromFile(@"C:\示例.docx");
//将整个Word文档转换为位图集合
Image[] images = doc.SaveToImages(ImageType.Metafile);
//循环遍历位图集合中的位图
for (int i = 0; i < images.Length; i++)
{
//设置图片的分辨率
Image newimage = ResetResolution(images[i] as Metafile, 150);
//将图片保存为PNG文件
string outputfile = String.Format("图片-{0}.png", i);
newimage.Save(outputfile, ImageFormat.Png);
}
}
//设置图片分辨率
public static Image ResetResolution(Metafile mf, float resolution)
{
int width = (int)(mf.Width * resolution / mf.HorizontalResolution);
int height = (int)(mf.Height * resolution / mf.VerticalResolution);
Bitmap bmp = new Bitmap(width, height);
bmp.SetResolution(resolution, resolution);
using (Graphics g = Graphics.FromImage(bmp))
{
g.DrawImage(mf, Point.Empty);
}
return bmp;
}
}
}
Imports Spire.Doc
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Imports Spire.Doc.Documents
Namespace ConvertWordToPng
Class Program
Shared Sub Main(ByVal args() As String)
'创建 Document 类的对象
Dim doc As Document = New Document()
'载入 Word 文档
doc.LoadFromFile("C:\示例.docx")
'将整个Word文档转换为位图集合
Dim images() As Image = doc.SaveToImages(ImageType.Metafile)
'循环遍历位图集合中的位图
Dim i As Integer
For i = 0 To images.Length - 1 Step i + 1
'设置图片的分辨率
Dim Newimage As Image = ResetResolution(images(i) As Metafile, 150)
'将图片保存为PNG文件
Dim outputfile As String = String.Format("图片-{0}.png", i)
Newimage.Save(outputfile, ImageFormat.Png)
Next
End Sub
'设置图片分辨率
Public Shared Function ResetResolution(ByVal mf As Metafile, ByVal resolution As Single) As Image
Dim width As Integer = CType((mf.Width * resolution / mf.HorizontalResolution), Integer)
Dim height As Integer = CType((mf.Height * resolution / mf.VerticalResolution), Integer)
Dim bmp As Bitmap = New Bitmap(width, height)
bmp.SetResolution(resolution, resolution)
Imports (Graphics g = Graphics.FromImage(bmp))
{
g.DrawImage(mf, PoInteger.Empty)
}
Return bmp
End Function
End Class
End Namespace
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。