zoukankan      html  css  js  c++  java
  • C# Word转为多种格式文件(Word转XPS/SVG/EMF/EPUB/TIFF)

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

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

    使用工具Free Spire.Doc for .NET

    使用方法下载安装该控件后,在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:UsersAdministratorDesktopsample.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:UsersAdministratorDesktopsample.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:UsersAdministratorDesktopsample.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:UsersAdministratorDesktopsample.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转成其他格式文件的具体描述,方法中的代码供参考。欢迎转载(转载请注明出处)

  • 相关阅读:
    重新想象 Windows 8 Store Apps (15) 控件 UI: 字体继承, Style, ControlTemplate, SystemResource, VisualState, VisualStateManager
    重新想象 Windows 8 Store Apps (12) 控件之 GridView 特性: 拖动项, 项尺寸可变, 分组显示
    返璞归真 asp.net mvc (10) asp.net mvc 4.0 新特性之 Web API
    与众不同 windows phone (29) Communication(通信)之与 OData 服务通信
    与众不同 windows phone (33) Communication(通信)之源特定组播 SSM(Source Specific Multicast)
    与众不同 windows phone (27) Feature(特性)之搜索的可扩展性, 程序的生命周期和页面的生命周期, 页面导航, 系统状态栏
    与众不同 windows phone (30) Communication(通信)之基于 Socket TCP 开发一个多人聊天室
    返璞归真 asp.net mvc (12) asp.net mvc 4.0 新特性之移动特性
    重新想象 Windows 8 Store Apps (2) 控件之按钮控件: Button, HyperlinkButton, RepeatButton, ToggleButton, RadioButton, CheckBox, ToggleSwitch
    重新想象 Windows 8 Store Apps (10) 控件之 ScrollViewer 特性: Chaining, Rail, Inertia, Snap, Zoom
  • 原文地址:https://www.cnblogs.com/Yesi/p/8484375.html
Copyright © 2011-2022 走看看