XWriterLib文字編輯器中介軟體軟體技術白皮書

來源:互聯網
上載者:User

 

 

 

 

 

XWriterLib文字編輯器中介軟體軟體

技術白皮書

(初稿)

 

 

 

袁永福

2007-11-5

 

 

 

 

 

 

前言

XWriterLib文字編輯器中介軟體軟體是XDesigner圖形軟體工作室自主開發的有一個進階圖形軟體組件,為開發人員開發專業的富文字編輯器類型軟體提供的強大的基礎,本文檔就是對XWriterLib文字編輯器中介軟體軟體進行技術方面的說明,使得閱讀者對XWriterLib軟體有一個基本的認識,方便深入瞭解和開發。

以下將XWriterLib文字編輯器中介軟體軟體簡稱為XWriterLib。

 

本文檔合適的閱讀者

本文檔合適的閱讀者是希望瞭解XWriterLib的電腦軟體開發人員,本文檔主要是對XWriterLib進行基本的技術說明,並不詳細說明XWriterLib的開發介面和開發過程。欲瞭解XWriterLib詳細的編程介面可參考XWriterLib的使用者手冊。

作者連絡方式

對XWriterLib興趣的人可以通過以下連絡方式聯絡作者

MSN yyf9989@hotmail.com

電子郵件 yyf9989@sohu.com 

OICQ 28348092

袁永福個人網站 http://www.xdesigner.cn 

作者部落格網址 http://xdesigner.cnblogs.com ( 由部落格園 http://www.cnblogs.com 提供)

 

基本概念

本章對XWriterLib涉及到的一些概念進行說明,方便閱讀者能更好的閱讀和理解本文檔。本章節涉及到富文字編輯器基本概念,MS DOT.NET的圖形開發,文件物件模型,RTF文檔格式等概念,若讀者已經瞭解這些內容則可以跳過本章節。

文字編輯器/富文字編輯器

電腦最大的用途就是進行資訊處理,其中很重要的就是文字資訊處理,文字資訊處理主要包括文字文檔的輸入,編輯,儲存和列印等功能,此外使用者介面上還要實現所見即所得 (WYSIWYG)的使用者體驗。這些都是專業的文字編輯器所必須的功能。

此外在很多情況下文字文檔已經不限於普通的純文字內容,而是一種所謂的富格式文字文件內容,在富文字文件中,使用者可以設定文字的顏色,字型樣式,還可以設定文檔內容的的對齊,行間距和字元間距,此外還能插入圖片等非文字內容。支援富文字文件格式的文字編輯器可稱為富文字編輯器。以下所說的文字編輯器都是指富文字編輯器。

現在已經存在很多專業的文字編輯器類型軟體,比如微軟Word,金山WPS等大型的通用文文書處理軟體;還有一些小型的文字編輯器類型軟體,比如Windows寫字板。

文字編輯器使用非常廣泛,是除作業系統外使用最廣泛的軟體類型。大部分電腦操作人員都需要使用文字編輯器來編輯各種文字文件,軟體開發人員需要使用開發環境提供的代碼文字編輯器來輸入程式碼。可以預見,在未來很長的一段時間內,文字編輯器軟體類型仍然是電腦軟體的主要類型之一,是一種基礎軟體。

文字編輯器同時也是一種技術含量比較高的軟體類型。開發文字編輯器涉及到很多電腦軟體開發技術,包括文檔載入和儲存,文件物件模型,進階圖形軟體技術,高效能圖形編程,文字排版技術等等。因此文字編輯器軟體技術門檻高,開發難度大,需要有優秀的軟體開發人員來開發它。

在國內軟體行業中,大部分軟體開發人員開發行業應用軟體,其中部分客戶需要文字編輯器類型的軟體模組,而使用MS Word組件或IE瀏覽器組件等文字編輯器組件進行開發時由於受到這些組件本身的功能限制而且又沒有原始碼進行深入的二次開發,因此一些客戶的需求難於滿足或不能實現。根據微軟一貫的商業策略,微軟未來不大可能提供比標準RichTextBox更強大的文字編輯器組件,因此開發人員不得不面臨開發文字編輯器這種複雜軟體的任務。

為此XWriterLib為這些開發人員提供了一個新的選擇,它提供了一個富文字編輯器的準系統,可在它的基礎上低成本的開發各種文字編輯器模組,並可經過授權獲得其原始碼,從而可以進行深入的二次開發而幾乎沒有限制的擴充其功能,從而滿足客戶的各種需求。

微軟.NET圖形開發

微軟.NET平台是微軟主導的軟體開發平台,一定程度上代表著國際軟體業的先進生產力,微軟.NET提供了很多先進的特性,其中包括了相當強的圖形開發功能。

相對於傳統的Win32API/GDI圖形開發模式,微軟.NET對圖形開發提供了更強的支援,而且開發介面更加友好。它提供的類庫中名稱空間System.Drawing下都是對圖形編程介面。你可以使用物件導向的編程思想來進行圖形開發。這樣可以比以往更方便的開發類似文字編輯器這樣的複雜圖形軟體。

雖然微軟.NET對圖形開發提供了更強的支援,仍然保留了對傳統的Win32API/GDI的支援,在少數情況下仍然可以調用Win32API/GDI來實現一些圖形效果,比如螢幕像素的反色,游標的處理,文字IME的控制。

在大部分情況下使用微軟.NET提供的標準圖形開發介面,少數情況下使用Win32API/GDI的模式下,我們可以開發出一個文字編輯器類型軟體,而且其中的工作量比完全用Win32API/GDI要少很多。

文件物件模型

文字編輯器要處理富文字文件,這種文檔是一種比較複雜的資料結構,其中可能存在階層,還包含了多種文件項目,而且各種文件項目組織排序比較自由。對於這種複雜的資料結構,使用傳統的面向過程的演算法或者善於處理資料庫的關係型演算法都難於處理,此時比較合適的就是採用完全物件導向的文件物件模型技術來進行處理。

文件物件模型是物件導向編程思想在處理複雜文檔的一個範例,其基本工作原理是:使用一個個記憶體中的編程對象映射到文檔中的某個部分或元素,比如使用一個字元元素對象映射到文檔中的一個字元,圖片元素對象映射到文檔中的一個圖片。則應用程式讀取和修改記憶體中的編程對象的資料,經過這些映射關係就轉化為讀取和修改文檔內容。

文件物件模型是一種比較進階的軟體設計模式,它比較充分的運用了物件導向編程思想的各種內容,包括封裝,繼承,重載等等,因此其開發過程比較複雜,但能處理一些複雜的資料結構,尤其是很適合處理比較複雜的富格式文字文件資料結構。因此文字編輯器處理文字文件時,基本上都得使用文件物件模型來操作文字文件,文字文件的文件物件模型是文字編輯器中的很核心的一個模組。

RTF文檔格式

RTF文檔格式為上世紀微軟提出的富文字文件儲存格式,它是一種基於ANSI字元集的依賴標記儲存多種資訊的文檔格式。這種文檔格式曆史悠久,使用廣泛,現在已有大量的軟體支援這種文檔格式,Windows作業系統本身也支援RTF格式。因此開發富文字文件編輯器很有必要支援RTF文檔格式。若能支援RTF格式,則文字編輯器能通過RTF文檔格式來和大量的其他軟體交換文字文件。

RTF文檔儲存格式比較簡單,但內容比較多,它使用一對花括弧來定義一個標籤組,標籤組可以套嵌定義,使用一個斜線號“\”來開始定義一個標籤或指令。RTF文檔中就使用這種簡單的標籤格式來定義文字,段落和圖片等資訊。

關於RTF文檔格式的詳細內容可參考微軟提供的RTF文檔技術手冊。

 

XWriterLib介紹

XWriterLib開發背景

隨著國內軟體業的快速發展,越來越多的資訊化系統實施和投入運行,客戶的要求也越來越高,已經開始不滿足於常規的基於關係型資料庫的資訊化系統,對軟體系統的多個方面提出越來越進階的需求,其中包括對使用者介面提出新的更高的需求。在一些情況下,客戶可能提出文字編輯器類型軟體的需求,要求能定製文字編輯器類型軟體,這些軟體除了具備常規的文本編輯功能外,還要根據自身業務需要添加其特有的功能。

軟體開發人員可以在一些已有的文字編輯器組件上進行比較簡單的二次開發來實現這些功能,比如可以在RichTextBox,MS Word,IE瀏覽器等組件上進行開發,這一定程度上可以滿足定製文字編輯器的功能需求,但由於這些文字編輯器組件沒有足夠靈活的編程介面,沒有原始碼或詳細的支援人員,難於進行深入的涉及到組件底層的二次開發,因此仍然有相當多的客戶需要的功能無法實現。根據微軟一貫的商業策略,微軟未來不大可能提供比標準RichTextBox更強大的文字編輯器組件。

在已有文字編輯器組件無法滿足需求的情況下,開發人員可以自己開發文字編輯器組件,但文字編輯器組件是相當進階的圖形軟體組件,涉及的軟體技術多,開發難度大,開發時間長,而且文字編輯器這樣的進階軟體是有賴於相當優秀的軟體開發人員的全力開發,常規的人海戰術是無法完成這樣的開發工作單位。因此大量的開發人員沒有能力或沒有時間開發自己的文字編輯器組件,這樣由於技術原因導致了一些商業機會的流失。

有鑒於此,XDesigner圖形軟體工作室經過長期潛心研究,成功的開發了XWriterLib文字編輯器組件,該組件首先是一個功能比較全的富文字編輯器,此外還特別根據軟體開發人員的實際需要開放了非常靈活的全方位的編程介面,而且開發人員經過授權可以獲得原始碼,可以進行深入的二次開發。在XWriterLib的基礎上開發自己的文字編輯器能避免複雜的圖形軟體編程,減少工作量,降低開發成本,並能迅速滿足客戶的需求。

XWriterLib介紹

XWriterLib是XDesigner圖形軟體工作獨立自主開發的富文字編輯器組件,具有完全自主智慧財產權,為軟體開發人員在微軟.NET平台上的開發高度自訂的文字編輯器類軟體提供了堅實基礎。在XWriterLib的支援下,開發人員可以獲得以下能力

  1. 比較輕鬆的開發專業的文字編輯器類軟體的能力。XWriterLib內部整合了富文字編輯器的基礎功能,封裝了所有的軟體細節,並提供了友好的編程介面,開發人員無需很強的軟體開發能力就能輕鬆駕馭XWriterLib的強大功能,實現自己的文字編輯器。
  2. 可開發高度定製的文字編輯器類軟體的能力。XWriterLib除了實現一般的文字編輯器的功能外,還針對開發需求,提供了一個非常靈活的全方位的物件導向的編程介面,特別是提供了一個可擴充的富文字文件物件模型,開發人員可以在此基礎上實現自己的文字文件功能。可以全方位的修改XWriterLib的功能,包括編輯時特性,排版特性,文檔儲存格式,列印控制。此外還能新增自己的文件項目類型,新增的文件項目類型能無縫的融入到XWriterLib的文檔處理中。
  3. 深入進行二次開發的能力。開發人員經過授權可以獲得XWriterLib的原始碼和支援人員,從而可進行深入的二次開發,能實現一些比較特殊的功能。比如可以實現文檔分級動態部分鎖定,文檔內容的邏輯刪除,自動執行精確的修改痕迹保留和查看,文檔的分散儲存和載入,向其他應用系統開放文檔處理的WebService等功能,而這些功能是RichTextBox,MS Word等傳統文字編輯器組件難於或者不能實現的。
  4. 可在任何類型的軟體中快速高效的處理文檔的能力。在某些沒有圖形化使用者介面且禁止訪問案頭的軟體中,比如ASP.NET或Windows服務等,常規的文字編輯器組件的使用受到限制,比如RichTextBox或基於IE瀏覽器組件的文字編輯器是不能啟動並執行,而使用MS Word則會使用OLE自動化技術,這種技術很消耗系統資源,而且是不穩定的跨進程操作。而XWriterLib直接提供了文檔處理編程介面,開發人員可以在ASP.NET程式或Windows服務中放心的使用XWriterLib來快速處理文檔,比如可以向其他軟體提供文檔視圖的快照圖片,列印輸出等。
  5. 和微軟.NET軟體無縫整合的能力。XWriterLib完全用C#開發,全部採用Managed 程式碼來實現,因此可以和任何基於.NET平台的軟體進行無縫整合,從而進行密切的協同工作。應用系統可以使用C#,VB.NET,C++.NET,DELPHI.NET或其他支援.NET的語言進行開發,但都可以輕鬆的調用XWriterLib。XWriterLib暫不支援MONO。
  6. 輕鬆部署的能力。XWriterLib是輕量級的文字編輯器組件,只依賴微軟.NET架構提供的標準類庫,不依賴任何其他第三方組件,所有的部分都包含在一個DLL檔案中,這為開發人員部署應用軟體系統帶來相當的便利。

 

XWriterLib技術說明

XWriterLib涉及到了很多的電腦軟體開發技術,其中包含了不少進階開發技術,此處對其中的某些技術進行說明,方便開發人員瞭解一些XWriterLib內部的技術細節,使得能更充分的調用XWriterLib的能力。

XWriterLib文件物件模型

XWriterLib文件物件模型(以下簡稱XDOM)是XWriterLib的核心模組。它是一種針對富文字文件而且充分考慮到二次開發需要的可擴充文件物件模型。開發人員可以操作這個文件物件模型來操作XWriter文檔,也可以通過擴充它來向XWriter文檔添加新的文件項目類型。

XDOM內部建立了一個樹狀結構來詳細描述文檔結構,包括文檔結構架構和各種細節資訊,而且考慮到二次開發而開放了很豐富的編程介面,該介面的開放程度遠大於MS Word或RichTextBox的編程介面。開發人員可以使用XDOM介面來訪問文檔中的任何資訊,而且可以在標準的XDOM上面派生出自訂的文件項目類型,新的文件項目類型可以擴充或重新定義標準文件項目的內容,圖形樣式和操作特性。

XDOM中比較重要的文件項目類型有

XTextElement文件項目基礎類型

本類型是文件項目基礎類型,所有的文件項目類型,包括XWriterLib中已經定義的文件項目類型還是未來開發人員自訂的元素類型,必須是直接或間接的從XTextElement繼承過來的。該類型定義了一些文件項目的通用介面,還包括文件項目在文檔中的位置大小等基本資料。開發人員可以使用這種類型來遍曆文檔中任意對象。

該類型是抽象類別型(在C#中為 abstract 類型),因此不能執行個體化,只能從其上面派生出實際使用的文件項目類型,派生的類型需要重載其中的某些成員,用於支援自己的繪製過程和操作特性。

XTextElementContainer 容器元素類型

本類型是直接從XTextElement上派生的元素類型,它內部能放置若干個其他的文件項目,還能放置其他的容器元素。

XTextDocument 類型

本類型是從XTextElementContainer上派生的,用於表示文字文件對象,是XDOM的頂級節點。它定義了整個文檔的一些資訊,是外部程式訪問XDOM結構的進入點。

XTextElement,XTextElementContainer和XTextDocument三種類型共同構成了XDOM的基本架構,形成已一個已XTextDocument為根節點的樹狀結構。外部程式以XTextDocument為進入點來訪問整個XDOM。

 

在XDOM的基本架構上,XWriterLib還定義了一些常用的文件項目類型,主要有

XTextChar字元類型

XTextChar文件項目類型表示文檔中的某一個字元,包括空白字元,文檔中所有的字元都對應於一個XTextChar對象,因此應用程式可以使用XTextChar類型來快速而精確的訪問文檔中的任何字元,可以獲得和修改單個字元的顯示樣式,包括字型,顏色,上下標等設定。

XTextImage 圖片類型

XTextImage文件項目類型表示文檔中的某個圖片,並支援滑鼠拖拽來改變圖片大小。

XTextBookmark書籤元素類型

XTextBookmark書籤元素類型插入在文檔中的某個地方,用於使用者快速切換到書籤所在的文本部分。

XTextParagraph 段落元素,XTextParagraphEOF 段落結尾類型

XTextParagraph,XTextParagraphEOF段落元素表示文檔中的某個段落資訊,XDOM中,每一個元素都屬於某個段落(除了段落元素本身),而且元素所屬的段落對象是隨著編輯操作而動態改變,因此在編輯過程中,文檔對象的段落結構是動態變化的,此時為了方便開發,XDOM是以XTextParagraphEOF為根據即時的構造出段落結構。

 

編程介面

XWriterLib的一個顯而易見的特點就是提供了一個全方位高度透明的編程介面,這個編程介面以XDOM為核心,覆蓋了XWriterLib的方方面面。開發人員使用這個編程介面,可以快速精確的訪問文檔中的任何部分任何元素,而且這個編程介面可以應用到任何類型的.NET程式中,包括WinForm.NET,ASP.NET,命令列程式,Windows服務程式等等。

使用這個編程介面,開發人員還可以方便的擴充XWriterLib,可以自訂文件項目類型,可以自訂文檔的儲存格式,儲存過程,可以添加各種編輯使用者體驗。

經過授權,開發人員還可以獲得XWriterLib原始碼的拷貝,開發人員可以在XWriterLib原始碼的基礎上幾乎不受限制的擴充XWriterLib的功能。

 

文檔排版特性

XDOM是一種文字文件物件模型,因此其內容是採用流式排版樣式,即文件項目根據先後順序按照從左至右從上到下進行排列,目前XDOM只支援從左至右從上到下的排列,不支援其他的流式排版樣式,比如不支援中東地區的從右至左從上到下的排列樣式。

當XWriterLib載入新的文檔時,會對整個文檔進行排版,對整個文檔計算文檔行,計算分頁,而當使用者編輯文檔而改變文檔內容時,XWriterLib會根據需要計算部分文檔的文檔行和分頁。這樣可以減少一次編輯操作導致的文檔排版工作量,提高編輯器響應使用者編輯操作的速度,還能減少編輯文檔時的使用者介面閃爍現象。

XWriterLib對文檔進行排版時,不是簡單的將文件項目從左至右從上到下的進行排列,而是伴隨著相當多的規則,其排版過程主要有以下規則

  1. 按照約定成俗,某些字元不能出現文檔行首或行尾。不能出現在行首的字元稱為後置標點,一般有“!),.:;?]}ǚˇˉD‖’”…∶、。〃々〉》」』】〕〗!"'),.:;?]`|}~¢”;不能出現在行尾的字元成為前置標點,一般有“([{·‘“〈《「『【〔〖(.[{£¥”。XWriterLib在進行排版時,若一個文本行的第一個字元是後置標點,則需要將上一個文本行的最後一個字元提出來放置到當前處理的文本行中,於是上一個文本行內部需要重新排版;若文本行最後一個字元是前置標點,而且文本行沒有剩餘的空間容納下一個字元,則該文本行提前結束,將這個前置標點放置到下一個文本行中。
  2. 若文檔中存在一段連續英文字母(26個英文字母,包括大小寫)和阿拉伯數字字元,中間沒有其他字元或非字元文件項目,則排版時將這段文字儘可能的安排到同一個文檔行,使得這段文本儘可能的保持一個整體而不分開,若文檔行剩餘的空間不足以容納這部分文本,則會提前換行,這會導致這個文本行出現了較大的空白地區。但在少數情況下,這段連續的字元長度超過的文檔的顯示寬度,則放棄該規則,仍然照常換行。
  3. 文檔右邊緣修正。文本行的寬度一般等於文檔的顯示寬度,是一個固定的值,而它包含的所有的文件項目的顯示寬度之和卻是不固定的,元素寬度和不一定等於文本行的寬度,這樣導致文檔行的右邊緣看上去參差不齊,影響美觀。為此需要修本文本行的右邊緣,XWriterlib的做法是將文本行寬度減去文件項目寬度和所得的差,也就是文本行剩餘的寬度,盡量平均分攤到文本行中各個元素上頭,每一個元素都有一個顯示寬度的修正量,如此文本行實現了右邊緣修正,使得各個文本行的左右都對齊。
    若文本行元素個數比較多時,分攤到各個元素的寬度修正量比較小,則使用者一般不會察覺到這個寬度修正量,若文本行元素比較少時,則分攤到各個元素的寬度修正量比較大,則使用者會察覺到元素寬度修正量,此時文本行中的各個元素看起來非常鬆散。
    XWriterLib在進行文檔右邊緣對齊時還會考慮到連續的英文字母和阿拉伯數字字元,若文檔中有連續的英文字元和阿拉伯數字字元,則這些字元之間是不會插入元素寬度修正量,此時它們應當承擔的寬度修正量轉移到其他元素上,定位字元也不接收寬度修正量。這樣處理也是考慮到文檔的美觀。
    若文本行只有一個文件項目或者它的最後一個字元是分行符號(軟斷行符號和硬斷行符號),則該文本行不進行右邊緣修正。

 

所見即所得 (WYSIWYG)的編輯介面

XWrtierLib實現了所見即所得 (WYSIWYG)的編輯介面,它將編輯介面和預覽列印介面整合在一起,編輯介面就是預覽列印介面。在XWriterLib文字編輯器中顯示的文檔樣式和實際列印輸出的樣式是完全一致的。使用者在編輯修改文檔的同時,XWriterLib會動態對文檔進行排版和分頁操作,使得編輯介面一直和列印輸出樣式保持一致。XWriterLib內部採用各種最佳化演算法,使得XWriterLib動態保持這種所見即所得 (WYSIWYG)的能力而不影響使用者流暢的編輯文檔。

XWriterLib的所見即所得 (WYSIWYG)的功能是基於微軟.NET架構提供的圖形顯示和列印能力的。XWriterLib在計算文件項目大小,排版和繪製文檔內容時是採用“System.Drawing.GraphicsUnit.Document”圖形度量單位,這種單位的刻度是1/300英寸,這是一種抽象的不依賴硬體的度量單位,因此XWriterLib就能在任意圖形輸出裝置(包括顯示器,印表機)上面實現文檔準確的輸出。

當文檔顯示在電腦螢幕上,由於還需要支援編輯操作,需要響應使用者介面的滑鼠鍵盤事件,而電腦螢幕是採用象素單位,象素單位是一種依賴硬體的度量單位,因此XWriterLib內部會進行這兩種單位的轉化,處理滑鼠資料時需要將象素座標轉化為文檔座標,在顯示文檔時還需要將文檔座標轉化為象素座標。這種操作是相當複雜的,但它在XWriterLib內部自動完成的,開發人員可以不用關心其中的具體演算法。

XWriterLib還支援續打功能,當文字編輯器處於續打模式時,使用者使用滑鼠點擊操作來設定續打位置,則文檔整體被續打位置分割成兩個部分,續打位置上面被藍色半透明地區覆蓋,而續打位置下面則是正常顯示。在實際列印輸出時,續打位置上方,也就是被半藍色透明地區覆蓋的部分文檔,無論其中包含文本,圖片或者自訂文件項目,將不會列印輸出,只有續打位置下方的文檔部分才會列印輸出,而且續打位置所在的那個文檔頁不會輸出頁首和頁尾。續打是XWriterLib提供的一種很特殊的列印方式,比較適合某些日誌類型的文檔的列印,在某些應用中這種功能是必須的。

 

對RTF文檔格式的支援

RTF文檔格式是一種應用非常廣泛的富文字文件格式,XWriterLib支援RTF文檔格式,XWriterLib能載入和儲存RTF文檔,將複製和粘貼RTF文檔片斷,還支援OLE拖拽將RTF文檔片斷從其他程式拖拽到正在編輯的文檔中。相對於標準的RichTextBox組件,XWriterLib增強了對RTF文檔的支援,能載入和儲存某些標準RichTextBox不支援的文檔特性,比如文本背景色,對超連結更好的支援等等。

XWriterLib內部自行處理RTF文檔,不依賴其他組件來處理RTF文檔,XWriterLib內部實現了RTF文檔解析器和產生器,並將RTF的功能融入到XDOM中。

 

對HTML文檔格式的支援

XWriterLib能將文檔輸出為HTML格式的文檔,產生的HTML文檔代碼非常簡潔,符合國際標準,沒有垃圾代碼,輸出HTML文檔時還能將文檔中包含的圖片使用PNG格式一併輸出,因此能完整的輸出圖文並茂的文檔。

XWriterLib內部實現了HTML文檔產生器,因此XWriterLib能獨立的輸出HTML文檔,不依賴其他組件。

 

文檔的載入和儲存

XWriterLib支援多種方式來載入和儲存文檔。XWriterLib內部支援RTF格式,因此簡單的調用其介面來將文檔以RTF格式進行載入和儲存。開發人員也可以使用純文字格式來載入和儲存無格式的常值內容。

XWriterLib內部使用一種XML序列化機制,能將文檔序列化為XML文檔,也可從XML文檔還原序列化產生文檔,因此開發人員可以使用XML格式載入和儲存文檔。

XWriterLib提供非常透明的編程介面,因此開發人員可以直接遍曆訪問XDOM,獲得其中文檔包含的所有資訊,然後自己設計文檔格式,將XWriterLib的文檔儲存為自訂格式,這種過程也可以設計成反向執行,從而能根據自訂文檔格式來載入文檔。這種自訂文檔格式可以是純文字的,XML或者二進位格式。

XWriterLib不限制文檔的儲存格式,開發人員可以將文檔儲存在本地檔案系統,儲存到資料庫中,或者直接上傳到WEB伺服器上;也可以從本地檔案,資料庫,或者WEB伺服器上來載入文檔。

 

和其他軟體的協同工作

XWriterLib支援OLE拖拽操作和Windows系統剪下板和其他軟體交流資料,從而實現協同工作。

XWriterLib支援OLE拖拽操作將資料拖拽插入到文檔中,支援多種資料格式。比如在Windows資源管理員中將一個副檔名為 bmp,png,jpg,jpeg,gif,emf的檔案拖拽到文檔中,則XWriterLib會將這個檔案視為圖片檔案進行載入,若成功的載入圖片則在文檔中插入一個圖片元素。若拖拽的資料直接是BMP格式,則會在文檔中插入一個圖片元素,該元素顯示的圖片就是拖拽的BMP圖片。若拖拽的資料是RTF格式,則會解析該RTF資料,然後在文檔中插入一個RTF文檔片斷,因此可以從Word拖拽一個文檔片斷到XWriterLib的文檔中。若拖拽的資料是純文字資料,則會根據這段純文字在文檔中插入一段常值內容。

XWriterLib支援系統剪下板來獲得文檔資料。比如在Windows資源管理員中複製一個副檔名為 bmp,png,jpg,jpeg,gif,emf的檔案,則在XWriterLib粘貼時會在文檔插入一個圖片元素,當剪下板中就是一個BMP圖片時,則粘貼操作會在文檔中插入一個圖片元素。當剪下板中是一個RTF文檔片斷時,則粘貼操作會在文檔中插入一段RTF文檔。若剪下板中是純文字資料,則粘貼操作會在文檔中插入一段純文字內容。

XWriterLib支援向系統剪下板設定資料。XWriterLib 會將文檔中的選中部分的純文字資料和RTF資料同時儲存到系統剪下板中。這樣其他軟體可以使用不同版本的資料,比如記事本等純文字編輯器能粘貼其中的純文字資料,與此同時MS Word 能粘貼其中的RTF文檔資料。

 

運行環境

XWriterLib運行環境如下

作業系統 Windows2000,WindowsXP或者更高版本

微軟.NET架構,版本1.1或更高版本

需要滑鼠的支援。

 

開發語言支援

VB.NET,C#或其他支援微軟.NET平台的開發語言。

 

著作權說明

XWriterLib沒有使用任何開原始碼,所有程式設計和編程完全由袁永福獨立完成的,具有完全的自主智慧財產權。請尊重作者的智慧財產權,請不要盜版,破解和反編譯本軟體。請支援國產原創軟體。想瞭解詳細資料請訪問 http://xdesigner.cnblogs.com 。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.