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

列印超長文件

 
jjyeah
一般會員


發表:10
回覆:11
積分:4
註冊:2002-06-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-06-27 00:32:26 IP:163.31.xxx.xxx 未訂閱
請問各路高手: 一般印表機(a4)在列印文件時本身就有紙長尺寸設定, 但如果我想印一張超過a4頁面長度的文件(ex:800 mm),那我該如何做呢??thx.
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-06-28 21:58:55 IP:192.168.xxx.xxx 未訂閱
引言: 請問各路高手: 一般印表機(a4)在列印文件時本身就有紙長尺寸設定, 但如果我想印一張超過a4頁面長度的文件(ex:800 mm),那我該如何做呢??thx.
請問您想要用那一種列印元件做? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
jjyeah
一般會員


發表:10
回覆:11
積分:4
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-06-30 00:37:54 IP:61.64.xxx.xxx 未訂閱
只要是Delphi 中能做出來都可以...thx..
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-06-30 07:57:32 IP:192.168.xxx.xxx 未訂閱
引言: 只要是Delphi 中能做出來都可以...thx..
拉一個Form1,拉一個Memo1,拉一個Button1
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,printers;    type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.DFM}    procedure TForm1.Button1Click(Sender: TObject);
var y,h,h2,i:integer;
begin
  y:=0;
  printer.BeginDoc;
  printer.Canvas.Font.size:=12;
  printer.Canvas.Font.name:='細明體';
  h:=printer.Canvas.textheight('W');
  h2:=h div 2;
  for i:=0 to memo1.Lines.count-1 do
  begin
     printer.canvas.TextOut(0,y,memo1.lines[i]);
     y:=y h h2;
     if y h>=printer.PageHeight then
     begin
        printer.NewPage;
        y:=0;
     end;
  end;
  printer.enddoc;    end;    end.
以上程式會從Memo1中印出文字資料於印表機中 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
jjyeah
一般會員


發表:10
回覆:11
積分:4
註冊:2002-06-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-06-30 18:04:57 IP:61.64.xxx.xxx 未訂閱
sorry!! 我試過了耶.. 但在BeginDoc時就當了... 不知道為什麼哩... 不過謝謝你的回答, 我再try try...thx
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-06-30 19:22:12 IP:192.168.xxx.xxx 未訂閱
引言: sorry!! 我試過了耶.. 但在BeginDoc時就當了... 不知道為什麼哩... 不過謝謝你的回答, 我再try try...thx
怎樣的當法? 您的電腦有設定印表機嗎? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
jjyeah
一般會員


發表:10
回覆:11
積分:4
註冊:2002-06-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-07-01 17:10:48 IP:61.64.xxx.xxx 未訂閱
編譯完執行發生下面錯誤: Project Project1.exe raised exception EPrinter with message 'Printing in progress'. 我的電腦有預設印表機, 這個錯誤是在 printer.beingdoc 時就發生的...
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-07-01 17:58:07 IP:192.168.xxx.xxx 未訂閱
引言: 編譯完執行發生下面錯誤: Project Project1.exe raised exception EPrinter with message 'Printing in progress'. 我的電腦有預設印表機, 這個錯誤是在 printer.beingdoc 時就發生的...
這我也發生過的,但這程式我執行沒問題, 您可增加,下列指令: while printer.Printing do application.processmessage; printer.beingdoc; ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
jjyeah
一般會員


發表:10
回覆:11
積分:4
註冊:2002-06-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-07-01 18:16:19 IP:61.64.xxx.xxx 未訂閱
ok...我試過了,是程式上出了點問題, 但是我想要的是"不換頁" 也就是說我的列印紙張是210*800,在不換頁的情形下列印,該如何做呢?thanks.
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-07-01 18:49:39 IP:192.168.xxx.xxx 未訂閱
引言: ok...我試過了,是程式上出了點問題, 但是我想要的是"不換頁" 也就是說我的列印紙張是210*800,在不換頁的情形下列印,該如何做呢?thanks.
您的印表機的設定紙張大小也是設為210*800嗎? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
jjyeah
一般會員


發表:10
回覆:11
積分:4
註冊:2002-06-27

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-07-01 19:04:43 IP:61.64.xxx.xxx 未訂閱
沒辦法這樣設吧!! 就是因為如此我才想到站上來找找方法, 看看能透過什麼樣的方式能夠做出我要的東西, 印表機自己會自動分頁...很困擾... 還是說可以設定印表機的參數? 謝謝你的回答.
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-07-01 19:25:36 IP:192.168.xxx.xxx 未訂閱
引言: 沒辦法這樣設吧!! 就是因為如此我才想到站上來找找方法, 看看能透過什麼樣的方式能夠做出我要的東西, 印表機自己會自動分頁...很困擾... 還是說可以設定印表機的參數? 謝謝你的回答.
可否明確說出您的需求,為何不要換頁? 若用我原來的程式,將邊界設為0,雖然會換頁,但應也可以看起來好像連頁一樣? 您是用那一種印表機? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#13 引用回覆 回覆 發表時間:2002-07-02 10:00:07 IP:61.231.xxx.xxx 未訂閱
引言: 沒辦法這樣設吧!! 就是因為如此我才想到站上來找找方法, 看看能透過什麼樣的方式能夠做出我要的東西, 印表機自己會自動分頁...很困擾... 還是說可以設定印表機的參數? 謝謝你的回答.
在 Windows 下,如果要列印奇怪紙張,就一定要「自定紙張大小」,否則,設定紙張大小為 A4,在列印到 A4 大小時就會換頁! 因為硬體是很笨的,軟體告訴它紙有多大,它才會知道。 所以,你一定要從控制台→列表機→列印喜好設定→紙張→自定大小 輸入您要的大小,如此您的程式就可以 work 了!(因為程式本來就是對的不是程式的問題 )
------
http://www.ViewMove.com
jjyeah
一般會員


發表:10
回覆:11
積分:4
註冊:2002-06-27

發送簡訊給我
#14 引用回覆 回覆 發表時間:2002-07-02 19:21:17 IP:61.64.xxx.xxx 未訂閱
...好吧... 那就來個主題好了.. 比如說,印春聯!!! 春聯的寬度一般印表機可以印,但長度就是我的問題了, 此外, 我的印表機是hp-dj610c 在控制台中我也設定了新格式,但列印時在印表機內容中找不到我新增的那個格式!就這樣了,謝謝你們抽空回答.
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#15 引用回覆 回覆 發表時間:2002-07-02 19:32:01 IP:61.219.xxx.xxx 未訂閱
引言: ...好吧... 那就來個主題好了.. 比如說,印春聯!!! 春聯的寬度一般印表機可以印,但長度就是我的問題了, 此外, 我的印表機是hp-dj610c 在控制台中我也設定了新格式,但列印時在印表機內容中找不到我新增的那個格式!就這樣了,謝謝你們抽空回答.
若您的印表機為噴墨,印表機不會讓您將紙張設那麼長, 而且我也很好奇,噴墨印表機如何裝入那麼長的紙張, 因該是點陣才有辦法放入連續式報表,才有辦法很長吧! 有一個辦法可以解決您的問題,就是直接丟控制指令給印表機, 但程式可能很不好寫,因要自己處理字型與圖形陣列轉換印表指令的程序! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
chiehmin
高階會員


發表:13
回覆:134
積分:134
註冊:2002-05-23

發送簡訊給我
#16 引用回覆 回覆 發表時間:2002-07-05 09:41:41 IP:61.221.xxx.xxx 未訂閱
引言: 在 Windows 下,如果要列印奇怪紙張,就一定要「自定紙張大小」,否則,設定紙張大小為 A4,在列印到 A4 大小時就會換頁! 因為硬體是很笨的,軟體告訴它紙有多大,它才會知道。 所以,你一定要從控制台→列表機→列印喜好設定→紙張→自定大小 輸入您要的大小,如此您的程式就可以 work 了!(因為程式本來就是對的不是程式的問題 ) < face="Verdana, Arial, Helvetica"> 在Windows2000/XP下.....列印喜好設定裡皆沒有自定大小可以選.. 請問有辦法解決嗎? 謝謝 否則程式就非得在Windows98/ME下執行列印了..-__-|||
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#17 引用回覆 回覆 發表時間:2002-07-06 14:27:20 IP:61.59.xxx.xxx 未訂閱
引言:
引言: 在 Windows 下,如果要列印奇怪紙張,就一定要「自定紙張大小」,否則,設定紙張大小為 A4,在列印到 A4 大小時就會換頁! 因為硬體是很笨的,軟體告訴它紙有多大,它才會知道。 所以,你一定要從控制台→列表機→列印喜好設定→紙張→自定大小 輸入您要的大小,如此您的程式就可以 work 了!(因為程式本來就是對的不是程式的問題 ) < face="Verdana, Arial, Helvetica"> 在Windows2000/XP下.....列印喜好設定裡皆沒有自定大小可以選.. 請問有辦法解決嗎? 謝謝 否則程式就非得在Windows98/ME下執行列印了..-__-|||
我的系統就是 Windows2000 .... [自定大小] 是在紙張的那一欄,內定的紙張也許是 [ A4 ][↓] 按下右邊的那個[↓] 在第一項或最後一項通常就是 [ 自定大小 ] 選它之後,會出現自定的長、寬輸入欄位,輸入想要的長度即可。
------
http://www.ViewMove.com
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#18 引用回覆 回覆 發表時間:2002-07-06 14:39:52 IP:61.59.xxx.xxx 未訂閱
引言:
引言: ...好吧... 那就來個主題好了.. 比如說,印春聯!!! 春聯的寬度一般印表機可以印,但長度就是我的問題了, 此外, 我的印表機是hp-dj610c 在控制台中我也設定了新格式,但列印時在印表機內容中找不到我新增的那個格式!就這樣了,謝謝你們抽空回答.
若您的印表機為噴墨,印表機不會讓您將紙張設那麼長, 而且我也很好奇,噴墨印表機如何裝入那麼長的紙張, 因該是點陣才有辦法放入連續式報表,才有辦法很長吧! 有一個辦法可以解決您的問題,就是直接丟控制指令給印表機, 但程式可能很不好寫,因要自己處理字型與圖形陣列轉換印表指令的程序! ~~~Delphi K.Top討論區站長~~~
之前我有寫過一個程式是網咖計費的程式,而其紙張大小就如三聯式的發票大小,一開始我也一直想要直接控制列表機,但那真的是不太容易,最後解決的方法是在控制台將列表機的紙張設成自定大小,其大小與真實紙張相同,而我在程式中,則是直接使用 bcb 的列印元件直接列印,只有設定字型及行距,不去選定紙張,如此,可以正常套印在紙上,列印不滿下跳頁,也都正常的跳頁。 hp-dj610c 我是沒有用過,不過,大部分的列表機都應該可以支援列印長條紙,例如: L 型的要載入長條紙自然是沒問題;而 匚 型的通常也支援從後面直接進紙,所以只要使用自定紙張就應該是可以列出長條紙。
------
http://www.ViewMove.com
jjyeah
一般會員


發表:10
回覆:11
積分:4
註冊:2002-06-27

發送簡訊給我
#19 引用回覆 回覆 發表時間:2002-07-08 11:25:11 IP:61.64.xxx.xxx 未訂閱
Sorry!能不能請你再說清楚一點, 我用Win2000,在列印伺服器中我也設定了紙張尺寸, 列印時也沒讓它執行換頁指令(newpage) 但印表機印完一頁後,後面的資料他就不印了....不知道為什麼......
系統時間:2024-04-27 0:32:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!