全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1336
推到 Plurk!
推到 Facebook!

隨時變更字距大小的問題

尚未結案
Jack0323
初階會員


發表:22
回覆:70
積分:28
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-20 18:06:02 IP:211.74.xxx.xxx 未訂閱
請問各位高手: 如何用Printer的列印方式 做出像以前DOS時代的倚天中文的那種控制碼方式 加上控制碼~W2 就可以讓印表機隨時變動 還請各位大大伸出援手
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-20 18:10:57 IP:211.20.xxx.xxx 未訂閱
引言: 請問各位高手: 如何用Printer的列印方式 做出像以前DOS時代的倚天中文的那種控制碼方式 加上控制碼~W2 就可以讓印表機隨時變動 還請各位大大伸出援手
Jack0323 你好 請參考以下連結 http://delphi.ktop.com.tw/topic.php?topic_id=34073 http://delphi.ktop.com.tw/topic.php?topic_id=20579
Jack0323
初階會員


發表:22
回覆:70
積分:28
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-20 18:49:32 IP:211.74.xxx.xxx 未訂閱
Chance36 大大謝謝你的回答 hjhjack1 大大的範例我有參考過了 我也是要列印文字檔的 但是碰到一個問題 就是我將字距先設為6 但是在列印某行時,可能字距要設成0 等某行印完時,再設成6 但是只有剛開始設定字距時有效 在後面所設定字距時,就没有作用了 不知道是什麼原因,實在是找不出來 .... Printer.BeginDoc; Printer.Canvas.Font.Size := 12; Printer.Canvas.Font.Name := '細明體'; SetTextCharacterExtra(Printer.Canvas.Handle , 6); .... if POS('~T',aStr) <> 0 then begin if POS('~T0',aStr) <> 0 then SetTextCharacterExtra(Printer.Canvas.Handle , 0) <設定無效> else SetTextCharacterExtra(Printer.Canvas.Handle , 6);<設定無效> end .... Printer.EndDoc;
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-31 15:39:59 IP:203.204.xxx.xxx 未訂閱
引言: 我也是要列印文字檔的 但是碰到一個問題 就是我將字距先設為6 但是在列印某行時,可能字距要設成0 等某行印完時,再設成6 但是只有剛開始設定字距時有效 在後面所設定字距時,就没有作用了 不知道是什麼原因,實在是找不出來
....
    Printer.BeginDoc;
    Printer.Canvas.Font.Size := 12;
    Printer.Canvas.Font.Name := '細明體';
    SetTextCharacterExtra(Printer.Canvas.Handle , 6);
....
     if POS('~T',aStr) <> 0 then
         begin
           if POS('~T0',aStr) <> 0 then
         SetTextCharacterExtra(Printer.Canvas.Handle , 0) <設定無效>
           else
         SetTextCharacterExtra(Printer.Canvas.Handle , 6);<設定無效>
         end    
....
Printer.EndDoc;
我照您這樣做測試沒問題阿, 完整的測試碼如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Printer.PrinterIndex := ComboBox1.ItemIndex;
  Printer.BeginDoc;      Printer.Canvas.Font.Size := 12;
  Printer.Canvas.Font.Name := '細明體';
  SetTextCharacterExtra(Printer.Canvas.Handle , 12);
  Printer.Canvas.TextOut(10, 10, '細明體字距12');
  Printer.Canvas.Font.Name := '細明體';
  SetTextCharacterExtra(Printer.Canvas.Handle , 0);
  Printer.Canvas.TextOut(10, 110, '細明體字距0');      Printer.Canvas.Font.Name := '標楷體';
  SetTextCharacterExtra(Printer.Canvas.Handle , 12);
  Printer.Canvas.TextOut(10, 210, '標楷體字距12');
  Printer.Canvas.Font.Name := '標楷體';
  SetTextCharacterExtra(Printer.Canvas.Handle , 0);
  Printer.Canvas.TextOut(10, 310, '標楷體字距0');      Printer.EndDoc;
end;
印到PDF檔案如下: http://delphi.ktop.com.tw/loadfile.php?TOPICID=21338162&CC=477218 <iFrame src="http://www.coss.com.tw/jieshu/sign.htm" width=400 height=105 scolling="NO" border="0"></iFrame> 震江系統(股)公司: http://www.coss.com.tw/ 捷舒軟體設計坊: http://www.coss.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
系統時間:2024-05-17 11:55:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!