使用Spire.Office for .NET(Word、Excel、PPT、PDF等)的初步感受

简介: 前言     本文大部分内容来自http://www.codeproject.com/Articles/710747/First-thoughts-on-Spire-Doc-for-NET。   针对我个人来说,对办公自动化并没有多少需求。

前言  

  本文大部分内容来自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 / 2, page.Canvas.ClientSize.Height / 3));
            brush.Graphics.SetTransparency(0.3f);
            brush.Graphics.Save();
            brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 2);
            brush.Graphics.RotateTransform(-45);
            brush.Graphics.DrawString("www.cnblogs.com/aehyok",
                new PdfFont(PdfFontFamily.Helvetica, 24), PdfBrushes.Violet, 0, 0,
                new PdfStringFormat(PdfTextAlignment.Center));
            brush.Graphics.Restore();
            brush.Graphics.SetTransparency(1);
            page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.Canvas.ClientSize));

            float y = 10;
            //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 / 2, y, format1);
            y = y + font1.MeasureString("Country List", format1).Height;
            y = y + 5;

            ////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 = 0; i < data.Length; i++)
            {
                dataSource[i] = data[i].Split(';');
            }
            ///7、画Table绑定数据
            PdfTable table = new PdfTable();
            table.Style.CellPadding = 2;
            table.Style.HeaderSource = PdfHeaderSource.Rows;
            table.Style.HeaderRowCount = 1;
            table.Style.ShowHeader = true;
            table.DataSource = dataSource;   ///直接绑定数据源
            PdfLayoutResult result = table.Draw(page, new PointF(0, y));
            y = y + result.Bounds.Height + 5;
            PdfBrush brush2 = PdfBrushes.Gray;
            PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 9f));
            page.Canvas.DrawString(String.Format("* {0} countries in the list.", data.Length - 1), font2, brush2, 5, y);

            //8、保存文件
            doc.SaveToFile("SimpleTable.pdf");
            doc.Close();
            ///9、打开刚刚制作的文件
            System.Diagnostics.Process.Start("SimpleTable.pdf");
        }
    }
View Code

运行后的效果图

可以发现其中简单的几个要素

1、背景图片

2、水印的添加

3、Table勒

 

 

总体而言,我印象深刻的是本产品所提供的功能和易用性。虽然它并不总是如我想的那样竭尽所能,这也可能是由于我缺乏对Spire.Office组件如何正确工作的认识。

 

示例代码下载地址 http://url.cn/S7Znij

目录
相关文章
iframe 在线预览pdf、word、excel、ppt、txt、图片、视频
iframe 在线预览pdf、word、excel、ppt、txt、图片、视频
|
1月前
|
Web App开发 JavaScript 前端开发
网页VUE纯前端在线预览编辑Office,支持doc/docx、xls/xlsx、ppt/pptx、pdf等格式
随着互联网技术的不断发展,越来越多的企业开始采用在线办公模式,微软Office Word 是最好用的文档编辑工具,然而doc、docx、xls、xlsx、ppt、pptx等格式的Office文档是无法直接在浏览器中直接打开的,如果可以实现Web在线预览编辑OffIce,肯定会还带来了更高效、便捷的办公体验,为我们的工作带来了更多可能性。
782 0
|
19天前
word批量图片导出wps office word 图片批量导出
word批量图片导出wps office word 图片批量导出
|
3天前
|
JavaScript Java Apache
Java--office(word......)在线预览(openoffice+swfTools+FlexPaper)
Java--office(word......)在线预览(openoffice+swfTools+FlexPaper)
6 0
|
1月前
|
Python
Python异步编程|PySimpleGUI界面读取PDF转换Excel
Python异步编程|PySimpleGUI界面读取PDF转换Excel
30 1
|
1月前
|
Web App开发 JavaScript 前端开发
2024年纯前端VUE在线编辑微软Office/金山WPS的Word/Excel文档
现在,随着数字化进程渗透到到各行各业,数据安全已经成为了数字化革命中的重要组成部分,而在线Office成在OA、ERP、文档系统中得到了广泛的应用,为我国的信息化事业也做出了巨大贡献。随着操作系统、浏览器及Office软件的不断升级和更新换代,加上国家对信息化、数字化系统要求的不断提升,一些厂家的WebOffice控件产品不断被淘汰出局,而现存的几个产品也存在以下几个问题:
525 1
2024年纯前端VUE在线编辑微软Office/金山WPS的Word/Excel文档
|
1月前
|
安全 C# 开发者
.NET开源的一键自动化下载、安装、激活Microsoft Office利器
.NET开源的一键自动化下载、安装、激活Microsoft Office利器
|
1月前
|
数据安全/隐私保护 Python
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)(下)
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
46 1
|
1月前
|
前端开发
招投标系统是Electron的纯内网编辑Office Word,可以设置部分区域可编辑,其他的地方不能编辑吗?
我们是招投标系统的开发公司,框架是用的Electron,需要在纯内网的环境下编辑Office Word,可以设置部分区域可编辑,其他的地方不能编辑吗(如下红框位置)?并且在用户忘记填写一些区域的时候做提醒。
74 1
|
1月前
|
关系型数据库 BI Python
Python异步编程|PySimpleGUI界面读取PDF转换Excel
实例要求:使用PySimpleGUI库做一个把单位考勤系统导出的pdf文件合并输出Excel表格的应用,库pdfplumber直接遍历多个pdf文件,得到数据后输出xks文件,同时对pdf文件读取函数的进行改造,使用了asyncio异步编程效果非常不错。
93 2