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

來源:互聯網
上載者:User

標籤:winform   style   c   class   blog   code   

前言  

  本文大部分內容來自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組件如何正確工作的認識。

 

英語小貼士

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.