BMP圖像文件,并在VC + +環(huán)境下的GIF圖像文件轉(zhuǎn)換。首先分析了的BMP和GIF2圖像格式,然后在VC + +環(huán)境下建立自己的庫文件DIB.H和DIB.CPP,初始化的數(shù)據(jù)成員和函數(shù)成員使用,以實現(xiàn)BMP圖像的讀取,顯示和保存操作。理解的原則,基于LZW編碼算法的算法,在VC + +。同時,通過先前建立的在BMP圖像庫中,該相關(guān)函數(shù)被調(diào)用時,它可以找到對應(yīng)的特定的圖像數(shù)據(jù),從而BMP圖像數(shù)據(jù)被轉(zhuǎn)換成一個GIF圖象數(shù)據(jù)由LZW編碼,圖像格式轉(zhuǎn)換
成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元武城做網(wǎng)站,已為上家服務(wù),為武城各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
可以利用font 設(shè)置。設(shè)置方法如下:
TextBox1.Font = New System.Drawing.Font("宋體", 10)
也可以通過字體對話框來實現(xiàn) 如:
Private Sub myButton_Click(sender As Object, e As EventArgs)
Dim myFontDialog As FontDialog
myFontDialog = New FontDialog()
If myFontDialog.ShowDialog() = DialogResult.OK Then
' Set the control's font.
myDateTimePicker.Font = myFontDialog.Font
End If
End Sub
有個程序叫做ClearType,如果你是win7的,那你一直使用ClearType。使用ClearType可以把字體變得平滑,否則變得渾厚。銳利應(yīng)該是銳化字體,犀利...我也沒見過這種樣式的文字,有空再看。 firefox也有這種功能,可以取消或使用ClearType.
我的想法是:
先啟用個人程序的ClearType(置于怎么使用,你去查下,我也不知道),然后GDI截取文字部分的圖片,然后返回原來的ClearType狀態(tài),再輸出圖像.
這個應(yīng)該是打印機命令格式,不同的打印機命令格式不盡相同,你可以找這一款打印機的命令說明看一看,一般光盤里有帶的,或者到官網(wǎng)上下也可以。下面一些你可以先看看:
英文模式下的命令
代碼 功能
CR 回車
ESC ! 設(shè)置打印方式
ESC % 選擇或取消用戶自定義字符集
ESC 定義用戶自定義字符集
ESC * 設(shè)置位映射方式
ESC @ 初始化打印機
ESC ~ LED ON/OFF
ESC 返回行首
ESC 2 選擇行間距為1/6英寸
ESC 3 設(shè)置行進為最小間距
ESC BEL 蜂鳴器ON/OFF
ESC C 設(shè)置單頁長度
ESC c0 選擇打印頁
ESC c1 選擇行間距
ESC c3 選擇紙結(jié)束信號輸出
ESC c4 選擇打印紙及檢測器(終止打印)
ESC c5 禁止/使能面板開關(guān)
ESC c6 禁止/使能ON-LINE開關(guān)
ESC d 打印及N行進紙
ESC D 設(shè)置TAB位置
ESC e 打印病退回N行
ESC f 設(shè)單頁等待時間
ESC F 選擇或取消單頁退紙區(qū)
ESC i 全切割
ESC J 以最小間距進行打印和進紙
ESC K 以最小間距進行打印和退紙
ESC l 選擇或取消倒過來的字符
ESC m 局部切割
ESC o 印章
ESC p 產(chǎn)生指定脈沖
ESC q 釋放紙
ESC r 選擇打印顏色
ESC R 選擇國際字符子集
ESC SP 設(shè)置右邊界
ESC t 選擇字符碼表
ESC U 選擇或取消單向打印
ESC V 發(fā)送打印機狀態(tài)
ESC z 設(shè)置或取消兩頁并行打印
FF 打印送出單頁
HT 水平TAB
LF 換行
RS 流水TAB
中文模式下的命令
代碼 功能
FS – n 設(shè)置中文字符下劃線模式開關(guān)
FS ! n 選擇中文字體
FS 選擇中文字符模式
FS . 取消中文模式
EPSON打印控制指令集
打印命令 功能
格式: ASCII: 以標準ASCII字符序列表示
十進制: 以十進制數(shù)字序列表示
十六進制: 以十六進制數(shù)字序列表示
說明:該命令功能和使用說明。
HT 水平制表
格式: ASCII: HT
十進制: 09
十六進制: 09
說明:
打印位置進行到下一水平制表位置。
如果當前打印位置超過了最后一個水平制表位置,則HT命令不被執(zhí)行。
水平制表位置由 ESC D命令設(shè)置。
LF 打印并換行
格式: ASCII: LF
十進制: 10
十六進制: 0A
說明:
打印存放在行編輯緩存中的一行數(shù)據(jù)并按當前設(shè)定的行距向前走紙一行。ESC2,ESC3指令可設(shè)定行距的長短。
如果行編輯緩存空,則只按當前設(shè)定的行距向前走紙一行。
CR 打印回車
格式: ASCII: CR
十進制: 13
十六進制: 0D
說明:
當打印在行編輯緩存中的一行數(shù)據(jù)之后,不進行走紙操作。
DLE EOT n 實時狀態(tài)傳送
格式: ASCII: DLE EOT n
十進制: 16 04 n
十六進制: 10 04
說明:
1 ≤ n ≤ 4
傳送以實時的方式,n代表被選擇的打印機狀態(tài),基于下列參數(shù):
n = 1: 打印機狀態(tài)
n = 2: 脫機狀態(tài)
n = 3: 錯誤狀態(tài)
n = 4: 紙檢測器狀態(tài)
返回的字節(jié)每位設(shè)置如下:
n = 1: 打印機狀態(tài)
n = 2: 脫機狀態(tài)
n = 3: 錯誤狀態(tài)
n = 4: 紙檢測器狀態(tài)
DLE ENQ n 對打印機的實時請求
格式: ASCII: DLE ENQ n
十進制: 16 05 n
十六進制: 10 5
說明:
n = 0, n = 2
打印機對主機請求作出反應(yīng),n值定義如下:
n = 0: 恢復(fù)到聯(lián)機狀態(tài)
n = 2: 清除接收和打印緩沖區(qū),并恢復(fù)錯誤.
ESC SP n 設(shè)置字符右間距
格式: ASCII: ESC SP n
十進制: 2732 n
十六進制: 1B20 n
說明:
以半點為設(shè)定單位(1/144英寸),設(shè)置字符右邊間距為n個半點距。
默認值n=0。
ESC?。 設(shè)置字符打印方式
格式: ASCII: ESC ! n
十進制: 2733 n
十六進制: 1B21 n
說明:
0≤n≤255
ESC??! n是綜合性的字符打印方式設(shè)置命令,用于選擇打印字符的大小和下劃線。
打印參數(shù)n的每位定義為:
位 功能 值
0 1
0 字模選擇 7×9 5×7
1 無定義
2 無定義
3 著重模式 取消 設(shè)定
4 倍 高 取消 設(shè)定
5 倍 寬 取消 設(shè)定
6 無定義
7 下劃線 取消 設(shè)定
默認值n=0,
ESC % n 允許/禁止用戶自定義字符
格式: ASCII: ESC % n
十進制: 2737 n
十六進制: 1B25 n
說明:
參數(shù)n為一個字節(jié),只有最低位有效。
當n=<*******1>B時,選擇用戶自定義字符集;
當n=<*******0>B時,選擇內(nèi)部字符集。
0≤n≤255,默認值n=0。
ESC 設(shè)置用戶自定義字符
格式: ASCII: ESC y n m x d1 d2……db
十進制: 27 38 y n m x d1 d2……db
十六進制: 1B 26 y n m x d1 d2……db
說明:
該命令用于自定義字符。各參數(shù)為:
y:字符的縱向字節(jié)數(shù)。這里取 y=1,2。
n:自定義字符集的起始ASCII碼,n≥32。
m:自定義字符集的終止ASCII碼,m≤127。自定義字符個數(shù)為m-n+1,最多可定義96個字符。
當只有一個自定義字符時,取m=n。
a:自定義字符的水平方向的點數(shù)。
d1 d2……db:自定義字符的數(shù)據(jù)。每個字符 y×x個字節(jié),m-n+1個自定義字符共有:
(y×x)×(m-n+1)個字節(jié)。
每個自定義字符數(shù)據(jù)的格式:
d1 d3 … d(y×x)×(m-n+1)-1
d2 d4 … d(y×x)×(m-n+1)
樣例如下:
發(fā)送的命令如下:
ESC y c1 c2 X p1 p2 p3 d4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14
Code 1B 26 02 20 20 07 1F 80 20 00 44 00 80 00 44 00 20 00 1F 80
ESC * 設(shè)置圖形點陣
格式: ASCII: ESC * m n1 n2 D1,D2 … Dk
十進制: 27 42 m n1 n2 D1,D2 … Dk
十六進制: 1B 2A m n1 n2 D1,D2 … Dk
說明:
該命令用來設(shè)置點陣圖形模式(m)和橫向圖形點陣。
m = 0,1: 表示打印密度。
0≤n1≤255,0≤n2≤1,0≤Dk≤255,k= n1+ n2×256。
n1,n2為兩位十六進制數(shù),n1這低字節(jié),n2這高字節(jié),k= n1+ n2×256,表示該命令下載的要打印圖形的橫向點數(shù),該值應(yīng)小于打印機的最大行寬打印點數(shù)。如果下送的點圖數(shù)據(jù)超出一行的最大行寬打印點數(shù)時,超出的部分被忽略。
m 垂直方向點數(shù) 點密度 最大點數(shù) 圖形打印模式
0 8 單密度 210 相鄰點打印
1 8 雙密度 420 相鄰點不打印
Dk 定義為:
ESC -?n 設(shè)置/取消下劃線模式
格式: ASCII: ESC - n
十進制: 27 45 n
十六進制: 1B 2D n
說明:
n = 0, 1, 48, 49
n = 0 or 48,取消下劃線模式。
n = 1 or 49, 設(shè)置下劃線模式。
ESC 2 設(shè)定1/6英寸換行量
格式: ASCII: ESC 2
十進制: 2750
十六進制: 1B32
說明:
此指令將打印機的換行量設(shè)定為1/6英寸。
ESC 3 n 設(shè)定 n/144英寸換行量
格式: ASCII: ESC 3n
十進制: 2751 n
十六進制: 1B33 n
說明:
此指令將打印機的換行量設(shè)定為 n/144英寸。
n=1 - 255。
ESC 〈 打印頭歸位
格式: ASCII: ESC 〈
十進制: 2760
十六進制: 1B3C
說明:
執(zhí)行該指令后,打針頭會回到原位(home的位置)。
ESC =?n 設(shè)備設(shè)置/取消
格式: ASCII: ESC = n
十進制: 27 61 n
十六進制: 1B 3D n
說明:
1 ≤?n ≤?3
默認 n = 1
位 功能 值
0 1
0 打印機選擇 取消 設(shè)定
1 顧顯選擇 取消 設(shè)定
2 無定義
3 無定義
4 無定義
5 無定義
6 無定義
7 無定義
ESC ??n 取消用戶自定義字符
格式: ASCII: ESC ? n
十進制: 27 63 n
十六進制: 1B 3F n
說明:
32 ≤?n ≤?126
ESC @ 初始化打印機
格式: ASCII: ESC @
十進制: 2764
十六進制: 1B40
說明:
該命令初始化打印機:使打印機恢復(fù)到最初的聯(lián)機狀態(tài),清除以前留下的程序。
ESC D NULL 消除所有的水平制表位置
格式: ASCII: ESC D NULL
十進制: 27 68 0
十六進制: 1B44 0
說明:
ESC D NUL命令消除所有的水平制表位置,之后再執(zhí)行的HT命令將無效。
命令(ASCII) 十六進制 功能說明
HT 9 打印位置進行到下一水平制表位置
LF 0a 打印行緩沖器里的內(nèi)容,并向前走紙一行
CR 0D 打印回車
ESC SP 1B 20 n 設(shè)置字符右邊的字間距為n個半點距(1/140英寸)
DLE EOT n 10 04 實時狀態(tài)傳送
DLE ENQ n 10 5 對打印機的實時請求
ESC SP n 1B 20 n 設(shè)置字符右間距
ESC??! n 1B 21 n 設(shè)置字符打印方式
ESC % n 1B 25 n 允許/禁止用戶自定義字符
ESC 1B 26 設(shè)置用戶自定義字符
ESC * 1B 2A 設(shè)置圖形點陣
ESC - n 1B 2D n 設(shè)置/取消下劃線模式
ESC 2 1B 32 設(shè)定1/6英寸換行量
ESC 3 n 1B 33 n 設(shè)定 n/144英寸換行量
ESC 〈 1B 3C 打印頭歸位
ESC = n 1B 3D n 設(shè)備設(shè)置/取消
ESC ? n 1B 3F n 取消用戶自定義字符
ESC?。? 1B 40 初始化打印機
ESC D NULL 1B 44 0 消除所有的水平制表位置
ESC E n 1B 45 0 設(shè)置/取消著重模式
ESC G n 1B 47 0 設(shè)置/取消重疊模式
ESC J n 1B 4A n 執(zhí)行n/144英寸走紙
ESC K n 1B 4B n 打印并反向走紙
ESC R n 1B 52 n 選擇國際字符集
ESC U n 1B 55 n 設(shè)置/取消單向打印
ESC a n 1B 61 n 選擇對齊模式
ESC c 3 n 1B 63 33 n 輸出紙盡傳感器
ESC c 4 n 1B 63 34 n 設(shè)定缺紙時停止打印
ESC c 5 n 1B 63 35 n 允許/禁止走紙按鍵
ESC d n 1B 64 n 打印并進紙n字符行
ESC e n 1B 65 n 打印并反向進紙n字符行
ESC p 1B 70 產(chǎn)生錢箱驅(qū)動脈沖
ESC r n 1B 72 n 選擇打印顏色
ESC t n 1B 73 n 選擇字符集
ESC { n 1B 7B n 設(shè)置/取消倒向打印模式
FS ! 1B 75 n 漢字綜合選擇
FS & 1C 26 進入漢字打印方式
FS ~ S 1C 7E 53 n 選擇漢字打印速度
FS · 1C 2E 退出漢字打印方式
FS 2 1C 32 用戶自定義漢字
FS ? c1 c2 1C 3F c1 c2 取消用戶自定義漢字
FS C n 1C 43 n 設(shè)定日文漢字編碼系統(tǒng)
FS S n1 n2 1C 53 n1 n2 設(shè)定全角漢字字間距
FS W n 1C 57 n 設(shè)定/取消四倍角漢字模式
GS ( F pL pH a m nL nH 1D 28 設(shè)置黑標定位偏移量
GS In 1D 49 n 傳送打印機ID
GS V 1D 56 m 走紙到切紙位置
1D 56 m n
GS a n 1D 61 n 設(shè)定/取消自動返回狀態(tài)
GS r n 1D 72 n 狀態(tài)傳送
GS z 1D 7A 設(shè)置聯(lián)機恢復(fù)等待時間
給點提示吧,已粗體為例(完全是我自己的方法,不知別人是怎么做的):
'先獲取選擇的字體信息(字體、大小、樣式。。。)
Dim currentFont As System.Drawing.Font = RichTextBox1.SelectionFont
'在重新定義某種樣式的時候,不丟失其他信息
RichTextBox1.SelectionFont = New Font(currentFont.FontFamily, currentFont.Size, FontStyle.Bold)