设置打印机后台打印数据格式的几个办法
2008-04-09 04:22:49来源:互联网 阅读 ()
接下来,谈谈处理这个问题的几种办法:
不用说,这一种办法当然是打印机控制程序设置。招打,快闪!这个办法阿猫阿狗都会。
第二种办法,我是查了N多的资料才发现的,通过修改注册表中打印机参数,这其实也是这一种办法的变通办法,具体请看http://www2.lszy.net/tm/Article_Print.asp?ArticleID=804
第三种办法,能过调用WINSPOOL设置Printer_Info_2; ,这才是真正的设置打印机。
//取得当前打印机句柄
function TfrmPrint.GetCurrentPrinterHandle: THandle;
var
Device, Driver, Port : array[0..255] of char;
hDeviceMode: THandle;
begin
Printer.GetPrinter(Device, Driver, Port, hDeviceMode); //得到当前打印机名称
if not OpenPrinter(@Device, Result, nil) then //取得打印机句柄
RaiseLastWin32Error;
end;
//初始设置打印机
procedure TfrmPrint.initPrintSet;
var
hPrinter : THandle;
pInfo: PPrinterInfo2;
bytesNeeded: DWORD;
begin
hprinter := GetCurrentPrinterHandle;
try
Winspool.GetPrinter( hPrinter, 2, Nil, 0, @bytesNeeded ); //取得printerInfo2的structure size
pInfo := AllocMem( bytesNeeded ); //分配空间
try
Winspool.GetPrinter( hPrinter, 2, pInfo, bytesNeeded, @bytesNeeded ); //取得具体参数组
pInfo.pDatatype :=''''RAW''''; //转成RAW格式
SetPrinter(hPrinter,2,pInfo,0); //保存新的参数组
finally
FreeMem( pInfo );
end;
finally
ClosePrinter( hPrinter );
end;
end;
到此,设置完成,不过,我还是有几个疑惑,查MSDN得知printerInfo2.Attributes中的PRINTER_ATTRIBUTE_RAW_ONLY好像也是设置RAW格式,但一直无法使用。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash