我在做web打印的工作。要打印的页面是通过webbrowser的navigate导航得到。
现在需要根据不同的尺寸要求(比如,A4,B5)动态修改web页面的页面设置。
我原来是通过 sendkey的方式,将相应的数据自动填充到页面设置的对话框里。
这种办法不好。希望能通过代码实现更改。
现在需要根据不同的尺寸要求(比如,A4,B5)动态修改web页面的页面设置。
我原来是通过 sendkey的方式,将相应的数据自动填充到页面设置的对话框里。
这种办法不好。希望能通过代码实现更改。
调试欢乐多
看起来IE页面设置可以由以下内容组成:1,纸张规格
2,纸张来源
3,页眉,页脚
4,布局方式(横向、纵向)
5,页边距(左,右,上,下)
6,打印机
...(其余的就没有了吧)以上内容有IE的设置,也有打印机的设置。
1,2,4,纸张规格、纸张来源、布局方式 信息来源于默认打印机的设置,也可以是IE当前使用的打印机的设置。
3,5,页眉,页脚和页边距的信息来源于IE的设置,在注册表中存放。
6,打印机是IE当前使用的打印机。(不一定就是默认打印机)
知道了这些内容都是怎么来的,我们就要着手一下的事情:第一,学会设置(查看,增加)自定义纸张。addform,getform等
第二,学会设置指定的自定义纸张为默认纸张。setform,setprinter 等。
第三,学会设置默认打印机。setdefaultprinter
第四,修改注册表。可在subkey :pagesetup中定义页眉页脚和页边距。
第五,修改注册表,使得IE总是使用默认打印机打印。(可以实现,切换打印机打印,页面设置跟着变换)以上内容,希望对你有帮助!
我再看看。
但是为啥设置之后在打印机和传真里面看到的还是默认A4纸张,不知道哪里写错了?DWORD dwSecurity = ACCESS_SYSTEM_SECURITY;
pPrinterInfo2->pSecurityDescriptor = &dwSecurity;
pPrinterInfo2->pDevMode->dmFields |= DM_FORMNAME;
memcpy(pPrinterInfo2->pDevMode->dmFormName, formName, sizeof(formName));
if (!SetPrinter(hPrinter, 2, (LPBYTE)pPrinterInfo2, 0))
{
// Error
}
// Ok