如何提取当前打印机的配置信息,如纸张大小!

楼主huang110(今天没做坏事的人)2005-12-22 17:45:02 在 Delphi / 非技术区 提问

如何提取当前打印机的配置信息,如纸张大小! 问题点数:20、回复次数:2Top

1 楼dh0497(新版好难看,你们没有招到美工吗?)回复于 2006-02-19 23:14:16 得分 20

得到打印机纸张可以用DeviceCapabilities函数,具体用法还是建议参考msdn,一下是例子:  
  ......  
  var  
      sPrinterName,   sPort:   String;                       //打印机的名称,连接端口如LPT1  
      lpwPapers:   Pointer;             //得到纸张类型名称  
      dResult:   DWORD;  
  begin  
      dResult   :=   DeviceCapabilities(PChar(sPrinterName),PChar(sPort),DC_PAPERNAMES,   nil,   nil);  
      if   dResult   >   0   then   begin  
          GetMem(lpwPapers,   65);       //分配空间,msdn上注明:每个纸张名都是64个字符  
          try  
              if   DeviceCapabilitiesA(PChar(sPrinterName),PChar(sPort),DC_PAPERNAMES,  
              lpwPapers,   nil)   =   -   1   then  
                  raise   Exception.Create('Error');  
              ShowMessage(StrPas(lpwPapers));  
          finally  
              FreeMem(lpwPapers,   65);  
          end;  
      end;  
     
  end;  
  ......  
  Top

2 楼NewQger(Q哥)回复于 2006-03-24 00:52:14 得分 0

markTop

你可能对以下的问题也比较感兴趣....