asposeword1

2011-02-14 14:47

aspose.words

Aspose.Words元件介紹(上)

From ischool developer's network (Redirected from Aspose.Word元件介紹(上))Jump to: navigation, searchContents[ hide] 1前言 2安裝Aspose.Word元件 2.1步驟一:於專案中點選Add Reference 2.2步驟二:選取Aspose.Word元件 2.3步驟三:於程式碼中引用Aspose.Word元件 2.4步驟四:編譯是否成功引用 3物件模型基本觀念 3.1物件模型圖 3.2重要物件說明 4範例一:Document類別 5範例二:DocumentBuilder類別 前言

本文中介紹Aspose的Word元件使用方法,此元件在開發ischool的擴充報表時會運用到;為在ischool中支援的元件,以下為此元件的特色。

不需安裝Microsoft Word軟體,就可運用內建的物件模型來讀取、編輯及產生Word文件。 內建的物件模型支援大部份Word功能,例如文字格式操作、表格、圖片、合併列印...等。 支援許多的檔案格式,如DOC、DOCX、RTF、WML、HTML、PDF,算是相當的完善,而PDF格式需要再搭配使用Aspose.PDF元件。 讀入及輸出檔案的效率高。

在Office軟體當中每個都有提供物件模型,也能在在.NET平台當中引用使用,那為何要多花費用去買Aspose.Word元件來使用呢?在Aspose的說明書中針對這點特別強調,底下摘錄其重點,詳細可參考Aspose的說明書:

穩定性:若是要安裝Microsoft Word軟體才能輸出Word檔案,那麼可能會因為使用者安裝的版本不同,例如Office XP、Office 2007而導致產生出來的檔案格式不一致;這對使用者及軟體開發人員都會相當困惱。 速度:在.NET當中用Microsoft Word的物件模型,相當於模擬使用Word軟體;而Aspose的元件是直接用程式產生Word格式的檔案,在快速上自然會快上許多。 安裝Aspose.Word元件

Aspose.Word元件可以由此下載試用版,在安裝好後可以在其安裝目錄找到Aspose.Words.dll檔案可以於.NET專案當中引用,以筆者而言的目錄是:

C:\Program Files\Aspose\Aspose.Words\Bin\net2.0\Aspose.Words.dll C:\Program Files\Aspose\Aspose.Words\Bin\net1.1\Aspose.Words.dll

底下以圖示的方式來說明加入的步驟。

步驟一:於專案中點選Add Reference

步驟二:選取Aspose.Word元件

步驟三:於程式碼中引用Aspose.Word元件

步驟四:編譯是否成功引用

物件模型基本觀念

在測試能夠正確引用Aspose.Word後,接下來我們看到物件模型的設計,所有元件幾乎都繼承至Node元件擁有共通的屬性;Node往下分為兩大類,一大類為直接繼續至Node元件,另一大類為CompositeNode,CompositeNode與Node的差別在於前者可以包含其它的Node元件,例如表格元件就是很典型例子,表格元件(Table)可以包含列元件(Row),列元件裡面又可以再包含表格元件。

物件模型圖

Aspose.Word的物件模型設計,是很典型在DesignPattern當中的Composite Pattern,有興趣的讀者可以至Google搜尋,相信會很有收穫。

重要物件說明

底下以表格的方式來說明重要的物件用途。

Document 代表Word文件物件,此物件會包含許多文件的元件,如段落(Section)、內文(Body)…等等。 Section 代表Word當中的一個節。 Body 代表在節裡的主要文字。 HeaderFooter 代表在節裡的段落首及段落尾。 Comment 代表Word文件裡的註解。 Shape 代表在Word文件裡的影像、圖形或是OLE物件。 GroupShape 一群Shape物件的組合。 Paragraph 代表一小段文字。 Table 代表Word文字中的表格。 Row 代表表格的列。 Cell 代表表格的欄位。 BookmarkStart 代表書籤,用來標註書籤的開始。 BookmarkEnd 代表書籤,用來標註書籤的結束。 範例一:Document類別

在安裝好了Aspose.Word元件後,並且也針對其物件模型做基本的介紹,接下來我們來針對重要的物件來做實驗,以瞭解這些物件的用法。

一個Document 物件代表一份Microsoft Word文件,Document 物件包含了整個文件內容、格式、樣式、自定屬性,Document 物件可以儲存到檔案或是一個 Stream 物件,也可透過 Brwoser 傳送到 Client;如果想建立文件、使用樣版進行合併列印、讀取 Word 文件內容…,Document 類別是一個起點。

privatevoid DoSomething_Click(Objectsender,EventArgs e){ Document doc = new Document(filename); }

Document的來源可以是一個Word檔案、一個Stream物件,或是加密的文件。

以下來源為Word檔案。 privatevoid DoSomething_Click(Objectsender,EventArgs e){ String filename="C: \\Word.doc"; Document doc = new Document(filename); }以下來源為Stream物件。 privatevoid DoSomething_Click(Objectsender,EventArgs e){ System.IO.FileStream filestream = newSystem.IO.FileStream("C: \\Word.doc",System.IO.FileMode.Open); Document doc = new Document(filestream); }以下來源為加密的Word檔案,要留意的是需註明檔案型態為LoadFormat.Doc,最後一個參數為文件的密碼名稱。 privatevoid DoSomething_Click(Objectsender,EventArgs e){ Document doc = new Document("C: \\Word.doc", LoadFormat.Doc, "Password"); } 範例二:DocumentBuilder類別

我們手中有了Document物件之後,接下來會想在文件裡面動些手腳,例如加入文字或是表格,此時需借助DocumentBuilder類別來處理文件內容。

usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Text; usingSystem.Windows.Forms; using Aspose.Words; namespace AsposeWord {public partial class Form1 : Form {public Form1(){ InitializeComponent(); } privatevoid DoSomething_Click(object sender, EventArgs e){ //建立Document物件 Document doc = new Document(); //建立DocumentBuilder物件 DocumentBuilder builder = new DocumentBuilder(doc); //將DocumentBuilder的顏色設定為紅色 builder.Font.Color = System.Drawing.Color.Red; //將DocumentBuilder的顏色設定為雙底線 builder.Font.Underline = Underline.Double; //新增文字 builder.Writeln("臺灣中等學校資訊管理人學會"); //新增超連結 builder.InsertHyperlink("tsima","http://www.tsima.org.tw",false); //將上述設定的格式清除 builder.Font.ClearFormatting(); //將文件存檔 doc.Save("Test.doc"); }}} http://dev.ischool.com.tw/wiki/index.php/Aspose.Word%E5%85%83%E4%BB%B6%E4%BB%8B%E7%B4%B9%EF%BC%88%E4%B8%8A%EF%BC%89
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值