C 中列印Rtf文件

2021-04-12 22:04:22 字數 3786 閱讀 9207

**:微軟技術社群

下面的示例介紹了如何擴充套件richtextbox類,以及如何使用 em_formatrange 列印richtextbox控制項的內容。

1.在 visual c# .net 中,新建乙個名為 richtextboxprintctrl 的類庫專案。預設情況下建立 class1.cs。

2.將 class1.cs 的名稱改為 richtextboxprintctrl.cs。

3.在解決方案資源管理器中,右鍵單擊「引用」,然後單擊「新增引用」。

4.在「新增引用」對話方塊中,雙擊「system.drawing.dll」和「system.windows.forms.dll」,然後單擊「確定」。

5.將 richtextboxprintctl.cs 中的現有**替換為以下**:

using system;

using system.windows.forms;

using system.drawing;

using system.runtime.interopservices;

using system.drawing.printing;

namespace richtextboxprintctrl

[structlayout(layoutkind.sequential)]

private struct charrange

[structlayout(layoutkind.sequential)]

private struct formatrange

private const int wm_user  = 0x0400;

private const int em_formatrange  = wm_user + 57;

[dllimport("user32.dll")]

private static extern intptr sendmessage (intptr hwnd , int msg , intptr wp, intptr lp);

// render the contents of the richtextbox for printing

// return the last character printed + 1 (printing start from this point for next page)

public int print( int charfrom, int charto,printpageeventargs e)

}

}

6.在「生成」選單中,單擊「生成解決方案」以建立 richtextboxprintctrl.dll。

回到頂端

1.在 visual c# .net 中建立乙個新的 windows 應用程式專案。預設情況下將建立出 form1.cs。

2.將乙個按鈕控制項從工具箱拖入 form1。將name屬性更改為btnpagesetup,並將text屬性更改為頁面設定

3.將另乙個按鈕控制項從工具箱拖入 form1。將name屬性更改為btnprintpreview,並將text屬性更改為列印預覽

4.將另乙個按鈕控制項從工具箱拖入 form1。將name屬性更改為btnprint,並將text屬性更改為列印

5.在工具箱中,雙擊「printdialog」、「printpreviewdialog」、「printdocument」和「pagesetupdialog」以將這些控制項新增到 form1 中。

6.將printdialog1printpreviewdialog1pagesetupdialog1控制項的document屬性修改為printdocument1

7.在「工具」選單上,單擊「自定義工具箱」。

8.在「.net framework 元件」選項卡上,單擊「瀏覽」,單擊以選中「richtextboxprintctrl.dll」,然後單擊「確定」。

9.將richtextboxprintctrl從工具箱拖入 form1。

10.在解決方案資源管理器中,右鍵單擊form1.cs,然後單擊檢視**

11.將以下**新增到initializecomponent方法中:

this.printdocument1.beginprint += new system.drawing.printing.printeventhandler(this.printdocument1_beginprint);

this.printdocument1.printpage += new system.drawing.printing.printpageeventhandler(this.printdocument1_printpage);

this.btnprint.click += new system.eventhandler(this.btnprint_click);

this.btnprintpreview.click += new system.eventhandler(this.btnprintpreview_click);

this.btnpagesetup.click += new system.eventhandler(this.btnpagesetup_click);

12.將下面的**新增到 form1 類:

private int checkprint;

private void btnpagesetup_click(object sender, system.eventargs e)

private void btnprintpreview_click(object sender, system.eventargs e)

private void btnprint_click(object sender, system.eventargs e)

private void printdocument1_beginprint(object sender, system.drawing.printing.printeventargs e)

private void printdocument1_printpage(object sender, system.drawing.printing.printpageeventargs e)

13.在「除錯」選單上,單擊「啟動」以執行該應用程式。form1 將顯示出來。

14.在 richtextboxprintctrl 中鍵入一些文字。

15.單擊「頁面設定」以設定頁面設定。

16.單擊「列印預覽」以檢視頁面的列印預覽。

17.單擊「列印」以列印「richtextboxprintctrl」的內容。

c 列印文件

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...

C 列印文件換行

textbox設定為多行,輸入文字後,一段很長的文字在textbox裡是可以自動換行。但是列印時textbox裡面會自動換行的地方在紙張上卻不會自動換行。結果導致一段很長的文字無法列印完,紙張上僅能列印出部分文字,出界的文字全部丟失。private void printdocument1 print...

教程 滑鼠右鍵新建新增RTF文件

滑鼠右鍵新建新增rtf文件 今天想將空間日誌作個本地備份,但是苦於找不到適合的文字工具,因為一般的文字編輯工具都不支援貼圖。雖然word就可以滿足我們的需求,但檔案格式不用doc而是rtf 而我以前清理登錄檔時把所有的無用檔案都刪除了,所有現在需要重新加入rtf文件。我們既可以享用word提供的強大...