如何取得当前打印机所用的纸张Form名称?
时间:2011-10-11
来源:互联网
如下可取得印表机所有纸张格式名称:
procedure GetPrinterPapers(vStrs: TStrings);
var
Device, Driver, Port: array[0..255] of Char;
hDevMode: THandle;
j, numPaperformats: Integer;
pPaperFormats: PPapernameArray;
vPrinter: TPrinter;
begin
vPrinter := TPrinter.Create;
vPrinter.PrinterIndex := -1;
vPrinter.GetPrinter(Device, Driver, Port, hDevmode);
numPaperformats :=
WinSpool.DeviceCapabilities(Device, Port, DC_PAPERNAMES, nil, nil);
if numPaperformats > 0 then
begin
GetMem(pPaperformats,
numPaperformats * Sizeof(TPapername));
vStrs.clear;
try
WinSpool.DeviceCapabilities
(Device, Port, DC_PAPERNAMES,
Pchar(pPaperFormats), nil);
for j := 1 to numPaperformats do
vStrs.add(pPaperformats^[j]);
finally
FreeMem(pPaperformats);
end;
end;
end;
但我该如何取得当前印表机选的纸张格式名称是A4、B5、自订或其它的自订名例如"测试" ?
目前只有想到遍历每一种纸张取得其大小,如果和当前印表机纸张大小符合即可能是当前选中项目,
但这有一个问题就是假使有2种自定义纸张叫"自定义1"、"自定义2",且它们的纸张大小都设成相同,
此时便无法判断当前选择的是哪一个了?
是否有其他方式或API可以直接取得的呢?谢谢
procedure GetPrinterPapers(vStrs: TStrings);
var
Device, Driver, Port: array[0..255] of Char;
hDevMode: THandle;
j, numPaperformats: Integer;
pPaperFormats: PPapernameArray;
vPrinter: TPrinter;
begin
vPrinter := TPrinter.Create;
vPrinter.PrinterIndex := -1;
vPrinter.GetPrinter(Device, Driver, Port, hDevmode);
numPaperformats :=
WinSpool.DeviceCapabilities(Device, Port, DC_PAPERNAMES, nil, nil);
if numPaperformats > 0 then
begin
GetMem(pPaperformats,
numPaperformats * Sizeof(TPapername));
vStrs.clear;
try
WinSpool.DeviceCapabilities
(Device, Port, DC_PAPERNAMES,
Pchar(pPaperFormats), nil);
for j := 1 to numPaperformats do
vStrs.add(pPaperformats^[j]);
finally
FreeMem(pPaperformats);
end;
end;
end;
但我该如何取得当前印表机选的纸张格式名称是A4、B5、自订或其它的自订名例如"测试" ?
目前只有想到遍历每一种纸张取得其大小,如果和当前印表机纸张大小符合即可能是当前选中项目,
但这有一个问题就是假使有2种自定义纸张叫"自定义1"、"自定义2",且它们的纸张大小都设成相同,
此时便无法判断当前选择的是哪一个了?
是否有其他方式或API可以直接取得的呢?谢谢
作者: dkjfsoman 发布时间: 2011-10-11
或是请问如何跳过PrintDialog的画面
直接开启印表机驱动所提供的设定页面?
例如Foxit Reader它的列印介面就不是用Windows的Dialog
进去后点Properties可以显示印表机驱动的设定页
那个Properties按钮所做的事如何实现?
直接开启印表机驱动所提供的设定页面?
例如Foxit Reader它的列印介面就不是用Windows的Dialog
进去后点Properties可以显示印表机驱动的设定页
那个Properties按钮所做的事如何实现?
作者: dkjfsoman 发布时间: 2011-10-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28