C 使用開源類庫解析和生成rtf格式的內容

2022-09-24 04:30:12 字數 1054 閱讀 7755

解決方案之rtfdomparser[1]

rtfdomparser是個開源的c#類庫,主要用於解析rtf格式內容並生成rtf文件結構樹,該類庫使用gnu2授權。rtfdomparser的原始碼位址為:

該類庫定義了多種rtf元素型別,對應rtf格式中的不同物件。

類庫中最重要的類是rtfdomdocument,該類既用於解析rtf格式檔案,也可解析rtf格式字串,並將解析後的文件結構樹儲存到物件內容,該類提供的方法如下:

類庫中提供了乙個示例專案,專案名稱為rtfdomparser.winformsdemo,該專案用winform的方式展示了如何使用該類庫來解析rtf格式內容。我仿照該專案寫了個測試程式,主要用來解析richtextbox控制項中的rtf格式內容(c#richtextbox控制項中有乙個rtf屬性,可以返回rtf格式的內容),還可以解析剪下板中的rft內容,測試視窗截圖如下:

解決方案之dotnetrtfwriter

dotnetrtfwriter是乙個開源的.net類庫,主要用於建立rtf文件。專案的原始碼位址為:

該類庫中將rtf內容分為四類:

rtfparagraph型別:表示一段文字,可以設定字型大小、顏色,前景色、背景色等屬性;

rtfsection型別:示例和說明中沒有介紹,暫時不清楚這個型別該如何使用;

rtftable型別:表示乙個**,可以設定**行數、列數、格式、內容等屬性;

rtfimage型別:表示乙個圖形,可以設定圖形的**和尺寸,但實際測試時沒有將圖形載入起來;

類庫中最重要的類是rtfdocument類,該類表示乙個rtf文件,它繼承自rtfblocklist類。

使用rtfdocument類建立乙個物件例項後,可以通過呼叫addparagraph、addimage、addtable等方法向文件中增加文字、影象或**。最終通過呼叫s**e函式將文件內容儲存為乙個rtf格式的文件,或者呼叫render函式返回rtf格式的字串,供其它模組使用。

本文測試時使用的是該類庫自帶的示例,效果如下圖所示:

測試的時候對於在rtf文件中加還有點問題,根據它提供的示例無法把加到richtextbox控制項中,目前還在查詢原因。

C 關於庫專案的生成和使用

如果我們的程式想要使用 匯入 載入 某個dll中的函式,那麼該函式必須在dll中是已經匯出的。首先需要配置需要的lib檔案,之後再採用extern或 declspec dllimport 宣告。配置lib檔案有兩種,一種是在專案屬性中配置,另一種是在程式中加入下述 比如說使用的是a.lib檔案 這兩...

動態庫生成和使用

先看 pop.c extern int stack 512 extern int top int pop push.c extern int stack 512 extern int top void push int v main.c include int stack 512 int top 0...

使用nini開源類庫實現c 對ini檔案的讀寫

system allowregcount 99999 要使用nini的功能,先要在專案中 新增引用 找到對應的nini.dll檔案,引入進來,因為我用的是asp.net2.0,故引用的asp.net2.0對應的nini.dll.在要操作ini檔案的 中引入對應的命名空間using nini.conf...