急! 在DELPHI5中如何实现逐行打印而不翻页(普通针打)?

lybt 2000-06-17 01:14:00
...全文
151 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgb 2001-02-02
  • 打赏
  • 举报
回复
先根据内容计算有多少行,每行高度,得到总的高度。
设置自定义纸张,高度为上面计算得到的高度。下面是改变纸张大小的函数。

procedure ChgPaperSize(PSize, PLen, PWid: Integer);
var Device: array[0..cchDeviceName-1]of Char;
Driver: array[0..(MAX_PATH-1)]of Char;
Port: array[0..32]of Char;
hDMode: THandle;
pDMode: PDevMode;
begin
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
PDMode:= GlobalLock(hDMode);
if pDMode <> nil then
begin
pDMode^.dmPaperSize:= PSize;
if PSize = 256 then
begin
pDMode^.dmPaperLength:= PLen;
pDMode^.dmPaperWidth:= PWid;
end;
pDMode^.dmFields:= pDMode^.dmFields or DM_PAPERSIZE;
pDMode^.dmFields:= pDMode^.dmFields or DM_PAPERLENGTH;
pDMode^.dmFields:= pDMode^.dmFields or DM_PAPERWIDTH;
ResetDC(Printer.Handle, pDMode^);
GlobalUnlock(hDMode);
end;
end;
end;

alaclp 2001-02-02
  • 打赏
  • 举报
回复
在一张纸的上设置多个页面打印内容,这样打印机只认为是一页内容
chinawen 2000-06-17
  • 打赏
  • 举报
回复
不是有一个LinePrinter的控件吗,去找找,应该可以。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧