起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 510|回复: 20

【结贴】DocView怎样设置打印机?**

[复制链接]
发表于 2009-3-14 11:53:45 | 显示全部楼层 |阅读模式
DocView怎样设置打印机?
两台打印机同时打印两个不同的东西。需分别指定打印机.
回复

使用道具 举报

发表于 2009-3-14 12:08:38 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-14 13:42:48 | 显示全部楼层
2楼那个方法是改变当前WONDOWS的默认打印机,这种方法是不行的。
我要在同一窗体下同时打印两个不同的东西(一个是条形码,另一个是合格证)。
请注意上面的两个“同时”.
最好是有这种方法如:
DocView1的打印机:=A 打印机
DocView2的打印机:=B 打印机
回复 支持 反对

使用道具 举报

发表于 2009-3-14 14:02:10 | 显示全部楼层
在打印的时候设置对应的打印机不行吗?
也就是在按下打印按钮时再设置默认打印机
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-14 14:15:19 | 显示全部楼层
不行,不信你自己试试。全用设的第一个打印机打出来了。
procedure TCT1.BitBtn1Click(Sender: TObject);
  var
  LPrinter:string;
  PrinIniFile:Tinifile;
  LStr:string;
begin
  LStr:='\\192.168.1.6\HP LaserJet 1020';
  StringUtils.delete(Lstr,StringUtils.pos('on',Lstr),Length(LStr));
  PrinIniFile:=TIniFile.Create('WIN.ini');
  try
    LPrinter:=PrinIniFile.ReadString('Devices',LStr,'');
    PrinIniFile.writestring('windows','device',LStr+','+LPrinter);
  finally
    PrinIniFile.free;
    Borland.Delphi.Windows.SendMessage (Borland.Delphi.Windows.HWND_BROADCAST,
      Borland.Delphi.Messages.WM_SETTINGCHANGE, 0, 0);
  end;
  TSheetDoc(DocView1.doc).Exporter.Printex(false, false);

  // 第二个打印
  LStr:='Microsoft Office Document Image Writer';
  StringUtils.delete(Lstr,StringUtils.pos('on',Lstr),Length(LStr));
  PrinIniFile:=TIniFile.Create('WIN.ini');
  try
    LPrinter:=PrinIniFile.ReadString('Devices',LStr,'');
    PrinIniFile.writestring('windows','device',LStr+','+LPrinter);
  finally
    PrinIniFile.free;
    Borland.Delphi.Windows.SendMessage (Borland.Delphi.Windows.HWND_BROADCAST,
      Borland.Delphi.Messages.WM_SETTINGCHANGE, 0, 0);
  end;
  TSheetDoc(DocView2.doc).Exporter.Printex(false, false);

end;
回复 支持 反对

使用道具 举报

发表于 2009-3-14 15:06:14 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-14 15:35:50 | 显示全部楼层
你是说按那个贴子7楼的方法吗?
那样做在执行 TSheetDoc(DocView1.doc).Exporter.Printex(false, false); 这个时报指针错。
回复 支持 反对

使用道具 举报

发表于 2009-3-16 11:00:46 | 显示全部楼层
刚才在处理一个别的问题耽误了一下,楼主这个地址错可能要自己跟一下了,看看是哪个对象为空了,我下面把自己做法说一下,楼主可以仿来看看:
  我在一个docSheet上放了一个按钮里面的代码只一行,如下:
    Exporter.Printex(True, false);     
  运行的时候就会出打印提示框了,在这个框里可以选择打印机,设置打印份数儿,横打,纵打等,就是那个windows的打印选择框。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-16 15:02:26 | 显示全部楼层
8楼的你说的是用那种方法?是本贴5楼的吗?
回复 支持 反对

使用道具 举报

发表于 2009-3-16 15:30:47 | 显示全部楼层
哦?我理解错了。不过建议还是一个个的打手选吧,你写死了,万一系统换个驱动,或是IP机器名儿啥的你的打印就不灵了。
另外在我的机器上一调用sendMessage程序就会就没响应了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-23 03:04 , Processed in 0.056997 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表