从.NET print API检索设备上下文

时间:2009-03-26 08:09:51

标签: c# .net printing pinvoke

我正在研究用于控制DataCard Desktop Card打印机的.NET应用程序,我偶然发现了一个问题。为了执行磁条和芯片编码,我必须在本机打印机API dll中调用一个函数来启用打印机交互模式。

我已设法创建P / Invoke代码来调用此本机函数。但问题是此方法将打印机设备上下文句柄作为参数,并且必须在调用Gdi32 StartDoc函数之前调用。

在.NET打印API中,我可以从Graphics对象访问hDC。但据我所知,只有在调用StartDoc函数后才能使用Graphics对象。

所以我的问题是,如果有人知道在调用StartDoc之前检索上下文的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以执行OpenPrinter检索打印机句柄(HANDLE)然后通过传入此句柄来调用CreateDC以随时获取打印机DC(StartDoc之前)。