使用Spire.Doc来转换文本

前段时间,我为不熟悉这个产品的读者们写了一篇关于我对 Spire.Doc的初识印象。Spire.Doc是一个专业的Word .NET库,它是专门为开发人员设计的用来快捷高效地在任何.NET(C#,VB.NET,ASP.NET)创建,载入,编辑,转化,打印 Word文档的。作为一个独立的Word .NET组件,Spire.Doc for .NET不需要您在机器上安装 MicrosoftWord。但是它可以将Microsoft Word 文件创造力与在任何开发者的应用合为一体。

背景

这篇文章的目的是为了展示并且评论Spire.Doc在文件格式转换中的能力。很久以前开发人员就不必在服务器上安装 MicrosoftOffice才能处理文件了。首先,这种设计和实现很糟糕。再次,微软从来不打算将Microsoft Offic作为服务器组件并且在设计之初并不是为了在服务器端用来诠释和处理文档的。这就孕育出用像Spire.Doc这样函数库的想法。

当我们谈论到这里时,不得不提到 Office Open Xml。 Office OpenXml(非官方也叫做OOXML或OpenXML)是微软开发的用于表现数据表格,图表,演示模板和处理word文件的一个基于XML的压缩文件格式。微软通过欧洲计算机制造商协会在2005年11月份对外宣称他们将联合标准化新版基于XML的格式,这就是“Office Open XML”。 Open Xml 的介绍对于Office文件结构给出了更多标准,开发者在此之下使用Open Xml SDK 可以直接完成许多基本操作,但是将word文档转化成其他不同格式像PDF,图像或者HTML等等还是有很多的困难。这就是为什么说像 Spire.Doc 这类的函数库解救了我们“开发者们”。

文本转换

我将在文章剩下的篇幅介绍可以使用Spire.Doc的不同情况。抓换的示例都可以自行在Spire.DocDemo Live Demo中实现。我要展示的工程是一个简单的控制台程序但是Spire.Doc也支持像Web和Silverlight 的其他平台。

以下是Spire.Doc自己的说法,下面我们看它的具体表现。

“Spire.Doc for .NET enables converting Word documents tomost common and popular formats.”

首先我们要用Spire.Doc的话就要先将它的库引用添加至你的工程文件中,Spire.License 和Spire.Pdf是打包在Spire.Doc组件中的。

你的Spire.Doc license必须有效否则在文档中会出现评估警告。设置license只要提供license文件的地址路径,然后函数库会自动应用确认license信息。其它的加载license方法还有从本地动态检索出license或者将它添加为嵌入资源。具体文件操作点击这里

 FileInfo licenseFile = new FileInfo(@"C:\ManasBhardwaj\license.lic");
 Spire.License.LicenseProvider.SetLicenseFile(licenseFile);

为了证实他基本的功能,我用一个有简单文字的word文本,一个有图像的,还有一个有表格的来演示。看上去是下图样子,你可以在Spire.Doc Demo上找到原始的演示文本。

这个库的关键当然是Document 类。所以我们从创建Document  object并 从文件中加载文档信息开始。Document  object的简便性在于仅仅使用三行代码,我们就可以将一个相当复杂的像本篇有很多元素的word文档转化为完全不同的文档,这在是HTML格式。

//Create word document
Document document = new Document();
document.LoadFromFile(@"This is a Test Document.docx");

转化成Html

//Convert the file to HTML format
document.SaveToFile("Test.html", FileFormat.Html);

所以,到现在为止我们应该已经有了要用于转化的文档了。我们来看下他在后台是怎样做到的。你要观察新生成的有附加文件和文件夹的HTML文件的生成过程。这些文件和文件夹是用来保存哪些将出现在你的word文档中的添加信息的。在这篇示例中,文件夹包括我们所添加到文本的测试图片以及存储表格格式的表单。这样一来,不仅仅确保我们的数据被转化并且保留了添加信息,例如样式的完整。

样式表单如下图

单单一个参数的不同也可能会导致文本到其他文件的转换像PDF出现失误。我欣赏它的是在一个framework 中我们就可以不用附加样式构图而转换成其他不同格式的文件。

注意它是在内存中完成,因此你不用接触文件系统授权什么的。我记得以前在做工程的时候我们想转换文件结果数据是从组件转到pdf了但是无法跨格式保留原文件的布局。

转化成Pdf

//Convert the file to PDF
document.SaveToFile("Test.Pdf", FileFormat.PDF);

几行代码你就能看到下面显示的PDF文件。license 警告是因为我用的是试用版本。如果你有授权license 文件,它就会消失。

转化成Xml

 

FileFormat 类向我们显示它最多支持24中不同格式。我最喜欢的是Xml。它拓展了我们可以对文档数据的操作。举个例子,你可以通过编辑word

文档然后在未处理文件中生成Xml文件。

//Convert the file to Xml
document.SaveToFile("Test.Xml", FileFormat.Xml);

转化成图片

把文档转换成图片会怎么样呢? Spire.Doc 支持文档到图片的转化类,用它可以在 .Net framework中保存任何它所支持的图片格式。

//Save image file.
Image image = document.SaveToImages(, ImageType.Metafile);
image.Save("Test.tif", System.Drawing.Imaging.ImageFormat.Tiff);

结论

Spire.Doc 是一个在word文档转换成其他文件格式时功能强大并且使用简单产品。如果你用下生成数据表的功能你会发现更好用。作为第三方软件,总有一种事情的多种做法。衡量利弊购买一个license不失为一个好选择。从功能和价格方面考虑,对比市面上同类产品价格其实还好。真正物有所值才重要。

使用Spire.Doc来转换文本的更多相关文章

  1. 【好文翻译】一步一步教你使用Spire.Doc转换Word文档格式

    背景: 年11月,微软宣布作为ECMA国际主要合作伙伴,将其开发的基于XML的文件格式标准化,称之为"Office Open XML" .Open XML的引进使office文档结 ...

  2. [.NET] 开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc

    开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc [博主]反骨仔 [原文地址]http://www.cnblogs.com/li ...

  3. SPIRE.DOC - .NET开发者的福利

    SPIRE.DOC - .NET开发者的福利 前面我们使用过Spire.XLS for .NET Component创建Excel文件.最近试用了下.DOC 方面的API.这次测试的产品是.通过使用S ...

  4. Spire.Doc组件读取与写入Word

    之前写了一篇开源组件DocX读写word的文章,当时时间比较匆忙选了这个组件,使用过程中还是有些不便,不能提前定义好模版,插入Form表单域进行替换.最近无意中发现Spire.Doc组件功能很强大,目 ...

  5. 开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc (转)

      [原文地址]http://www.cnblogs.com/liqingwen/p/5898368.html 序 本打算过几天简单介绍下组件 Spire.XLS,突然发现园友率先发布了一篇,既然 x ...

  6. Spire.Doc 生成pdf业务运营报告

    需求:每天向全国各运营大区钉钉运营群定时发送pdf业务运营报告: 通过对各Office操作组件对比,选择Spire.Doc.它专门为开发人员进行创建,读取,写入.转换打印 word 文档文件提供便利, ...

  7. 【产品对比】Word开发工具Aspose.Words和Spire.Doc性能和优劣对比一览

    转:evget.com/article/2018/4/3/27885.html 概述:Microsoft Office Word是微软公司的一个文字处理器应用程序,作为办公软件必不可少的神器之一,Wo ...

  8. Spire.DOC生成表格测试

    首先,很感谢Jack对我的信任,让我来写一个评测,在此对Jack说一声抱歉,由于本人愚钝,并且最近项目比较紧张,把评测这个事情脱了一个月之久,由于往后的日子可能更忙,所以今晚抽空只能只写了一个小程序来 ...

  9. 在C#中使用Spire.doc对word的操作总结

    在C#中使用Spire.doc对word的操作总结 在最近的工程中我们要处理一些word文档.通过在网上的大量搜索,我发现大多数软件功能不是不完整就是有重复.极少数可以完全实现的word组件又要收费. ...

随机推荐

  1. Python yield函数理解

    Python中的yield函数的作用就相当于一个挂起,是不被写入内存的,相当于一个挂起的状态,用的时候迭代,不用的时候就是一个挂起状态,挂起状态会以生成器的状态表现

  2. BFS/DFS算法介绍与实现(转)

    广度优先搜索(Breadth-First-Search)和深度优先搜索(Deep-First-Search)是搜索策略中最经常用到的两种方法,特别常用于图的搜索.其中有很多的算法都用到了这两种思想,比 ...

  3. 基于TCP协议的socket通信

    一.服务器端 1.创建serverSocket,即服务器端的socket,绑定指定的端口,并侦听此端口 ServerSocket server = new ServerSocket(8888); 2. ...

  4. mysql 表表连接的问题。

    select * from table a, table b where a.aid = b.bid and aid >100 这样连接,如果a有数据,b没有数据,  a.aid = b.bid ...

  5. git中https和SSH

    1.在git中clone项目有两种方式:HTTPS和SSH,它们的区别如下: HTTPS:不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码: SSH:clone的项目你必须 ...

  6. sql查询

    结果集是 id name 1 张三2 张三3 李四4 王五5 王五我想查询出有多少不重名的人的数量,并显示在每一行结果集里面结果如下:num id name 3     1   张三3     2  ...

  7. Webpack教程

    打开链接:Webpack教程

  8. Android N 多窗口模式,你需要知道的一切

    Android N中最大.最引人注意的变化就是Mutil-window模式.对于一个开发者,我们最关心的就是:Mutil-window模式下怎么配置mutil-window模式.Activity的生命 ...

  9. GIS规划应用——基于哈夫模型的GIS服务区分析

    1.  GIS服务区分析 区位因素是商业分析中一个至关重要的因素,因此在商店选址时,例行的服务区分析十分重要.服务区是指顾客分布的主要区域,在其范围内该店的商品销售量或服务营业额超过其竞争对手.对于现 ...

  10. ThreaLocal内存泄露的问题

    在最近一个项目中,在项目发布之后,发现系统中有内存泄漏问题.表象是堆内存随着系统的运行时间缓慢增长,一直没有办法通过gc来回收,最终于导致堆内存耗尽,内存溢出.开始是怀疑ThreadLocal的问题, ...