我正在研究用于控制DataCard Desktop Card打印机的.NET应用程序,我偶然发现了一个问题。为了执行磁条和芯片编码,我必须在本机打印机API dll中调用一个函数来启用打印机交互模式。
我已设法创建P / Invoke代码来调用此本机函数。但问题是此方法将打印机设备上下文句柄作为参数,并且必须在调用Gdi32 StartDoc函数之前调用。
在.NET打印API中,我可以从Graphics对象访问hDC。但据我所知,只有在调用StartDoc函数后才能使用Graphics对象。
所以我的问题是,如果有人知道在调用StartDoc之前检索上下文的方法吗?
答案 0 :(得分:1)
您可以执行OpenPrinter
检索打印机句柄(HANDLE
)然后通过传入此句柄来调用CreateDC
以随时获取打印机DC(StartDoc
之前)。