使用Spire.Office for .NET(Word、Excel、PPT、PDF等)的初步感受
前言
本文大部分内容来自http://www.codeproject.com/Articles/710747/First-thoughts-on-Spire-Doc-for-NET。
针对我个人来说,对办公自动化并没有多少需求。但作为一个开发人员,如果有需求的时候最好有一个library工具。前段时间,E-iceblue的销售人员之一联系我,希望我能帮他们Spire.Office做一个测评。首先我很高兴他们能找到我,这也让我有了一个接触和学习新技术的机会,在此非常感激E-iceblue的这位员工。他们官方网站为http://www.e-iceblue.com/。
Spire.Office for .NET 是一个由E-iceblue提供的编译型的企业级办公的.NET组件。它包含了Spire.Doc,Spire XMLS,Spire.Presentation,Spire.PDF,Spire.DataExport, Spire.PDFViewer, Spire.DocViewer, and Spire.BarCode.Spire.Office包含基于.Net 组件的最新版本。
使用Spire.Office for .NET,开发人员可以创建更为广泛的应用。它使开发人员能够打开,创建,修改,转换,打印,查看微软Word ,Excel,PowerPoint,PDF文档。此外,它允许用户将数据导出到流行的文件,如MS Word / Excel/ RTF /Access,PowerPoint , PDF,XPS , HTML,XML ,Text, CSV , DBF ,Clipboard剪贴板, SYLK等。
最为一个独立的Office .NET组件,Spire.Office不需要在系统上安装微软Office文件。此外,它在安全性,稳定性,可扩展性,速度,价格和功能方面更好的替代微软办公自动化。
Spire.Office for .NET可以链接到任何类型的32位或64位的.NET应用程序,它包括基于.NET框架2.0到4.5版本的Asp.NET,Web Services和WinForms等应用程序。
下面我就来简单的介绍下Spire.Doc和Spire.PDF,关于我简单入门使用的一个情况吧。
Spire.Doc for .NET
Spire.Doc for .NET是一个专业的Word .NET library,使用该工具开发人员可以在任意.NET品台(C#,VB.NET,ASP.NET)上快速创建,读取,写入,转换, 打印Word文档文件。作为一个独立的Word 组件,Spire.Doc for .NET并不需要Microsoft Word安装在你的机器上。而且,它可以将Microsoft Word文档创建功能集成到任何开发者的.NET应用程序。
如何得到它?
首先你可以进入官网http://www.e-iceblue.com/
然后你可以点击你需要的组件,比如现在我需要的Spire.Doc for .NET,进入之后你便可以下载并最终可以从他们的网站购买Spire.Doc。
下载完之后你会发现是一个MSI的安装文件。
该Spire.Doc安装包是干净的,专业的MSI安装程序。前几个对话框是一些提示信息以及许可协议。顺便说一句,谁会把所有的警示信息都仔细看一遍?但如果你是作为商业用途准备投资和使用该产品的公司,阅读任何软件公司的许可协议都是应该的。
安装该Spire.Dco包只用了180M的空间。
MSI安装选项提供了全面的信息,其中包括:
1、安装组件(支持不同.NET Framework版本的多个组件)
2、安装demo以及源代码
3、将文件安装到开发者本地机器上
4、添加组件到Visual Studio的引用对话框中
安装完成后,开发人员必须手动添加引用的程序集。这里可以在Windows HTML帮助下将文件安装到本地。
创建一个Word文档
很多年前,我们曾面临一个问题,就是找到要插入格式化文本到文档的有效途径。具体来说,就是要生成一个多段落,多文本并含有特殊格式的Word文档。
让我们使用Spire.Doc创建一个大家熟悉的写上Hello World的Word文档。以下是具体步骤:
1、我用VS2012创建了已控制台的应用程序
2.在解决方案资源管理器(Solution Explorer)中,添加一个新的引用(reference) 到Spire.Doc.dll(在之前安装MSI后的bin路径下)
3. 我想看看Spiral.Doc的命名惯例是跟我的直觉一致。于是我开始不看他们的文档,使用对象浏览器 (object browser)来检查可用的接口。按我的猜测,我想类似下面的代码可以帮我建立我想要的Word文本。
static void Main(string[] args)
{
Spire.Doc.Document document = new Document();
Section section = document.AddSection();
Paragraph paragraph = section.AddParagraph();
paragraph.AppendText("Hello World");
document.SaveToFile("Hello Wrold.doc", FileFormat.Doc);
Console.WriteLine("Word文档创建成功!");
Console.ReadLine();
}
编译成功之后,F5运行
如果你有一个许可证,评估信息(Evaluation Warning)就会消失。
4、虽然我们很忙,也不妨让我们来看看它是否可以将Word文档导出为PDF或HTML。
Spire.Doc.Document document = new Document();
Section section = document.AddSection();
Paragraph paragraph = section.AddParagraph();
paragraph.AppendText("Hello World");
document.SaveToFile("Hello Wrold.doc", FileFormat.Doc);
document.SaveToFile("Hello World.pdf", FileFormat.PDF);
Console.WriteLine("Word文档创建成功!");
Console.ReadLine();
其中world拼写错误了,哈哈。提一下就不修改了。
我这里是通过浏览器打开的pdf文件
嗯,还不错吧,仅仅是多用一行代码,我可以转换,我的Word文档保存为PDF格式。对于我们开发者来说这是很方便的,几乎每天无业上都会要求将Word转换到PDF。从我个人的经验,这是每天论坛上最热的问题之一。
5、这是最简单的例子之一,但也可以通过stream读取HTML来创建Word文档,插入html文件,格式化文件或添加任何元数据属性到Word 文档。
支持的文件格式
Spire.PDF for .NET
Spire.PDF for .NET 是一款由e-iceblue公司开发的专业性的PDF文档创建组件。它能够使用户在不用Adobe Acrobat和其他外部控件的情况下,运用.NET 应用程序阅读,编写和操纵PDF 文档。Spire.PDF for .NET不仅可以运用在服务端比如:ASP.NET 或者其他环境,还可以应用在Windows Forms 应用程序中。Spire.PDF for .NET 适合应用于所有常见的坏境中,比如:创建好的PDF文档可以存到磁盘中, 还可以在Windows Forms应用程序,ASP.NET 应用程序客户端浏览器中保存为数据流。
Spire.PDF for .NET 功能丰富。 除了基本的功能比如:绘制多种图形,图片,创建窗体字段,插入页眉页脚,输入数据表,自动对大型表格进行分页外,Spire.PDF for .NET还支持PDF数字签名,将HTML转换成PDF格式,提取PDF文档中的文本信息和图片,存为文本格式和各种图片格式,甚至可以将PDF中的附件提取出来。
主要功能
1、支持嵌入式字体,Truetype 字体和CJK字体。
2、支持绘图。比如:矩形,环形,弧形,椭圆形,也可以自定笔刷将其填充。
3、可以将图片从数据流,磁盘文件中载入到PDF 文档中。 在PDF 文档中既可以绘制梯状图形和矢量图像,还支持掩模和水印图像。
4、可以在PDF 文档中载入数据表。可以设置表中的行和列的格式,还可以在表内加入图形元素。
5、自动对PDF 中的大型表格进行分页。
6、创建窗体字段。比如在PDF 文档中创建按钮,文本框,列表框,复选框等等。
7、在PDF 中插入页眉页脚。
8、通过设置所有者密码和用户密码来加密PDF文档。
9、通过作者的签名来保护PDF文档。
10、读取当前PDF文档的表格并且填充表格。
11、HTML网页在转换到PDF文档时会拆分为多个大型页面,这些页面可以原原本本的展现在PDF文档中,而且在PDF文档的分页处没有任何文字的截断。用户还可以将这些网页在不需要临时文件的情况下,直接转换为数据流来创建PDF文档。
12、等等
下面来制作一个PDF文件吧
1、新建另外一个控制台应用程序项目
2、添加Spire.PDF引用,这次我通过Nuget插件来添加
下面是制作一个简单PDF的代码
class Program
{
static void Main(string[] args)
{
///1、创建一个PDF 的Document
PdfDocument doc = new PdfDocument();
PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
PdfMargins margin = new PdfMargins();
margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
margin.Bottom = margin.Top;
margin.Left = unitCvtr.ConvertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
margin.Right = margin.Left; //2、创建一个margin为上面定义的PDF的Page页
PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, margin); ///3、插入一个背景图片
System.Drawing.Image img = System.Drawing.Image.FromFile(@"1.png");
page.BackgroundImage = img; ////4、添加水印
PdfTilingBrush brush
= new PdfTilingBrush(new SizeF(page.Canvas.ClientSize.Width / , page.Canvas.ClientSize.Height / ));
brush.Graphics.SetTransparency(0.3f);
brush.Graphics.Save();
brush.Graphics.TranslateTransform(brush.Size.Width / , brush.Size.Height / );
brush.Graphics.RotateTransform(-);
brush.Graphics.DrawString("www.cnblogs.com/aehyok",
new PdfFont(PdfFontFamily.Helvetica, ), PdfBrushes.Violet, , ,
new PdfStringFormat(PdfTextAlignment.Center));
brush.Graphics.Restore();
brush.Graphics.SetTransparency();
page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(, ), page.Canvas.ClientSize)); float y = ;
//5、设置标题
PdfBrush brush1 = PdfBrushes.Black;
PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial", 16f, FontStyle.Bold));
PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Center);
page.Canvas.DrawString("Country List", font1, brush1, page.Canvas.ClientSize.Width / , y, format1);
y = y + font1.MeasureString("Country List", format1).Height;
y = y + ; ////6、定义Table元数据
String[] data = {
"Name;Capital;Continent;Area;Population",
"Argentina;Buenos Aires;South America;2777815;32300003",
"Bolivia;La Paz;South America;1098575;7300000",
"Brazil;Brasilia;South America;8511196;150400000",
"Canada;Ottawa;North America;9976147;26500000",
};
String[][] dataSource
= new String[data.Length][];
for (int i = ; i < data.Length; i++)
{
dataSource[i] = data[i].Split(';');
}
///7、画Table绑定数据
PdfTable table = new PdfTable();
table.Style.CellPadding = ;
table.Style.HeaderSource = PdfHeaderSource.Rows;
table.Style.HeaderRowCount = ;
table.Style.ShowHeader = true;
table.DataSource = dataSource; ///直接绑定数据源
PdfLayoutResult result = table.Draw(page, new PointF(, y));
y = y + result.Bounds.Height + ;
PdfBrush brush2 = PdfBrushes.Gray;
PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 9f));
page.Canvas.DrawString(String.Format("* {0} countries in the list.", data.Length - ), font2, brush2, , y); //8、保存文件
doc.SaveToFile("SimpleTable.pdf");
doc.Close();
///9、打开刚刚制作的文件
System.Diagnostics.Process.Start("SimpleTable.pdf");
}
}
运行后的效果图
可以发现其中简单的几个要素
1、背景图片
2、水印的添加
3、Table勒
总体而言,我印象深刻的是本产品所提供的功能和易用性。虽然它并不总是如我想的那样竭尽所能,这也可能是由于我缺乏对Spire.Office组件如何正确工作的认识。
英语小贴士
1、苏珊: Excuse me! I am new to the campus. Do you know where the student cafeteria is?——打扰了.我是新生.请问你知道学校自助餐厅在哪里吗?
2、凯西: Sure! Do you have a map?——当然!你有地图吗?
3、苏珊: Yes, here it is.——有.地图在这儿
4、凯西: Let`s see--Here`s where we are right now. To get to the cafeteria, you`ll need to cross this square and go to the south.——我看看-- 我们现在的位置在这儿.要到自助餐厅的话.你得穿过这个广场然后向南走.
5、苏珊: OK——好的.
6、凯西: And then the cafeteria is about five hundred yards past the gym, on your left. You`ll see a sign in front of the building.——自助餐厅是在过了体育馆大概500码处.就在你左边.你会在建筑物前看到标志.
7、苏珊: No wonder I got lost. I was heading in the wrong direction! Anyway, thanks a lot for your help.——难怪我会迷路.我走错方向了.无论如何.非常感谢你的帮忙.
8、凯西: No problem. Good luck!——不客气.祝你好运.
作者:aehyok
出处:http://www.cnblogs.com/aehyok/
感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,那不妨点个推荐吧,谢谢支持:-O。
示例代码下载地址http://url.cn/S7Znij
使用Spire.Office for .NET(Word、Excel、PPT、PDF等)的初步感受的更多相关文章
- Atitit.office word excel ppt pdf 的web在线预览方案与html转换方案 attilax 总结
Atitit.office word excel ppt pdf 的web在线预览方案与html转换方案 attilax 总结 1. office word excel pdf 的web预览要求 ...
- 微信小程序云开发-云存储-下载并打开文件文件(word/excel/ppt/pdf)
一.wxml文件 1.写文本框,用来获取文件链接. 2.按钮,点击下载文件 <!-- 下载文件(word/excel/ppt/pdf等) --> <view class=" ...
- 微信小程序云开发-云存储-上传文件(word/excel/ppt/pdf)到云存储
说明 word/excel/ppt/pdf是从客户端会话选择文件.使用chooseMessageFile中选择文件. 一.wxml文件 上传按钮,绑定chooseFile <!--上传文件(wo ...
- 关于在线预览word,excel,ppt,pdf的需求处理方法。
参考文档:http://www.cnblogs.com/wolf-sun/p/3574278.html 我选用的方案:先用office com组件生成pdf,然后使用pdf.js在线预览pdf文档.在 ...
- ASP.NET Core2集成Office Online Server(OWAS)实现办公文档的在线预览与编辑(支持word\excel\ppt\pdf等格式)
Office Online Server是微软开发的一套基于Office实现在线文档预览编辑的技术框架(支持当前主流的浏览器,且浏览器上无需安装任何插件,支持word.excel.ppt.pdf等文档 ...
- [转发]ASP.NET Core2集成Office Online Server(OWAS)实现办公文档的在线预览与编辑(支持word\excel\ppt\pdf等格式)
转载自:https://www.cnblogs.com/Andre/p/9549874.html Office Online Server是微软开发的一套基于Office实现在线文档预览编辑的技术框架 ...
- lucent检索技术之创建索引:使用POI读取txt/word/excel/ppt/pdf内容
在使用lucent检索文档时,必须先为各文档创建索引.索引的创建即读出文档信息(如文档名称.上传时间.文档内容等),然后再经过分词建索引写入到索引文件里.这里主要是总结下读取各类文档内容这一步. 一. ...
- uploadify 下载组件使用技巧和在线预览 word,excel,ppt,pdf的方案
http://www.cnblogs.com/wolf-sun/p/3565184.html uploadify 上传工具的使用技巧 http://www.cnblogs.com/wolf-sun/p ...
- 微信小程序云开发-云存储-上传、下载、打开文件文件(word/excel/ppt/pdf)一步到位
一.wxml文件 <!-- 上传.下载.打开文件一步执行 --> <view class="handle"> <button bindtap=&quo ...
- 在线文档转换API word,excel,ppt等在线文件转pdf、png
在线文档转换API提供word,excel,ppt等在线文件转pdf.png等,文档:https://www.juhe.cn/docs/api/id/259 接口地址:http://v.juhe.cn ...
随机推荐
- CSU 1948: 超级管理员(普通费用流&&zkw费用流)
Description 长者对小明施加了膜法,使得小明每天起床就像马丁的早晨一样. 今天小明早上醒来发现自己成了一位仓管员.仓库可以被描述为一个n × m的网格,在每个网格上有几个箱子(可能没有).为 ...
- Java编程的逻辑 (1) - 数据和变量
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- SVN服务器搭建和使用-转载
SVN服务器搭建和使用(一)-转载 原文地址:http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html Subversion ...
- checkbox复选框的一些深入研究与理解
一.一开始的唠叨最近忙于开发,自淫于项目的一步步完工,心浮躁了.舍近而求远,兵家之大忌.我是不是应该着眼于眼前的东西,好好的静下心来,超过一般人的沉静与沉浸,研究最基本的东西呢?这番思考,让我找到了一 ...
- 打FFT时中发现的卡常技巧
题目:洛谷P1919 A*B Problem 加强版 我的代码完全借鉴boshi,然而他380ms我880ms...于是我通过彻底的卡(chao)常(dai)数(ma)成功优化到了380ms,都是改了 ...
- 【LOJ】#2098. 「CQOI2015」多项式
题解 令x = x - t代换一下会发现 \(\sum_{i = 0}^{n}a_i (x + t)^i = \sum_{i = 0}^{n} b_{i} x^{i}\) 剩下的就需要写高精度爆算了- ...
- HTML5本地存储localStorage、sessionStorage及IE专属UserData
By:王美建 from:http://www.cnblogs.com/wangmeijian/p/4518606.html 转载请保留署名和出处! 在客户端存储数据用的最普遍的方式非cookie莫属, ...
- JSP中的指令概述和示例
一.JSP——Java server page :java服务端的页面,这是属于一个后端技术 1.前端技术: html.css.javascript 2.后端技术: java语言.框架(mybatis ...
- MOXA的Nport5600初始密码
今天第一次弄Nport,看了半天手册没找到初始密码,网上也搜不到,按照说明书上想打电话问问,发现根本是空号... 后来灵感一来试了一下,居然是:moxa
- Hdu5385 The path
The path Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Su ...