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

前言  html

  本文大部份內容來自http://www.codeproject.com/Articles/710747/First-thoughts-on-Spire-Doc-for-NETapi

  針對我我的來講,對辦公自動化並無多少需求。但做爲一個開發人員,若是有需求的時候最好有一個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文件。此外,它在安全性,穩定性,可擴展性,速度,價格和功能方面更好的替代微軟辦公自動化。ide

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安裝選項提供了全面的信息,其中包括:

一、安裝組件(支持不一樣.NET Framework版本的多個組件)

二、安裝demo以及源代碼

三、將文件安裝到開發者本地機器上

四、添加組件到Visual Studio的引用對話框中

安裝完成後,開發人員必須手動添加引用的程序集。這裏能夠在Windows HTML幫助下將文件安裝到本地。

 

建立一個Word文檔

不少年前,咱們曾面臨一個問題,就是找到要插入格式化文本到文檔的有效途徑。具體來講,就是要生成一個多段落,多文本並含有特殊格式的Word文檔。

讓咱們使用Spire.Doc建立一個你們熟悉的寫上Hello World的Word文檔。如下是具體步驟:

一、我用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)就會消失。

四、雖然咱們很忙,也不妨讓咱們來看看它是否能夠將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。從我我的的經驗,這是天天論壇上最熱的問題之一。

五、這是最簡單的例子之一,但也能夠經過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中的附件提取出來。

主要功能
一、支持嵌入式字體,Truetype 字體和CJK字體。

二、支持繪圖。好比:矩形,環形,弧形,橢圓形,也能夠自定筆刷將其填充。

三、能夠將圖片從數據流,磁盤文件中載入到PDF 文檔中。 在PDF 文檔中既能夠繪製梯狀圖形和矢量圖像,還支持掩模和水印圖像。

四、能夠在PDF 文檔中載入數據表。能夠設置表中的行和列的格式,還能夠在表內加入圖形元素。

五、自動對PDF 中的大型表格進行分頁。

六、建立窗體字段。好比在PDF 文檔中建立按鈕,文本框,列表框,複選框等等。

七、在PDF 中插入頁眉頁腳。

八、經過設置全部者密碼和用戶密碼來加密PDF文檔。

九、經過做者的簽名來保護PDF文檔。

十、讀取當前PDF文檔的表格而且填充表格。

十一、HTML網頁在轉換到PDF文檔時會拆分爲多個大型頁面,這些頁面能夠原本來本的展示在PDF文檔中,並且在PDF文檔的分頁處沒有任何文字的截斷。用戶還能夠將這些網頁在不須要臨時文件的狀況下,直接轉換爲數據流來建立PDF文檔。

十二、等等

 

下面來製做一個PDF文件吧

一、新建另一個控制檯應用程序項目

二、添加Spire.PDF引用,此次我經過Nuget插件來添加

下面是製做一個簡單PDF的代碼 

    class Program
    {
        static void Main(string[] args)
        {
            ///一、建立一個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;
            
            //二、建立一個margin爲上面定義的PDF的Page頁
            PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, margin);
            
            ///三、插入一個背景圖片
            System.Drawing.Image img = System.Drawing.Image.FromFile(@"1.png");
            page.BackgroundImage = img;

            ////四、添加水印
            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;
            //五、設置標題
            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;

            ////六、定義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(';');
            }
            ///七、畫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);

            //八、保存文件
            doc.SaveToFile("SimpleTable.pdf");
            doc.Close();
            ///九、打開剛剛製做的文件
            System.Diagnostics.Process.Start("SimpleTable.pdf");
        }
    }
View Code

運行後的效果圖

能夠發現其中簡單的幾個要素

一、背景圖片

二、水印的添加

三、Table勒

 

 

整體而言,我印象深入的是本產品所提供的功能和易用性。雖然它並不老是如我想的那樣竭盡所能,這也多是因爲我缺少對Spire.Office組件如何正確工做的認識。

 

示例代碼下載地址 http://url.cn/S7Znij

相關文章
相關標籤/搜索