博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# Word转为多种格式文件(Word转XPS/SVG/EMF/EPUB/TIFF)
阅读量:6083 次
发布时间:2019-06-20

本文共 5109 字,大约阅读时间需要 17 分钟。

一款有着强大的文档转换功能的工具,无论何时何地都会是现代办公环境极为需要的。在本篇文章中,将继续介绍关于Word文档的转换功能(Word转XPS/SVG/EMF/EPUB/TIFF)希望方法中的代码能为各位开发者们提供一定的参考价值。

PS:更多Word转换功能可以参阅这两篇文章

使用工具

使用方法:安装该控件后,在VS控制台应用程序中添加引用Spire.Doc.dll文件(dll文件可在该安装文件夹下Bin中获取)

1. Word转XPS

using Spire.Doc;using System;namespace WordtoXPS_Doc{    class Program    {        static void Main(string[] args)        {            //初始化String类,元素为需要转换的Word文档            String file = "sample.docx";            //创建一个Document类对象,加载sample文件            Document doc = new Document(file);            //将Word文件保存为XPS,并运行生成的文档            doc.SaveToFile("Word2XPS.xps", FileFormat.XPS);            System.Diagnostics.Process.Start("Word2XPS.xps");        }    }}

调试运行该项目生成文档,如下图:

2.  WordSVG

using Spire.Doc;namespace WordtoSVG_Doc{    class Program    {        static void Main(string[] args)        {            //实例化Document类,并加载Word sample            Document doc = new Document();            doc.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.docx");            //保存为svg格式            doc.SaveToFile("result.svg", FileFormat.SVG);        }    }}

3. WordEmf

using Spire.Doc;using System.Drawing;using System.Drawing.Imaging;namespace WordtoEmf_Doc{    class Program    {        static void Main(string[] args)        {            //实例化一个Document类,并加载Word sample            Document doc = new Document();            doc.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.docx", FileFormat.Docx);            //调用方法 SaveToImages()将Word第一页转为image并保存为Emf格式            System.Drawing.Image image = doc.SaveToImages(0, Spire.Doc.Documents.ImageType.Metafile);            image.Save("WordtoEmf.emf", ImageFormat.Emf);        }    }}

4.  WordEpub

using Spire.Doc;namespace WordtoEPUB{    class Epub    {        static void Main(string[] args)        {            //实例化Document类,并加载Word sample            Document document = new Document();            document.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.docx");            //保存为Epub格式,并运行生成的文档            document.SaveToFile("ToEpub.epub", FileFormat.EPub);            System.Diagnostics.Process.Start("ToEpub.epub");        }    }}

5. WordWord XML

using Spire.Doc;namespace WordtoWordXML_Doc{    class Program    {        static void Main(string[] args)        {            //创建一个Document类对象并加载Word sample            Document doc = new Document();            doc.LoadFromFile("sample.docx");            //调用方法SaveToFile()保存Word为Word Xml            doc.SaveToFile("WordToWordXML.xml", FileFormat.WordXml);        }    }}

6.   WordTiff

using Spire.Doc;using Spire.Doc.Documents;using System;using System.Drawing;using System.Drawing.Imaging;namespace convert_word_to_tiff{    class Program    {        static void Main(string[] args)        {            //实例化一个Document类,加载Word sample            Document document = new Document(@"C:\Users\Administrator\Desktop\sample.docx");            //调用方法JoinTiffImages()将Word保存为tiff格式,并运行生成的文档            JoinTiffImages(SaveAsImage(document), "result.tiff", EncoderValue.CompressionLZW);            System.Diagnostics.Process.Start("result.tiff");        }        //自定义方法SaveAsImage()将Word文档保存为图像        private static Image[] SaveAsImage(Document document)        {            Image[] images = document.SaveToImages(ImageType.Bitmap);            return images;        }        private static ImageCodecInfo GetEncoderInfo(string mimeType)        {            ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();            for (int j = 0; j < encoders.Length; j++)            {                if (encoders[j].MimeType == mimeType)                    return encoders[j];            }            throw new Exception(mimeType + " mime type not found in ImageCodecInfo");        }        //自定义方法JoinTiffImages()将Word保存为TIFF图片格式(使用指定编码器和图像编码参数)        public static void JoinTiffImages(Image[] images, string outFile, EncoderValue compressEncoder)        {                        System.Drawing.Imaging.Encoder enc = System.Drawing.Imaging.Encoder.SaveFlag;            EncoderParameters ep = new EncoderParameters(2);            ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);            ep.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.Compression, (long)compressEncoder);            Image pages = images[0];            int frame = 0;            ImageCodecInfo info = GetEncoderInfo("image/tiff");            foreach (Image img in images)            {                if (frame == 0)                {                    pages = img;                                       pages.Save(outFile, info, ep);                }                else                {                    ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);                    pages.SaveAdd(img, ep);                }                if (frame == images.Length - 1)                {                                        ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);                    pages.SaveAdd(ep);                }                frame++;            }        }    }}

以上是本次关于Word转成其他格式文件的具体描述,方法中的代码供参考。欢迎转载(转载请注明出处)

 

你可能感兴趣的文章
Linux-HA实战(3)— 基于Pacemaker搭建TFS Nameserver HA
查看>>
Java和H5前端区别
查看>>
hdu6049
查看>>
Java多线程系列目录
查看>>
冷门_可变参数方法
查看>>
powerdesigner 外键生成sql语句设置在创建表里面
查看>>
Android之Monkey全参数(包含隐藏参数)
查看>>
可变参数
查看>>
搭建LoadRunner中的场景(三)场景的执行计划
查看>>
[开源]KJFramework.Message 智能二进制消息框架 -- 对于数组的极致性优化
查看>>
Android SDK与ADT版本不匹配的解决
查看>>
ehcache缓存的简单使用
查看>>
tomcat内存溢出
查看>>
DFS Codeforces Round #290 (Div. 2) B. Fox And Two Dots
查看>>
POJ3581:Sequence——题解
查看>>
BZOJ4009 & 洛谷3242 & LOJ2113:[HNOI2015]接水果——题解
查看>>
用dom4j解析xml文件并执行增删改查操作
查看>>
Shell脚本排序总结
查看>>
C++ map<char *,int>
查看>>
在个人笔记本上安装centos6.8
查看>>