1

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

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

在 .NET 打印 API 中,我确实可以从 Graphics 对象访问 hDC。但据我所知,Graphics 对象仅在调用 StartDoc 函数后可用。

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

4

1 回答 1

1

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

于 2009-03-26T08:18:00.603 回答